【问题标题】:301 Redirect/Rewrite gives loop error301 重定向/重写给出循环错误
【发布时间】:2025-12-01 03:55:01
【问题描述】:
我得到一个带有以下代码的重定向循环。我该如何解决?
- 第一部分将 /links.php 重定向到 /linked
- 第二部分重写/链接到/links.php
RewriteBase /domain.com
RewriteRule ^links\.php$ linked? [NS,R=301,L]
RewriteRule ^linked$ links.php?redirect=no [NS]
两种方式都有效,所以我接受第一个发帖。再次感谢!
【问题讨论】:
标签:
apache
.htaccess
mod-rewrite
redirect
【解决方案1】:
您需要检查您在第二条规则中添加的查询字符串,因此在第一条规则前面添加一个 RewriteCond:
RewriteCond %{QUERY_STRING} !redirect=no
【解决方案2】:
您可以匹配原始网址,而不是(可能已经)使用重写条件重写的网址:
RewriteCond %{THE_REQUEST} links\.php
RewriteRule ^links\.php$ linked? [R=301,L]
RewriteRule ^linked$ links.php [L]