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

.htaccess配置301跳转失效,如何实现旧域名路径定向到新域名对应路径

现有配置错误原因

  • 重定向规则顺序错误:301规则放在了站点默认路由规则的后面,请求会先被路由到index.php处理,无法触发后续的重定向规则
  • 重定向目标配置错误:跳转目标错误填写为旧域名,且第二条/Helium的匹配源错误写成了/Vidz
  • Redirect是mod_alias的指令,和mod_rewrite的规则混用时容易出现匹配优先级冲突,统一用mod_rewrite写重定向规则可控性更高

修正后的完整.htaccess配置

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /

# 301重定向规则 必须放在所有路由规则之前
# 匹配所有/Vidz开头的路径(含子路径)
RewriteRule ^Vidz(.*)$ https://www.newweb.example/Vidz$1 [L,R=301,NC]
# 匹配所有/Helium开头的路径(含子路径)
RewriteRule ^Helium(.*)$ https://www.newweb.example/Helium$1 [L,R=301,NC]

# 站点默认路由规则
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

规则说明

  • R=301指定为永久重定向,L表示匹配到当前规则后不再执行后续重写规则,NC表示路径匹配时忽略大小写
  • 规则中的(.*)和$1会自动将原路径的子路径拼接在新域名后,比如https://www.oldweb.example/Vidz/play/123.html会自动跳转到https://www.newweb.example/Vidz/play/123.html
  • 如果仅需要匹配根路径下的/Vidz、/Helium(不需要适配子路径),可以将重定向规则替换为:
    RewriteRule ^Vidz$ https://www.newweb.example/Vidz [L,R=301,NC]
    RewriteRule ^Helium$ https://www.newweb.example/Helium [L,R=301,NC]
    
  • 配置修改后需要清空浏览器缓存再测试,避免旧的301缓存影响验证结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:51:03