使用RedirectMatch for Wordpress排除.htaccess中的目录

时间:2013-11-15 16:53:13

标签: regex wordpress .htaccess mod-rewrite mod-alias

我将Wordpress永久链接结构从%year%/%months%/更改为%postname%

所以我在 .htaccess 中创建了这个mod别名规则,但我遇到了问题:

RedirectMatch 301 /\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1

规则还会将图片重定向到wp-content目录下,因此 domainname.com/wp-content/uploads/2013/11/name.jpg 会变为 domainname.com/name .jpg

我无法使用RewriteCond,因为这个RedirecMatch是mod_alias,我尝试使用!^/(wp-content.*)$但是没有用。

我该如何解决?使用RedirectMach或RewriteRule(我还没有改变服务器)会更好吗?

你能发布更好的正则表达式吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试^$

RedirectMatch 301 ^/\d{4}/\d{2}/([^/]+)(/?)(.*)$ http://domainname.com/$1

答案 1 :(得分:0)

你应该坚持使用mod_rewrite而不是mod_alias,因为它会干扰wordpress的mod_rewrite规则。 mod_rewrite和mod_alias都会影响URL文件处理管道中不同点的相同请求URI,因此最终可能会同时重定向和重写。

RewriteCond %{REQUEST_URI} !\.(jpeg|gif|png)$ [NC]
RewriteRule ^\d{4}/\d{2}/([^/]+?)(/?)(.*)$ http://domainname.com/$1 [L,R=301]