固定链接更改后如何重定向附件URL

时间:2014-02-06 00:31:19

标签: regex wordpress .htaccess

比如说博客永久链接结构是(年/月/标题)

http://blog.example.com/2012/04/my-title

现在发布的永久链接是:

http://blog.example.com/my-title

为确保Google搜索结果不会中断,我想添加.htaccess重定向。在他们的网站上使用Yoast Permalink Redirector生成器建议添加:

RedirectMatch 301 ^ /([0-9] {4})/([0-9] {2})/([^ /] +)/ $ http://blog.example.com/ $ 3

乍一看效果很好。但是WordPress也有附件网址,例如:

http://blog.example.com/2012/04/my-title/my-attachment-url/

该链接应重定向到:

http://blog.example.com/my-title/my-attachment-url/

但是在使用Yoast重定向时并不是这样。有关如何更新.htaccess正则表达式以捕获附件网址的任何想法?我会在同一时间保持谷歌搜索。也可以在WP Stack Overflow上发布,但是SO倾向于获得服务器正则表达式htaccess问题的更好答案。

1 个答案:

答案 0 :(得分:1)

我认为你的正则表达基本上是正确的。你只需要用反斜杠来逃避斜线:

^\/([0-9]{4})\/([0-9]{2})\/([^/]+)\/$

实际上capture your attachment URLs围绕着你最后一个贪婪地说“匹配一切不是一刀斩”的捕捉小组,再加上斜线,一个新的小组贪婪地再次匹配那个小组:

^\/([0-9]{4})\/([0-9]{2})\/(([^/]+)\/)+$

此外,您可以将?:添加到组以使其不匹配。