最近、サイトのファイル拡張子を .html から .php に切り替えました。その結果、私は次のことをしたいと思います:
.html ファイルを対応する .php ファイルにリダイレクトする
すべての URL から .php 拡張子を削除します
拡張子のない URL が機能する必要があります (たとえば、foo.com/bar は foo.com/bar.php にあるページを表示する必要があります)。
これが私の現在のアプローチであり、さまざまな情報源からまとめたものです。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.html$ $1.php [L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
私のアプローチには、少なくとも 3 つの問題があります。
foo.domain/bar.php にアクセスしようとすると、.php 拡張子が残ります (特に、foo.domain/barは適切な .php ページを表示します)。
.html ファイルのリクエストでは適切な .php ページが表示されますが、拡張子 .html は残ります (拡張子を表示したくありません) 。
URL に index.php を含めずにディレクトリにアクセスすることは不可能になりました (たとえば、foo.com/bar/ は 404 エラーをスローします)。
明らかなように、mod_rewrite は非常に難しいと思います。どんな助けでも大歓迎です。