首頁  >  文章  >  後端開發  >  如何在 Go HTTP 伺服器中隱藏 URL 中的 HTML 檔案副檔名?

如何在 Go HTTP 伺服器中隱藏 URL 中的 HTML 檔案副檔名?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-27 16:26:02532瀏覽

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

如何在簡單的HTTP 伺服器中隱藏檔案副檔名

許多Web 伺服器在網址顯示檔案或使用者體驗的原因。本指南示範如何在 Go HTTP 伺服器中隱藏 URL 的 .html 副檔名。

解決方案

使用 http.Dir 實作 http.FileSystem 具有多種好處,包括利用 http.FileServer 中強大的程式碼。可以建立自訂 HTMLDir 結構來實現此功能。

實作

Open 的實作取決於所需的行為。以下介紹了三個場景:

選項1:總是附加.html

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

選項2:回退到.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>

選項3:從.html 開始併後備

<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>

將HTMLDir 與http.StripPrefix 結合使用,可以在從以下位置提供文件時有效隱藏.html 副檔名指定的目錄。該技術提供了更無縫且美觀的用戶體驗,同時仍允許存取預期內容。

以上是如何在 Go HTTP 伺服器中隱藏 URL 中的 HTML 檔案副檔名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn