HTTP サーバーのファイルから .html 拡張子を削除する
多くの HTTP サーバーは、URL の末尾に「.html」拡張子を自動的に追加します。 、場合によってはこれが望ましくない可能性があります。 Go HTTP サーバーでこの動作を変更するには、http.Dir を使用してカスタム http.FileSystem を実装します。方法は次のとおりです:
<code class="go">type HTMLDir struct { d http.Dir }</code>
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>
<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 サイトの他の関連記事を参照してください。