多站点.htaccess指定域名301重定向问题求助
解决多域名部署下的重定向循环与Rewrite规则失效问题
问题根源
- 使用
Redirect 301 /test1 https://bbb.com/test1会对当前目录下的所有域名生效,所以当访问https://bbb.com/test1时也会触发这条规则,导致无限循环,出现“Too many redirects”错误。 - 你之前尝试的Rewrite规则失效,是因为在
.htaccess文件中,RewriteRule的匹配路径不需要带开头的斜杠——Apache处理目录级的.htaccess时,会自动去掉请求路径中对应目录的前缀,所以/test1在规则里实际匹配的是^test1/?$而非^/test1/?$。
正确的.htaccess配置方案
将以下规则添加到你的.htaccess文件中:
RewriteEngine On # 仅匹配aaa.com(含www前缀)的请求 RewriteCond %{HTTP_HOST} ^(www\.)?aaa\.com$ # 匹配/test1或/test1/,重定向到bbb.com的对应路径 RewriteRule ^test1/?$ https://bbb.com/test1 [L,R=301]
补充说明
- 必须确保
RewriteEngine On开启重写引擎,否则所有Rewrite规则都不会生效。 [L]标记表示这是最后一条执行的规则,避免后续规则干扰当前重定向逻辑。R=301代表永久重定向,若需要临时重定向(比如测试阶段),可以改为R=302。- 如果需要保留原请求的查询参数(例如
https://aaa.com/test1?id=123要同步到https://bbb.com/test1?id=123),可以在标记中添加QSA,即修改为[L,R=301,QSA]。
内容的提问来源于stack exchange,提问作者Ir3nicus
相关产品推荐
相关产品推荐

