1

末尾のスラッシュを削除するために特定の URL のみに特化した書き換えルールを作成しているときに、無限のリダイレクト ループが発生します。

以下は、.htaccess でコーディングしようとしているコードです。

RewriteRule ^abc.php /abc/ [R=301,L,NC,QSA]
RewriteRule ^abc/ abc.php [NC,QSA]

abc.php で abc/ への 301 リダイレクトを作成しようとしていますが、abc.php のコンテンツのみで abc/ を提供したいと考えています。この URL 専用のルールを作成したい。

4

2 に答える 2

2

ブラウザによってサーバーに送信された HTTP 要求行 (こことここも参照) をチェックしRewriteCond、さらにルールの順序を逆にすると、無限ループを破ることができます。

RewriteRule ^abc/ abc.php [L,QSA]
RewriteCond %{THE_REQUEST} ^GET\ /abc\.php
RewriteRule ^abc.php$ /abc/ [R=301, QSA]
于 2012-12-28T14:30:16.763 に答える
0

これを試して :

RewriteEngineオン

RewriteRule ^ abc /?abc.php [NC、L、QSA]
RewriteRule ^ abc.php / abc / [R = 301、QSA]

それが役に立てば幸い!

于 2012-12-28T14:19:57.160 に答える