使用正则表达式在Permalink中重定向ID,但有例外

时间:2019-07-14 10:42:50

标签: regex .htaccess mod-rewrite url-rewriting

我想将一些旧的URL重定向到新的URL,旧的URL末尾带有“ -id”,基本上我想删除它。但是,尽管我能够做到这一点,但我还是有很多文章的链接末尾都有“年”,因此也将它们重定向,从而形成了循环。

到目前为止,我的.htaccess代码是:

RewriteRule ^([^/]+)-(\d+){3,}/$ https://www.example.com/$1/ [R=301,L]

我不是正则表达式方面的专家,我刚开始学习它,但是我想为该规则添加一些例外,即年份。如果我可以只添加(2010 | 2011 | 2012)等,这是可以的...问题是,我不知道该怎么办,而且时间不在我的身边,谷歌明智:)

谢谢!

1 个答案:

答案 0 :(得分:0)

我已将此异常字符串添加为间隔,并且似乎可以正常运行

  RewriteRule ^([^/]+)-(?!19[5-9]\d|20[0-4]\d|2050)(\d+){3,}/$ example.com/$1 [R=301,L] 

这将匹配任何3位或更多3位数字的组,但1950至2050年除外