WordPress中的永久链接重定向和正则表达式

时间:2013-09-12 21:23:32

标签: regex wordpress permalinks

我有一个非常基本的RegEx问题但是它足够紧迫我没有时间在RegEx上运行教程以便自己回答。

简而言之,我需要: / 2009/03/28 /后名称/

重定向到 /后名称/

以及 /名称后/作者名/

重定向到 /后名称/

我保证在月份结束前去RegEx上课。处理?

PS。是的,我知道Wordpress Redirection插件会自动化.htaccess但它不会为我编写RegEx。


使用Redirection插件解决。

来源网址:/(\ d *)/(\ d *)/(\ d *)/([A-Za-z0-9 - ] *) 目标网址:/ $ 4

2 个答案:

答案 0 :(得分:7)

由于未来某人可能会发现这一点,我将尽可能详细地回答。我实际上posted a blog on the subject here我可以讨论它。

最简单的解决方案使用非常基本的正则表达式与WordPress的Redirection插件一起使用。在这种情况下,您可以使用简单的结构:

  • (\ d *)表示数字字符串
  • ([A-Za-z0-9 - ] *)表示字母数字字符串
  • $#(在我的情况下是4美元)来确定要保留哪个输出
  • a /用于目录分隔符

因此,在/ yyyy / mm / dd / post-name的情况下,我们使用:

  • 来源网址:/(\ d *)/(\ d *)/(\ d *)/([A-Za-z0-9 - ] *)
  • 目标网址:/ $ 4

以输出/后命名为301。

不要忘记检查正则表达式框!

gui interface for the redirect

答案 1 :(得分:0)

这直接通过 htaccess 对我有用。

对于日期和名称 (/%year%/%monthnum%/%day%/%postname%/)

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*)$ /$4

对于月份和名称 (/%year%/%monthnum%/%postname%/)

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/(.*)$ /$3

对于数字 (/archives/%post_id%)

RedirectMatch 301 ^/archives/(\d+)$ /?p=$1

注意:在 https 重定向后使用