htaccess过滤设置

时间:2012-10-08 19:42:38

标签: apache .htaccess filtering flags

我的网站就像搜索引擎当我输入搜索时,网址看起来像mysite.com/search/free/**video/keyword**.html而不是mysite.com/?search=**keyword**&type=**video**,我对此有一个小问题。例如,如果搜索标记包含空格,+或 - ,则我的网址不会被重写。我得到的查询字符串网址类似于?search = key + word & type = video ,我不知道如何摆脱这种情况。 这是我的htaccess。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase / 
RewriteCond %{QUERY_STRING} ^search=(\w+)&type=(\w+)$
RewriteRule ^ http://mysite.com\/search\/free\/%2\/%1.html? [R,L,B]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search/(.*)/(.*)/(.*).html?$ index.php?search=$1&page=$2&type=$3 [L]

我尝试使用$ {escape:$ 1}添加更改$ 1并在我的httpd.conf文件中添加了RewriteMap escape int:escape但仍然没有运气。

1 个答案:

答案 0 :(得分:1)

尝试将您的第一条规则更改为:

RewriteCond %{QUERY_STRING} ^search=([^&]+)&type=([^&]+)$
RewriteRule ^ http://mysite.com\/search\/free\/%2\/%1.html? [R,L,NE]