我将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(我还没有改变服务器)会更好吗?
你能发布更好的正则表达式吗?
谢谢!
答案 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]