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

如何通过.htaccess将旧子域名URL重定向至新子域名?

子域名URL重定向问题

根目录下的.htaccess重定向代码已正常生效,现需将旧子域名info.oldsite.co.uk下的所有URL(如https://info.oldsite.co.uk/blog/some-blog-post-a)重定向至新子域名info.NEW111NEW.com的对应路径。此前尝试三种配置均存在问题:

  • 配置1完全无效
  • 配置2完全无效
  • 配置3仅部分生效:非/blog路径出现循环重定向,/blog路径出现双斜杠//异常

已生效的根目录.htaccess代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldsite.co.uk [NC,OR]
RewriteCond %{HTTP_HOST} ^www.oldsite.co.uk [NC]
RewriteRule ^(.*)$ https://www.NEW111NEW.com/$1 [L,R=301,NC]

尝试过的无效/部分生效配置

配置1(完全无效)

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^info.oldsite.co.uk [NC]
RewriteRule ^blog/(.*) http://info.NEW111NEW.com/blog/$1 [L,R=301,NC]

配置2(完全无效)

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(info\.)?oldsite\.co\.uk$ [NC]
RewriteRule ^(.*)$ http://info.NEW111NEW.com/blog/$1 [R=302,L]

配置3(部分生效)

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^info\.oldsite\.co\.uk [NC]
RewriteRule ^(.*)$ https://info.new.com/blog/$1 [L,R=301,NC]

正确的重定向配置

问题根源分析

  • 配置1:仅匹配/blog/开头的路径,非/blog路径未处理,导致大部分请求无重定向。
  • 配置2:正则同时匹配主域名和info子域名,但重定向目标硬拼接/blog/,强制所有路径转到/blog下,逻辑错误。
  • 配置3:目标域名写错为info.new.com(应为info.NEW111NEW.com),且硬加/blog/前缀,原路径带/blog时会出现重复路径(如/blog/blog/xxx),非/blog路径因域名错误或新站配置问题引发循环重定向。

正确配置代码

将以下规则放在根目录已生效的重定向规则之前:

# 处理info子域名的永久重定向
RewriteEngine on
RewriteCond %{HTTP_HOST} ^info\.oldsite\.co\.uk [NC]
RewriteRule ^(.*)$ https://info.NEW111NEW.com/$1 [L,R=301,NC]

配置说明

  1. 规则顺序:放在主域名重定向规则前,确保info子域名的请求优先被匹配,不会被主域名规则拦截。
  2. 精准匹配:%{HTTP_HOST} ^info\.oldsite\.co\.uk只匹配旧info子域名,不影响主域名或其他子域名。
  3. 路径映射:^(.*)$捕获完整原路径,$1将其完整映射到新子域名,保证路径完全对应,避免双斜杠或额外路径问题。
  4. 标记说明:[L]表示匹配后停止后续规则,[R=301]为永久重定向(利于搜索引擎收录),[NC]忽略大小写匹配。

测试建议

  • 先使用R=302临时重定向测试,确认所有路径跳转正常后,再改为R=301永久重定向。
  • 检查新子域名info.NEW111NEW.com的服务器配置,确保没有反向重定向回旧域名,避免循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:40:16