You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用.htaccess将特定页面301重定向至新域名遇问题求助

解决.htaccess中301重定向的意外路径追加问题

嘿,我来帮你搞定这个困扰!你遇到的问题根源是Apache的Redirect指令的前缀匹配机制——它会把原URL中匹配前缀之后的部分自动追加到目标URL末尾,导致了不符合预期的跳转。

比如你写的这条规则:

Redirect 301 /dan-carr-gear-list/travel-gear https://dancarrphotography.com/gear/travel/

当访问旧路径/dan-carr-gear-list/travel-gear时,原本应该直接跳转到目标URL,但因为Redirect是前缀匹配,它可能误把原路径的travel-gear当成了需要追加的后缀,或者和其他规则产生了冲突,最终导致跳转到https://dancarrphotography.com/gear/travel-gear/。

给你两个靠谱的解决方案,都能实现精确匹配,避免这种意外:

方案1:用RedirectMatch做精确匹配

RedirectMatch支持正则表达式,可以精准锁定单个路径,不会有额外的路径追加:

RedirectMatch 301 ^/dan-carr-gear-list/travel-gear$ https://dancarrphotography.com/gear/travel/

这里的^表示路径的起始位置,$表示路径的结束位置,确保只有完全匹配/dan-carr-gear-list/travel-gear的URL才会被重定向。

方案2:用RewriteRule(更适合批量处理)

如果你的20个页面都需要重定向,RewriteRule会更灵活可控,同样支持精确匹配:

RewriteEngine On
RewriteRule ^dan-carr-gear-list/travel-gear$ https://dancarrphotography.com/gear/travel/ [R=301,L]
  • RewriteEngine On:确保重写引擎处于开启状态(如果你的.htaccess里还没加的话)
  • ^dan-carr-gear-list/travel-gear$:精确匹配目标旧路径
  • [R=301,L]:标记为301永久重定向,并且L表示这是最后一条执行的规则,避免后续规则干扰

额外排查小提示

  1. 测试前一定要清空浏览器缓存!301重定向会被浏览器强缓存,旧规则可能还留在缓存里导致测试不准
  2. 检查你的.htaccess文件里是否有其他冲突的重定向规则,建议把精确匹配的规则放在所有前缀匹配规则的前面
  3. 如果新站点的/gear/travel/是一个目录,确保服务器的DirectorySlash设置正常(默认是开启的,会自动给目录添加斜杠)

内容的提问来源于stack exchange,提问作者shuttermuse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:56:46