Go HTTP サーバーの URL から .html 拡張子を削除するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-28 08:34:29
オリジナル
734 人が閲覧しました

How to Remove the .html Extension from URLs in a Go HTTP Server?

HTTP サーバーのファイルから .html 拡張子を削除する

多くの HTTP サーバーは、URL の末尾に「.html」拡張子を自動的に追加します。 、場合によってはこれが望ましくない可能性があります。 Go HTTP サーバーでこの動作を変更するには、http.Dir を使用してカスタム http.FileSystem を実装します。方法は次のとおりです:

  1. カスタム ファイルシステムを作成します:
<code class="go">type HTMLDir struct {
    d http.Dir
}</code>
ログイン後にコピー
  1. Open メソッドを実装します:

Open メソッドは、ファイルを開く方法を決定します。要件に応じて、いくつかのオプションがあります:

常に ".html" 拡張子を追加:

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    return d.d.Open(name + ".html")
}</code>
ログイン後にコピー

".html" 拡張子にフォールバック:

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    // Try name as supplied
    f, err := d.d.Open(name)
    if os.IsNotExist(err) {
        // Not found, try with .html
        if f, err := d.d.Open(name + ".html"); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>
ログイン後にコピー

「.html」拡張子で開始し、フォールバックします:

<code class="go">func (d HTMLDir) Open(name string) (http.File, error) {
    // Try name with added extension
    f, err := d.d.Open(name + ".html")
    if os.IsNotExist(err) {
        // Not found, try again with name as supplied.
        if f, err := d.d.Open(name); err == nil {
            return f, nil
        }
    }
    return f, err
}</code>
ログイン後にコピー
  1. カスタム ファイルシステムを使用します:
<code class="go">fs := http.FileServer(HTMLDir{http.Dir("public/")})
http.Handle("/", http.StripPrefix("/", fs))</code>
ログイン後にコピー

http.FileSystem を実装し、Open メソッドをカスタマイズすることで、「.html」拡張子に関する動作など、HTTP サーバーによるファイルの提供方法を​​制御できます。

以上がGo HTTP サーバーの URL から .html 拡張子を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!