这个坑值得记一笔。几百条 URL 报重定向错误,用浏览器点开能正常打开,只是要跳好几次,最后落到一个和原标题完全不相关的页面。

排查方向其实有限,先把可能性排一排。跳转链中间某一跳指向了 404;重定向形成闭环,A 跳 B、B 又跳回 A;跳转目标带参数,实际命中了另一个页面。

上来先打印完整跳转链

curl -sIL -o /dev/null -w '%{url_effective} %{num_redirects}' https://www.example.com/a

再往下逐跳检查状态码

curl -sI https://www.example.com/a | grep -E 'HTTP|location'

剩下的就是把闭环中的一条改成一跳到位

rewrite ^/a/$ /target/ permanent;

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

改完先别撤,确认这几项。跳转次数降到一次以内,报告里的重定向错误条目清零,目标页面恢复收录。

容易忽略的是,链条中间出现 404 时,蜘蛛看到的是错误而不是跳转,必须从最后一跳往前逐个验证,别只看最终地址。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189