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

关于.htaccess中旧域名分场景重定向的规则实现咨询

.htaccess中旧域名分场景重定向的规则实现咨询

嘿,这个需求完全可以通过调整.htaccess里的Rewrite规则顺序和匹配逻辑来实现!核心思路就是先处理特殊场景(旧域名根路径),再处理通用场景(带任意路径的情况),因为Apache的Rewrite规则是从上到下依次匹配的,把特殊规则放在前面就能优先触发。

具体的规则代码我帮你调整好了,直接替换你原来的代码就行:

# 先匹配旧域名的根路径(无任何后缀)
RewriteCond %{HTTP_HOST} ^oldurl\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.oldurl\.org$ [OR]
RewriteCond %{HTTP_HOST} ^oldurl\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.oldurl\.com$
RewriteRule ^$ https://newurl.com/the/old/page [R=301,L]

# 再匹配旧域名带任意路径的情况
RewriteCond %{HTTP_HOST} ^oldurl\.org$ [OR]
RewriteCond %{HTTP_HOST} ^www\.oldurl\.org$ [OR]
RewriteCond %{HTTP_HOST} ^oldurl\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.oldurl\.com$
RewriteRule (.*) https://newurl.com/$1 [R=301,L]

我给你拆解下每部分的作用:

  • 第一组规则里,RewriteRule ^$ 专门匹配空路径(也就是直接访问oldurl.com/或者oldurl.org的情况),匹配上后就重定向到你指定的新站特定页面 https://newurl.com/the/old/page
  • 第二组规则是通用场景,RewriteRule (.*) 会匹配所有带路径的请求(比如oldurl.com/anything-else),然后把捕获到的路径部分$1直接拼到新域名后面,实现oldurl.com/xxx跳转到newurl.com/xxx的效果

这里还有几个小提醒要注意:

  • 测试阶段建议先用R=302临时重定向,避免浏览器缓存301永久重定向导致测试结果不准,等所有规则验证没问题后再改成R=301
  • 确保你的服务器已经开启了mod_rewrite模块,同时旧站点的Apache配置里AllowOverride设置为All或者FileInfo,这样.htaccess里的规则才能生效
  • 要把代码放在旧站点根目录的.htaccess文件里哦

备注:内容来源于stack exchange,提问作者artmem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.15 11:48:04