从URL中删除/添加尾随斜杠时发生重定向循环

时间:2012-12-28 11:44:03

标签: php .htaccess mod-rewrite http-status-code-301

在专门为特定URL编写重写规则以从中删除尾部斜杠时,会发生无限重定向循环。

以下是我尝试编写的代码.htaccess:

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

我正在尝试将abc.php上的301重定向设为abc /但是只想使用abc.php的内容来提供abc /。想要专门为此网址编写规则。

2 个答案:

答案 0 :(得分:2)

如果您检查浏览器使用RewriteCond发送到服务器的HTTP请求行(请参阅herehere),您可以打破无限循环,此外,你颠倒了规则的顺序:

RewriteRule ^abc/ abc.php [L,QSA]
RewriteCond %{THE_REQUEST} ^GET\ /abc\.php
RewriteRule ^abc.php$ /abc/ [R=301, QSA]

答案 1 :(得分:0)

试试这个:

RewriteEngine On

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

希望它有所帮助!