我对设置页面有一个mod重写规则:(localhost / settings / index.php)
RewriteRule settings/([a-zA-Z0-9_]+)/?$ settings/?path=$1 [QSA,L]
我正在处理URL中的菜单引用,类似于:
http://localhost/settings/xyz/?ref=menu1&abc=2&de=3..
然而,根据我目前的重写规则,变量不会被传递,我没有得到ref,abc的值..
我阅读here关于QSA标志,但这似乎没有用。
我做错了什么?
答案 0 :(得分:2)
尝试关闭MultiViews
选项:
Options -MultiViews
RewriteEngine On
RewriteRule ^settings/([\w-]+)/?$ settings/?path=$1 [QSA,L,NC]
代替QSA
,您可以使用此技巧捕获查询字符串:
RewriteRule ^settings/([\w-]+)/?$ settings/?path=$1&%{QUERY_STRING} [L,NC]