Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verstecke ich HTML-Dateierweiterungen vor URLs in einem Go-HTTP-Server?

Wie verstecke ich HTML-Dateierweiterungen vor URLs in einem Go-HTTP-Server?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 16:26:02532Durchsuche

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

So verbergen Sie Dateierweiterungen in einem einfachen HTTP-Server

Viele Webserver zeigen Dateierweiterungen in der URL an, was aus ästhetischen Gründen unerwünscht sein kann oder aus Gründen der Benutzererfahrung. Diese Anleitung zeigt, wie Sie die Erweiterung .html vor URLs in einem Go-HTTP-Server verbergen.

Lösung

Die Implementierung von http.FileSystem mit http.Dir bietet mehrere Vorteile, darunter Nutzung des robusten Codes in http.FileServer. Zur Implementierung dieser Funktionalität kann eine benutzerdefinierte HTMLDir-Struktur erstellt werden.

Implementierung

Die Implementierung von Open hängt vom gewünschten Verhalten ab. Nachfolgend werden drei Szenarien dargestellt:

Option 1: Immer .html anhängen

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

Option 2: Fallback auf .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: Beginnen Sie mit .html und 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>

Durch die Verwendung von HTMLDir mit http.StripPrefix kann die Erweiterung .html beim Bereitstellen von Dateien effektiv verborgen werden das angegebene Verzeichnis. Diese Technik sorgt für ein nahtloseres und ästhetisch ansprechenderes Benutzererlebnis und ermöglicht gleichzeitig den Zugriff auf die beabsichtigten Inhalte.

Das obige ist der detaillierte Inhalt vonWie verstecke ich HTML-Dateierweiterungen vor URLs in einem Go-HTTP-Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn