我为PHP处理后的干净网址做了一个htaccess,但是对于我的搜索选项,我想要一个类似youtube的'?q = searchquery'。
RewriteEngine on
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^(.*)/$ index.php?d=$1 [L]
这是我的htaccess,它适用于所有网址但“http://www.website.com/search/?q=searchquery”却没有。现在我尝试了其他重写,例如这些
RewriteRule ^(.*)/\?(.*)/$ index.php?d=$1&$2
RewriteRule ^(.*)/\?q=(.*)/$ index.php?d=$1&q=$2
他们不工作。
我还看了整个URI使用[R]标志,问号中的所有内容都没有显示。
RewriteRule ^(.*)/$ index.php?d=$1 [L]
使用网址:http://www.website.com/search/?q=searchquery显示:http://www.website.com/search/
编辑: 那么我该如何做到呢? \ O /
答案 0 :(得分:5)
只需使用QSA
(查询字符串追加)标记:
RewriteRule ^(.*)/$ index.php?d=$1 [L,QSA]
如果使用查询字符串调用URL,则查询字符串将附加到生成的URL。
PS:您无法在重写规则中匹配查询字符串。在匹配规则之前,将剥离查询字符串。