htaccess重写导致无限重定向

时间:2015-08-03 15:39:36

标签: php apache .htaccess mod-rewrite joomla

我需要从

这样的地方重写一个URL

/index.php?option=com_scoreboard&view=scoreboard&agent=001C0000016rJeUIAU

/quote/?agent=001C0000016rJeUIAU

这是我到目前为止所做的事情。

RewriteCond %{QUERY_STRING} agent=(\w+)&?
RewriteRule ^index.php /quote/?agent=%1 [R=301,L]

哪个工作正常,花花公子,但它以无限循环结束。我也知道为什么,因为它一直在寻找agent=。我应该在我的重写规则中添加什么来阻止它?

我也试过像

这样的变体
RewriteCond %{QUERY_STRING} ^option=\w+?&agent=(\w+)&?
RewriteRule ^index.php /quote/?agent=%1 [R=301,L]

但它以相同的无限重定向结束。

这也适用于Joomla网站,如果有帮助的话。因此,在此规则之后,标准的Joomla会重写。

非常感谢!

1 个答案:

答案 0 :(得分:2)

改为改为THE_REQUEST变量,并确保将此规则保留为第一条规则

RewriteCond %{THE_REQUEST} /index\.php\?agent=(\w+)
RewriteRule ^ /quote/?agent=%1 [R=301,L]

THE_REQUEST变量表示Apache从您的浏览器收到的原始请求,并且在执行一些重写规则后不会被覆盖。