.htaccess
重写规则:RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q=
这是做什么的,如果有人访问
http://example.com/search/test
,则真正处理的URI是http://www.example.com/search.php?q=test
。现在,如果我尝试将一个额外的随机GET参数传递到重写的URL,则该参数将被忽略。因此,如果我尝试访问这里:
http://www.example.com/search/whatever?extra=true
参数
extra
被忽略。它似乎根本没有通过。可以解决此问题吗?如果可以,怎么办?
#1 楼
您正在寻找Q
uery S
tring A
ppend标志-例如RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^search/(.*)$ search.php?q= [QSA]
有关RewriteRule标志的完整说明,请参见
mod_rewrite
文档。
评论
很好!我知道有这样的事情。我是.htaccess新手。
–杰克·威尔逊(Jake Wilson)
2011年12月9日在22:09
有没有办法将QSA添加到所有规则
– hakkikonu
2014年9月23日下午7:57
嗨@danlefree知道这是一个老问题,但是使用Wamp时,我这样做的所有样式表,脚本等都失去了参考。我该如何解决?
– Danny22
2015年11月4日在16:43