Apache のバックグラウンドから来て、過去に、一対の書き換えルールを使用して .html ファイル拡張子を隠していました。
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /.+\.html\ HTTP
RewriteRule ^(.+)\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^.+$ %{REQUEST_FILENAME}.html [L]
nginx の書き換え機能は異なりますが、考えられる解決策はここにありますが、nginx wiki では、可能であれば ifs を回避することが最善の解決策であると示唆しており、try_files
代わりに ( ) を使用することについて説明しています。次のように、誰かがこのようなものを実装するための最良の方法を持っているかどうか疑問に思っていました:
try_files $uri $uri.html =404;
場合によっては動作しますが、大規模なリダイレクトの問題などが発生する可能性があります。この場合、ifs を回避する方法はありますか?