Maison  >  Article  >  développement back-end  >  Comment supprimer l'extension .html des URL dans un serveur HTTP Go ?

Comment supprimer l'extension .html des URL dans un serveur HTTP Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 08:34:29720parcourir

How to Remove the .html Extension from URLs in a Go HTTP Server?

Supprimer l'extension .html des fichiers d'un serveur HTTP

De nombreux serveurs HTTP ajoutent automatiquement une extension ".html" à la fin des URL , ce qui peut être indésirable dans certains cas. Pour modifier ce comportement dans un serveur HTTP Go, vous pouvez implémenter un http.FileSystem personnalisé à l'aide de http.Dir. Voici comment :

  1. Créez un système de fichiers personnalisé :
<code class="go">type HTMLDir struct {
    d http.Dir
}</code>
  1. Implémentez la méthode Open :

La méthode Open détermine comment les fichiers doivent être ouverts. En fonction de vos besoins, vous disposez de plusieurs options :

Toujours ajouter l'extension ".html" :

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    return d.d.Open(name + ".html")
}</code>

Revenir à l'extension ".html" :

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    // Try name as supplied
    f, err := d.d.Open(name)
    if os.IsNotExist(err) {
        // Not found, try with .html
        if f, err := d.d.Open(name + ".html"); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>

Commencez avec l'extension ".html" et solution de secours :

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    // Try name with added extension
    f, err := d.d.Open(name + ".html")
    if os.IsNotExist(err) {
        // Not found, try again with name as supplied.
        if f, err := d.d.Open(name); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>
  1. Utilisez votre système de fichiers personnalisé :
<code class="go">fs := http.FileServer(HTMLDir{http.Dir("public/")})
http.Handle("/", http.StripPrefix("/", fs))</code>

En implémentant http.FileSystem et en personnalisant la méthode Open, vous pouvez contrôler la façon dont les fichiers sont servis par votre serveur HTTP, y compris le comportement autour des extensions ".html".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn