次のルールを考慮してください
RewriteRule ^index\.html$ index.php [L]
RewriteRule ^index\.php$ index.html [R=301]
.html
ファイルを使用したい.php
のですが、URLには.html
常に拡張子が必要です。
上記のルールにより、リダイレクト ループが作成されます。これを行う正しい方法は何ですか?
次のルールを考慮してください
RewriteRule ^index\.html$ index.php [L]
RewriteRule ^index\.php$ index.html [R=301]
.html
ファイルを使用したい.php
のですが、URLには.html
常に拡張子が必要です。
上記のルールにより、リダイレクト ループが作成されます。これを行う正しい方法は何ですか?
実際のリクエストに対してチェックするか、ループを完全に防ぐことができます。
オプション 1、リクエストに対してチェック:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php
RewriteRule ^index\.php$ index.html [R=301]
これにより、実際のリクエストがそうでないindex.php
場合、リダイレクトは行われません。
オプション 2、書き換えエンジンが完全にループしないようにします。これを htaccess ファイルの先頭に追加します。
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
これの欠点は、実際にループしたいルールがあるかもしれないということです。