2

我有一个非常基本的 RegEx 问题,但它足够紧迫,以至于我没有时间跑完 RegEx 教程来自己回答它。

简而言之,我需要:/2009/01/28/post-name/

重定向到 /post-name/

以及 /post-name/author-name/

重定向到 /post-name/

我保证在月底前去参加 RegEx 的课程。交易?

PS。是的,我知道 Wordpress 重定向插件会自动执行 .htaccess,但它不会为我编写 RegEx。


使用重定向插件解决。

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

4

2 回答 2

8

由于以后有人可能会发现这个问题,所以我将尽可能详细地回答。实际上,我在这里发布了一个关于这个主题的博客,我可以在这里讨论它。

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

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

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

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

为了将 /post-name 输出为 301。

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

用于重定向的 gui 界面

于 2013-09-14T21:35:31.657 回答
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 重定向后使用

于 2021-01-22T12:15:18.913 回答