【问题标题】: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]
      

      【讨论】: