首頁 > 後端開發 > Golang > 主體

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

Mary-Kate Olsen
發布: 2024-10-27 16:26:02
原創
542 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!