验证修复后的重定向响应,不能只看浏览器地址栏是否跳到了新页面。正确做法是直接观察服务器返回的HTTP状态码、Location响应头以及跳转链,确认状态码符合预期、目标地址正确、且没有多余中间跳转。如果修复目标是301永久重定向,就应该看到301;如果本意是临时跳转,302或307才合理。状态码与预期不符,说明修复未生效或配置被其他规则覆盖。
重定向修复通常有三类目标,验收标准各不相同。
Location指向最终目标。验收前先写下预期状态码和目标地址。没有这份预期,就无法判断“修复后”的响应是否正确。这一步属于交付资料,应由执行修复的人提供,验收人据此逐项核对。
浏览器会跟随跳转,隐藏中间响应,因此要用能显示响应头的工具。以curl为例,假设要把http://example.com/old永久重定向到https://example.com/new,可以执行:
curl -I http://example.com/old
观察输出中的第一行状态码和Location头。若返回301且Location为https://example.com/new,说明该条规则生效。若返回200,说明重定向没有配置或未命中;若返回404,说明旧地址已不存在且没有跳转规则。
要查看完整跳转链,加上跟随参数:
curl -IL http://example.com/old
它会依次输出每一跳的响应。重点检查跳转次数和最终状态码。如果出现两次以上跳转,或中途经过无关域名,应作为问题记录,而不是直接通过验收。
每一项都应记录实际值与预期值。只写“已修复”无法作为验收依据。
如果验证结果不符合预期,不要立刻断定是某一条规则写错。同一现象可能有多种解释。例如返回200而没有跳转,可能是规则未部署、规则顺序被前面的条件拦截、缓存返回了旧响应,也可能是请求根本没到达应用层。返回301但目标错误,可能是Location拼接时变量取值不对,也可能是上游代理改写了响应头。
排查时先缩小范围:换一个不带缓存的请求、直接请求源站而非CDN、检查服务器配置中规则的先后顺序。只有通过对比确认了具体环节,才能称为“已经定位的原因”。在定位之前,记录现象和已排除的可能即可。
修复完成不等于验收完成。建议在配置生效后、缓存刷新后各验证一次,确认结果稳定。执行修复的人负责提供预期状态码与目标地址,验收人负责按清单逐条核对并留存响应头记录。若项目使用CDN或反向代理,需要确认边缘节点与源站返回一致,避免源站正确但边缘仍返回旧响应。
下一步:选一个已修复的代表性URL,用curl -IL跑一次完整跳转链,把状态码、Location和跳转次数与预期逐项对照,不符合的项按上面的排查顺序定位。