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

如何配置RewriteRule实现单域名两个子目录分别跳转至不同独立域名

你的重写规则存在两个核心错误导致无法匹配需求:

  1. 若规则写在.htaccess文件中,RewriteRule 匹配的路径默认不带开头的斜杠/,你写的^(\/folder1\/)前缀带斜杠无法命中目标路径
  2. 捕获组引用错误:你将folder1/分到了第一个捕获组$1,后续需要保留的xyz路径属于第二个捕获组$2,跳转时引用$1会把folder1/也带到新域名后,不符合你要去掉路径前缀的需求

修正后的规则如下:

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.ca$ [NC]
RewriteRule ^folder1/(.*)$ https://domain2.ca/$1 [R=301,L,NC]

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.ca$ [NC]
RewriteRule ^folder2/(.*)$ https://domain3.ca/$1 [R=301,L,NC]

补充说明:

  • 规则中用(www\.)?简化了原来两条OR的判断逻辑,NC标记用于忽略大小写,避免域名、路径大小写不一致导致匹配失败
  • 如果你是将规则写在Apache主配置文件而非站点目录下的.htaccess中,才需要给路径加上开头的斜杠,即匹配规则改为^/folder1/(.*)$
  • 调试阶段建议先把R=301改为R=302,避免浏览器缓存错误的301规则影响测试结果,确认跳转逻辑完全符合预期后再改回301

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:24:02