too many redirects:重定向链走不完或形成了循环
too many redirects严重程度 Medium请求在限定次数内没有到达最终页面,重定向链要么过长要么形成了循环。最可能是两条跳转规则互相触发(典型是 HTTPS 跳转与 www 跳转打架);第一步是看完整的重定向链,找出反复出现的两个地址。
结论
重定向本身是正常机制——HTTP 跳 HTTPS、www 跳裸域、旧路径跳新路径,每天都在发生。出问题的是链走不到头:要么两条规则互相把请求踢来踢去形成死循环,要么链条长到超出了客户端愿意跟随的次数。
好消息是这类问题的证据极其明确:把完整的重定向链摆出来,循环的两端会自己显形。
适用环境
- 全部平台
- 网站访问、订阅地址更新、API 调用
一分钟快速判断
connproof subscription "https://目标地址"报告会给出每一跳的状态码与目标(域名已脱敏)。看两件事:
- 链中有没有地址重复出现? 有 → 循环,那两个反复出现的地址就是互踢的两端;
- 链是不是单向变长? 每一跳都指向新地址、始终没到终点 → 链条过长,多见于多层代理各做一次跳转。
ConnProof 检测到重复地址时会在证据里直接写明"链中出现重复地址,存在循环",不用你自己数。
这条错误代表什么
浏览器和大多数 HTTP 客户端都会限制跟随重定向的次数(通常十次左右),超出即放弃。这个限制是必要的保护——没有它,一个循环会让客户端永远转下去。
所以这条错误的字面意思是"次数用完了",真实含义是服务端的跳转规则之间存在冲突。它几乎总是配置问题,而不是网络问题——这意味着换网络、换节点、重启客户端都不会有任何改变。
ConnProof 如何判断
检测器手动跟随重定向而不是交给底层库,因此能保留完整的跳转链:每一跳的地址、状态码、耗时。当跟随次数用尽仍未到达终态时判为 HTTP-004,并额外做一次判断——把链中出现过的地址去重后与总跳数比较,数量对不上就说明有地址重复出现,即存在循环。
这个"去重比较"很简单但很有用:它把"链太长"和"链在打转"这两种表面相同、成因不同的情况分开了。
报告中的地址经过脱敏(查询参数会被移除),但域名和路径保留——足够定位问题,又不会泄露订阅凭据。
最常见原因
一、HTTPS 跳转与 www 跳转互相触发。 这是教科书级的经典:一条规则把 http:// 跳到 https://www.,另一条把 www. 跳回裸域但用的是 http://,于是两条规则开始无限传球。本站的 .htaccess 里两条跳转都固定跳向 https:// 加裸域,正是为了避免这个陷阱。
二、反向代理与源站方向相反。 代理层做了一次"强制 HTTPS",而源站因为收到的是 HTTP 回源请求,又做了一次同样的跳转。两边都认为自己在做对的事。
三、登录态判断异常。 未登录跳登录页,登录页因为某种原因又判定"已登录"跳回原页。这种循环通常伴随 Cookie 或会话异常。
四、CDN 回源协议冲突。 CDN 用 HTTP 回源,源站强制跳 HTTPS,跳转结果又回到 CDN——绕了一圈回到起点。
用户侧排查步骤
坦白说,用户能做的有限,因为这基本是服务端配置问题。有价值的动作只有三个:
- 取证:运行检测拿到完整的跳转链;
- 排除本地因素:清一次浏览器 Cookie 后重试。登录态循环有时能被清 Cookie 解决——如果能,说明是会话异常而非纯配置问题;
- 反馈:把跳转链交给服务方。这个链条对他们来说是可以直接照着改配置的材料,比"你们网站打不开"有用得多。
不要浪费时间在换网络、换节点、重装客户端上——服务端的跳转规则不会因为你换了网络就改变。
服务维护者排查步骤
- 把跳转链画出来,找出循环的两端;
- 检查 HTTPS 强制跳转与域名规范化(www/裸域)两条规则,确保它们指向同一个终点——最稳妥的写法是每条规则都直接跳到最终形态(
https://+ 规范域名),而不是分步跳转; - 使用反向代理或 CDN 时,确认回源协议与源站的跳转规则不冲突。常见修法是让源站信任
X-Forwarded-Proto头,而不是只看自己收到的协议; - 修改后从公网侧验证,而不是只在服务器本机测——很多跳转问题只在经过完整链路时才出现。
如何区分本地问题和服务端问题
| 证据 | 结论 |
|---|---|
| 链中有地址重复出现 | 服务端跳转规则冲突 |
| 清 Cookie 后恢复 | 登录态/会话异常 |
| 换网络后依旧 | 与网络无关,不必再试 |
| 多设备都复现 | 服务端配置(找服务方) |
| 只有一台设备复现且清 Cookie 无效 | 该设备的浏览器扩展或本地代理规则 |
仍未解决时收集什么信息
- ConnProof 错误码(HTTP-004)与脱敏报告;
- 完整的重定向链(状态码序列与各跳目标);
- 清 Cookie 前后的对照结果;
- 是否经过 CDN,以及检测时间。
禁止提交:完整订阅链接、密码、验证码、私钥、Token。
重新运行检测
connproof subscription "https://目标地址" --format markdown --output redirect-report.md修复后重定向应在少数几跳内到达最终页面并返回 2xx。
相关文档
更新记录
- 2026-07-29:规则 v1 发布。此前重定向未完成只报 warning 且没有独立错误码,本次升为 fail 并加入循环检测。