清洁和“脏”的网址

时间:2011-02-11 08:26:19

标签: php .htaccess url rewrite

我为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 /

1 个答案:

答案 0 :(得分:5)

只需使用QSA(查询字符串追加)标记:

RewriteRule ^(.*)/$ index.php?d=$1 [L,QSA]

如果使用查询字符串调用URL,则查询字符串将附加到生成的URL。

PS:您无法在重写规则中匹配查询字符串。在匹配规则之前,将剥离查询字符串。