我尝试了很多没有结果的代码。 我正在使用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
最后的重写规则是我没有成功的原因
答案 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