我正在使用apache2和mod_rewrite来隐藏我的查询字符串。这些是有问题的规则。
RewriteCond %{QUERY_STRING} ^query=(.*)$
RewriteRule (.*) /search/%1 [R=301,L]
RewriteRule ^search\/?$ /search/?query=test [R=301,L]
当我访问时
/search
(或)
/search/
)我被正确地重定向到
/search/?query=test
(根据上一条规则)
从那里,
RewriteCond
和
RewriteRule
应该踢进去把我转到
/search/test
对吧?据我所知
%1
在我的第一
改写词
对应于
(.*)
在
重写秒
应该包含
test
.
但是,实际发生的是我被重定向到
/search/test/?query=test
. 所以,规则可以工作,但出于某种原因,查询字符串被附加了。
是否自动添加了qsa选项?
然后我陷入了一个无限循环中
/search/test?query=test
因为第一个
重写秒
和
改写词
一次又一次的踢…
我做错什么了?!
谢谢!