重定向到子域会导致重定向循环错误

Posted

技术标签:

【中文标题】重定向到子域会导致重定向循环错误【英文标题】:Redirect to subdomain gives redirect loop error 【发布时间】:2013-11-23 09:24:39 【问题描述】:

这是我的代码,放在我域主目录的 htaccess 中。试图将国家流量(使用 mod_geoip)重定向到我的子域。

GeoIPEnable On

RewriteEngine On 
RewriteCond %ENV:GEOIP_COUNTRY_CODE ^US$ [NC]
RewriteRule ^(.*)$ http://sub.domain.com/$1 [R,L] 

但是,当我将其付诸实践时,我遇到了重定向循环错误。当我将重写规则切换到 domain.com 然后将文件放入 sub.domain.com 时,它似乎可以工作。我的代码有什么问题?谢谢!

【问题讨论】:

【参考方案1】:

感谢阿努巴瓦的帮助。我环顾四周,发现这个修改似乎可以解决问题。对RewriteRule 进行了更改。

GeoIPEnable On

RewriteEngine On 
RewriteCond %ENV:GEOIP_COUNTRY_CODE ^US$ [NC]

RewriteRule !^(subdomain) http://www.subdomain.domain.com [L,R]

我把它放在我的 .htaccess 中,它起作用了!我也看到了使用子文件夹重定向的这种用法。

【讨论】:

【参考方案2】:

在主机已经是sub.domain.com 时尝试使用此规则和附加条件来避免重定向:

GeoIPEnable On

RewriteEngine On 

RewriteCond %HTTP_HOST !^sub\.domain\.com$ [NC]
RewriteCond %ENV:GEOIP_COUNTRY_CODE ^US$ [NC]
RewriteRule ^(.*)$ http://sub.domain.com/$1 [R,L] 

【讨论】:

附加条件似乎不起作用。它实际上似乎覆盖了其他条件和规则,只是将我发送到 domain.com。不过感谢您的建议!

以上是关于重定向到子域会导致重定向循环错误的主要内容,如果未能解决你的问题,请参考以下文章

web.config 重定向到 https 导致重定向循环

根据IP将用户重定向到子域

使用 htaccess 将所有流量从根重定向到特定的子域页面

Laravel 路由组导致重定向循环

找不到子域时如何使网站重定向到页面[重复]

子域正在重定向到主域文件