在搜索网址中替换空格%20 white

时间:2013-05-06 22:58:47

标签: .htaccess rewrite whitespace removing-whitespace

我尝试了很多没有结果的代码。 我正在使用wordpress,搜索结果的网址是:

http://mysite.com/search/the%20search%20query%20

我需要在

中更改它

http://mysite.com/search/the-search-query/

htaccess有办法吗?

这实际上是我的htaccess文件:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Options +FollowSymlinks -MultiViews
RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,QSA,L,NE]

# END WordPress

最后的重写规则是我没有成功的原因

1 个答案:

答案 0 :(得分:2)

您的规则看起来很不错,但是在路由规则之后 。这意味着无论如何,永远不会达到该规则,因为所有内容(包括其中包含空格的任何请求)都会路由到index.php。您需要在路由规则

之前添加任何重定向规则

Options +FollowSymlinks -MultiViews
RewriteRule ^(.+)(\s|%20)(.+)$ /$1-$3 [R=301,QSA,L,NE]

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress