【问题标题】:Permalink Redirection and Regular Expressions in WordPressWordPress中的永久链接重定向和正则表达式
【发布时间】:2021-01-22 20:15:18
【问题描述】:

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

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

重定向到 /post-name/

还有 /post-name/author-name/

重定向到 /post-name/

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

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


使用重定向插件解决。

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

【问题讨论】:

  • 对于其他偶然发现此问题的人,答案(无论如何在 WordPress 永久链接中)是使用上述重定向插件。源 URL 为:/(\d*)/(\d*)/(\d*)/([A-Za-z0-9-]*),目标 URL 为:/$4
  • 向不精通的人解释这一点,您正在查看 /digit/digit/digit/string 的基本 URL 结构,然后获取第四个值 (/$4) 并将其附加到原域名。感谢上帝提供 RegEx 备忘单。

标签: regex wordpress permalinks


【解决方案1】:

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

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

  • (\d*) 表示数字字符串
  • ([A-Za-z0-9-]*) 用于字母数字字符串
  • $#(在我的例子中是 $4)来确定要保留哪些输出
  • 目录分隔符的 /

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

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

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

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

【讨论】:

  • 我正在使用这个插件,但我无法在目标 URL 中输入有效的正则表达式。对于源我有 /(.*)+.html 并且我想将所有重定向到 /blog/$1.html 。我检查了正则表达式。
【解决方案2】:

这直接通过 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 重定向后使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-14
    • 2016-02-11
    • 2017-12-20
    • 1970-01-01
    相关资源
    最近更新 更多