【问题标题】:Is there any way to stop this htaccess redirect loop?有什么办法可以阻止这个 htaccess 重定向循环?
【发布时间】:2014-03-21 11:58:12
【问题描述】:

我想不出办法阻止这个 htaccess 重定向循环。

Options +FollowSymLinks
Options -Multiviews
RewriteOptions MaxRedirects=1
RewriteEngine On 
RewriteRule ^pages/?$ page.php?p=g&id=1$1 [L,QSA]
RewriteCond %{QUERY_STRING}  ^p=g&id=1$ [NC]
RewriteRule ^page\.php$ /pages/? [r=301,nc]

现在它只是循环,直到浏览器说“这个网页有一个重定向循环”。浏览器上的地址栏至少显示正确的地址..

是否可以阻止它循环播放?

我试过了:RewriteOptions MaxRedirects=1 没有成功。

我想要它,这样任何指向 /page.php?p=g&id=1 的链接都会重定向到 /pages/

谢谢。

【问题讨论】:

  • 您最初在浏览器中调用的 URL 是什么?这些是你唯一的规则,还是还有更多?
  • 我已经用完整的代码编辑了我的问题。

标签: apache .htaccess mod-rewrite redirect mod-security


【解决方案1】:

你有两条规则:

  1. A -> B
  2. B -> A

您已经创建了循环,因此它可以正常工作。你必须决定你想走哪条路。

【讨论】:

  • 我试过删除一个并测试它,反之亦然。循环停止,但不再重定向到 /pages/,它只是停留在 /page.php?p=g&id=1
  • 请说出你想要达到的目标。
  • 我想要它,这样任何指向 /page.php?p=g&id=1 的链接都会重定向到 /pages/
  • @user1654748 将该声明放在您的问题中,否则不清楚您要做什么
【解决方案2】:

你可以省略你的第一条规则:

RewriteEngine On 
RewriteCond %{QUERY_STRING}  ^p=g&id=1$ [NC]
RewriteRule ^page\.php$ /pages/? [R=301,L]

【讨论】:

  • 使用该方法也可以按照我的意愿进行重定向,但是会重定向到 404,“在此服务器上找不到请求的 URL xxx。有什么建议吗?
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
相关资源
最近更新 更多