我需要从
这样的地方重写一个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会重写。
非常感谢!
答案 0 :(得分:2)
改为改为THE_REQUEST
变量,并确保将此规则保留为第一条规则:
RewriteCond %{THE_REQUEST} /index\.php\?agent=(\w+)
RewriteRule ^ /quote/?agent=%1 [R=301,L]
THE_REQUEST
变量表示Apache从您的浏览器收到的原始请求,并且在执行一些重写规则后不会被覆盖。