301重定向/重写给出循环错误

时间:2011-11-07 15:43:34

标签: apache .htaccess mod-rewrite redirect

我正在使用以下代码获得重定向循环。我该如何解决?

  • 第一部分将/links.php重定向到/ linked
  • 第二部分重写/链接到/links.php

RewriteBase /domain.com

RewriteRule ^links\.php$ linked? [NS,R=301,L]
RewriteRule ^linked$ links.php?redirect=no [NS]

两种方式都有效,所以我接受了第一个发布的方式。再次感谢你!

2 个答案:

答案 0 :(得分:2)

您需要检查在第二条规则中添加的查询字符串,因此在第一条规则前添加RewriteCond:

RewriteCond %{QUERY_STRING} !redirect=no

答案 1 :(得分:2)

您可以使用重写条件匹配原始网址,而不是(可能已经)重写的网址:

RewriteCond %{THE_REQUEST} links\.php
RewriteRule ^links\.php$ linked? [R=301,L]
RewriteRule ^linked$ links.php [L]