求助:www.astroflame.com网站频繁出现ERR_TOO_MANY_REDIRECTS错误
解决ERR_TOO_MANY_REDIRECTS重定向循环问题
针对你的情况,给出几个实操的排查和修复步骤:
1. 修正HTTPS重定向规则
服务商提供的规则仅依赖X-Forwarded-Proto头,但Easyspace的代理环境可能存在头传递不稳定的情况,导致规则判断失效引发循环。替换成同时检查服务器自身HTTPS状态的规则:
RewriteEngine On # 同时覆盖服务器本地HTTPS未开启、代理头显示非HTTPS两种场景 RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC] RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
[NC]忽略大小写,避免代理头传HTTPS大写时判断失败R=301明确永久重定向,减少浏览器缓存混乱
2. 清空各层缓存
- 浏览器端:强制清空缓存(Ctrl+Shift+Del),完全关闭浏览器后再重新打开测试,不要依赖隐私模式的“自动清空”机制
- 服务器端:联系Easyspace清空主机的服务器缓存、CDN缓存(如果有启用),静态站点也可能被服务商的缓存节点保留旧重定向规则
3. 排查域名与代理配置
- 检查域名解析记录:确保只存在一种有效解析(A记录指向主机IP,或CNAME指向Easyspace提供的域名),避免多解析导致访问不同节点出现状态不一致
- 确认SSL证书状态:登录Easyspace后台查看SSL证书是否正常生效,部分服务商将证书部署在代理层,服务器本身仍走HTTP,这时候单独依赖代理头就容易出问题
4. 排查.htaccess冲突
- 暂时注释掉.htaccess里除上述重定向规则外的所有内容,测试是否还会出现循环。如果恢复正常,再逐个恢复原有规则,找到冲突项
- 若存在www/非www重定向规则,要把HTTPS重定向和域名统一规则合并,避免互相触发循环,比如:
# 先统一域名到www RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] # 再强制HTTPS RewriteCond %{HTTPS} off [OR] RewriteCond %{HTTP:X-Forwarded-Proto} !https [NC] RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
5. 用命令行验证重定向逻辑
用curl命令测试请求头,确认重定向链是否正常:
# 测试HTTP请求是否正确跳转到HTTPS curl -I http://www.astroflame.com # 测试HTTPS请求是否没有额外重定向 curl -I https://www.astroflame.com
如果返回的状态码是200 OK说明正常;如果还是出现301/302重定向,检查返回的Location头是否指向自身,这就是循环的直接证据。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

