Maison >développement back-end >Golang >Comment masquer les extensions de fichiers HTML des URL dans un serveur HTTP Go ?

Comment masquer les extensions de fichiers HTML des URL dans un serveur HTTP Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 16:26:02632parcourir

How to Hide HTML File Extensions from URLs in a Go HTTP Server?

Comment masquer les extensions de fichiers dans un simple serveur HTTP

De nombreux serveurs Web affichent des extensions de fichiers dans l'URL, ce qui peut être indésirable pour l'esthétique ou des raisons liées à l'expérience utilisateur. Ce guide montre comment masquer l'extension .html des URL dans un serveur HTTP Go.

Solution

Implémenter http.FileSystem à l'aide de http.Dir offre plusieurs avantages, notamment en tirant parti du code robuste de http.FileServer. Une structure HTMLDir personnalisée peut être créée pour implémenter cette fonctionnalité.

Implémentation

L'implémentation d'Open dépend du comportement souhaité. Trois scénarios sont présentés ci-dessous :

Option 1 : Toujours ajouter .html

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

Option 2 : Revenir à .html

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

Option 3 : Commencez par .html et Fallback

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

En utilisant HTMLDir avec http.StripPrefix, l'extension .html peut être efficacement masquée lors de la diffusion de fichiers à partir de le répertoire spécifié. Cette technique offre une expérience utilisateur plus fluide et plus esthétique, tout en permettant l'accès au contenu prévu.

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