首页 > 解决方案 > 使用 .htaccess 正则表达式重定向 wordpress 结构的正确方法

问题描述

嗨,我正在尝试将重定向正则表达式添加到我的 .htaccess 重定向

/%year%/%monthnum%/%postname%.html/%category%/%postname%/%post_id%/

Yaost 帮手给了我这个

RedirectMatch 301 ^/([0-9]{4})/([0-9]{2})/([^/]+).html$ https://www.ruoaa.com/$3

我不是专家,但我认为它不符合我的结构

此外,永久链接不是很久以前就已经完成的从博客到 wordpress 的选项迁移,永久链接不会起到作用,所有上层链接都给出 404

标签: regexwordpress.htaccesspermalinkshttp-redirect

解决方案


无法使用 .htaccess中的正则表达式进行此更改。为了能够重定向到新 URL,您需要每个 URL 的%category%%post_id%,旧 URL 中都没有。您不能使用正则表达式来解析旧 URL 并重定向到新 URL,因为这样做的信息不适用于正则表达式。

要实施此更改,您将需要一种完全不同的方法,例如以下方法之一:

  • 将重定向插件安装到 WordPress,例如如何更改 WordPress 永久链接中建议的插件之一。
  • 创建所有 URL 的列表,并在旧 URL 和新 URL 之间创建映射以单独重定向每个 URL。对于很长的列表,您可能希望使用Apache 的 RewriteMap 功能之类的东西。
  • 将旧样式的 URL 重写为自定义处理程序,并对其进行编程以从 WordPress 数据库中查找新的 URL。

推荐阅读