0

我有这个网站,就像一个搜索引擎当我输入搜索时,网址看起来像mysite.com/search/free/**video/keyword**.html而不是,mysite.com/?search=**keyword**&type=**video**我对此有一个小问题。例如,如果搜索标签包含空格、+ 或 -,我的 url 不会被重写。我得到像 ?search= key+word &type= video这样的查询字符串 url ,我不知道如何摆脱这个。这是我的 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 但仍然没有运气。

4

1 回答 1

1

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

RewriteCond %{QUERY_STRING} ^search=([^&]+)&type=([^&]+)$
RewriteRule ^ http://mysite.com\/search\/free\/%2\/%1.html? [R,L,NE]
于 2012-10-08T23:06:37.173 回答