如何使用.htaccess通配符重定向?现有301规则失效问题排查
你的RedirectMatch规则无效的原因及修复方案
让我拆解下当前配置里的问题,以及对应的修正方法:
核心错误:RedirectMatch不匹配完整绝对URL
RedirectMatch属于Apache的mod_alias模块,它的匹配模式是基于请求的URL路径(也就是域名之后的部分),而非https://www.demostore.nl/...这类带域名的完整绝对URL。服务器在处理请求时已经明确当前对应的虚拟主机,所以匹配规则不需要包含域名。语法细节问题
虽然你写的指令顺序是对的,但错误地把完整域名加入匹配模式,导致服务器无法匹配到任何来自www.demostore.nl的请求。
修正后的规则
把规则改成这样(务必确保这条规则放在www.demostore.nl对应的虚拟主机配置块内):
RedirectMatch 301 ^/persbericht/.* https://www.demostore.com/press-portal
额外实用提示
- 如果需要把原路径的具体内容同步带到目标URL(比如原
/persbericht/2024-news跳转到/press-portal/2024-news),可以用反向引用实现:RedirectMatch 301 ^/persbericht/(.*) https://www.demostore.com/press-portal/$1 - 测试前记得清空浏览器缓存,因为301永久重定向会被浏览器缓存,可能导致你无法及时看到修改后的效果。
- 确认服务器已启用mod_alias模块(大部分Apache环境默认启用,若仍无效可检查模块加载状态)。
内容的提问来源于stack exchange,提问作者fr3d
相关产品推荐
相关产品推荐

