regex - 使用 .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
解决方案
无法使用 .htaccess中的正则表达式进行此更改。为了能够重定向到新 URL,您需要每个 URL 的%category%
和%post_id%
,旧 URL 中都没有。您不能使用正则表达式来解析旧 URL 并重定向到新 URL,因为这样做的信息不适用于正则表达式。
要实施此更改,您将需要一种完全不同的方法,例如以下方法之一:
- 将重定向插件安装到 WordPress,例如如何更改 WordPress 永久链接中建议的插件之一。
- 创建所有 URL 的列表,并在旧 URL 和新 URL 之间创建映射以单独重定向每个 URL。对于很长的列表,您可能希望使用Apache 的 RewriteMap 功能之类的东西。
- 将旧样式的 URL 重写为自定义处理程序,并对其进行编程以从 WordPress 数据库中查找新的 URL。
推荐阅读
- c# - 为了接受结构的成员,参数必须是什么类型?
- ios - 在 SwiftUI NavigationView 问题与 UIViewRepresentable
- vue.js - 用于生产的 vue.js 构建错误(无法理解 index.html)
- python - exec() 之后 locals() 的奇怪行为
- react-native - 为什么这个 Animated.View 没有动画?
- android - 在 React Native 中使用短信验证 API
- bash - 在 WSL 上使用自定义 shell 脚本安装包的问题
- ios - 需要执行的切换案例中的重复代码
- bash - 相同的 bash 测试命令,但得到两个结果,可重现
- c++ - 当构造函数的参数类型错误时抛出异常