2013-10-24 97 views
1

我想使用RewriteRule将URL的请求重定向到更新的URL字符串。这是一个WordPress网站。RewriteRule似乎不工作,但RedirectMatch确实

/类别的约 /类别的约-页面名

应该重定向到: /分类/类别的约 /分类/类别的约-页面名

这条规则:RedirectMatch permanent ^/([^/]+)-([^/]+)/?$ /$1/$1-$2/似乎做很好的诀窍。但是,通过将wp-admin请求重定向到/ wp/wp-admin,似乎弄乱了/ wp-admin。

我试图用一个重写规则改为:

RewriteCond %{REQUEST_URI} !^/wp- 

RewriteRule ^/([^/]+)-([^/]+)/?$ /$1/$1-$2/ [L,R=301] 

但这似乎并没有产生任何影响,并重写规则似乎并没有工作,而redirectmatch一样。

这里有什么想法吗?

回答

0

删除斜线:​​

RewriteCond %{REQUEST_URI} !^/wp- 
RewriteRule ^([^/]+)-([^/]+)/?$ /$1/$1-$2/ [L,R=301] 

Leading slash,因为这是每个目录应用不匹配.htaccess

+0

我欠你最喜欢的一杯泡沫饮料,先生。 =) 最后一个问题,我怎么能写一个重写条件来排除扩展名为.html的文件? –

+0

非常欢迎。对于'.html'跳过,你可以使用'RewriteCond%{REQUEST_URI}!\。html $' – anubhava

+0

好的先生,请问你也可以看看这个问题吗? http://goo.gl/hyCtNG –