Go HTTP サーバーの URL から HTML ファイル拡張子を非表示にする方法

Mary-Kate Olsen
リリース: 2024-10-27 16:26:02
オリジナル
622 人が閲覧しました

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

シンプルな HTTP サーバーでファイル拡張子を隠す方法

多くの Web サーバーでは URL にファイル拡張子が表示されますが、これは美観上望ましくない場合があります。またはユーザーエクスペリエンス上の理由。このガイドでは、Go HTTP サーバーの URL から .html 拡張子を隠す方法を説明します。

ソリューション

http.Dir を使用して http.FileSystem を実装すると、次のようないくつかの利点があります。 http.FileServer 内の堅牢なコードを活用します。カスタム HTMLDir 構造体を作成して、この機能を実装できます。

実装

Open の実装は、目的の動作によって異なります。以下に 3 つのシナリオを示します。

オプション 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>
ログイン後にコピー

http.StripPrefix で HTMLDir を使用すると、.html 拡張子を効果的に隠すことができます。指定されたディレクトリ。この技術は、目的のコンテンツへのアクセスを可能にしながら、よりシームレスで見た目にも美しいユーザー エクスペリエンスを提供します。

以上がGo HTTP サーバーの URL から HTML ファイル拡張子を非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート