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

如何在 Go HTTP 伺服器中移除檔案名稱中的 .html 副檔名?

Linda Hamilton
發布: 2024-10-29 13:59:02
原創
398 人瀏覽過

How to Strip the .html Extension from File Names in a Go HTTP Server?

如何從HTTP 伺服器中的檔案中刪除.html 副檔名

開發Web 伺服器時,通常需要從檔案名稱中刪除.html 副檔名以提供更乾淨、更用戶友善的URL 體驗。

在 Go HTTP 伺服器中,這可以透過實作 http.FileSystem 介面並將其註冊為自訂處理程序來實現。以下程式碼示範如何執行此操作:

<code class="go">package main

import (
    "net/http"
    "os"
)

type HTMLDir struct {
    d http.Dir
}

func main() {
    fs := http.FileServer(HTMLDir{http.Dir("public/")})
    http.Handle("/", http.StripPrefix("/", fs))
    http.ListenAndServe(":8000", nil)
}

func (d HTMLDir) Open(name string) (http.File, error) {
    f, err := d.d.Open(name + ".html")
    if os.IsNotExist(err) {
        // Not found, try with .html
        if f, err := d.d.Open(name); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>
登入後複製

此自訂檔案系統 HTMLDir 會重寫 Open 方法來搜尋有或沒有 .html 副檔名的檔案。當發出檔案請求時,伺服器將首先嘗試開啟擴展名為 .html 的檔案。如果找不到,它將嘗試打開不帶擴展名的檔案。

透過實作自訂檔案系統並將其註冊為處理程序,您可以有效地從檔案名稱中刪除 .html 副檔名,同時仍提供存取權限到想要的內容。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板