症状
抓取 URL 以重定向次数过多失败,跟随链会看到同一 URL 反复出现。循环通常由相互冲突的规则造成:HTTP 到 HTTPS 的重定向又被代理发回 HTTP、尾斜杠规则与另一规则相争,或认证中间件把请求重定向到一个同样需要认证的页面,于是每一跳都回到受保护 URL。
诊断
用 curl -IL 追踪 Location 链;检查 nginx rewrite/return 规则;检查认证跳转逻辑。
curl -sIL http://host/path | grep -i "^location\|^HTTP"
根因
重定向链回到了已访问过的 URL,因为规则把请求改回了源头,或认证守卫跳到了另一个受保护页面。
修复
修正规则使每一跳向前推进;纠正代理配置中的 scheme 与 host;把登录或错误路径从认证跳转中豁免,使其能终止而非自循环。
验证
再次请求确认链以 200 终止,并确认最终 URL 是预期目标。链终止且目标正确即证明循环已打破。
常见陷阱
仅抬高客户端的最大重定向次数会把循环延后而非修复;应从规则入手。