301重定向设置日志中应该核对哪些字段

📍 WDQWDWQD987AAAAA:216.73.216.78
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /5223fb63ea9b.html
📄

301重定向设置日志中应该核对哪些字段

在301重定向设置的日志里,最该优先核对的是请求时间、来源URL、目标URL、HTTP状态码、响应来源主机以及客户端IP或User-Agent。判断一条重定向是否按预期执行,不看日志里有没有“301”三个字,而要看来源路径、目标路径和状态码是否同时对应。若状态码是301但目标URL错误,问题在规则映射;若来源URL根本不在日志中,问题在流量未到达或日志采集范围。

先分清三类日志,字段含义不同

服务器访问日志、CDN或反向代理日志、应用层重定向日志,记录的字段并不一致。常见访问日志会包含客户端IP、时间、请求方法、来源路径、状态码、响应大小、Referer和User-Agent。CDN日志还可能多出边缘节点、缓存命中状态和回源地址。应用层日志则可能只记录规则命中,不记录真实客户端信息。

核对前要确认日志来自哪一层。若只看到应用层规则命中,却看不到客户端请求,不能据此判断全网重定向正常;若只有CDN边缘日志,没有回源日志,也不能确认源站是否二次跳转。

必须逐项核对的字段与判断结果

用一条日志做最小核对示例

假设日志中出现一条记录:请求路径为 /old-page,状态码为 301,Location为 https://example.com/new-page。核对步骤是:先确认 /old-page 确实是需要重定向的来源;再确认 https://example.com/new-page 返回200且内容正确;最后确认该记录出现在规则改动之后。三项都满足,才能判断这一条请求的重定向设置生效。若Location指向 https://example.com/new-page/ 而实际页面不带斜杠,可能产生额外跳转,需要进一步核对。

发现异常时,按顺序缩小范围

  1. 先按状态码筛选:301、302、404、500分别统计。404和500优先处理,因为它们说明请求未进入正常重定向。
  2. 再按来源路径分组:同一路径是否稳定返回同一目标。若不稳定,检查多节点规则同步或缓存。
  3. 然后检查目标URL:是否出现循环跳转、跳转到登录页、跳转到错误域名或丢失查询参数。
  4. 最后对比改动时间:规则上线前后的日志差异,是判断是否由本次301重定向设置引起的直接依据。

如果日志中来源URL缺失,可能原因包括日志采集未覆盖该域名、请求在到达源站前已被CDN处理、或者规则在更前置的网关层执行。此时不要直接断定重定向未生效,应先确认日志采集范围。

选择核对深度:按代价决定

只改少量静态路径时,核对状态码、来源路径和目标URL即可。涉及整站迁移、域名更换或大量参数URL时,需要增加响应来源主机、客户端类型和跳转链长度核对。跳转链越长,用户等待和抓取消耗越大,通常应让来源直接指向最终目标,而不是经过多次301。若业务依赖POST请求,还要单独核对301后请求方法和请求体是否保留,不能只用GET日志判断。

下一步可以选一个已上线的来源路径,从日志中筛出改动后的前20条记录,逐条比对来源、状态码和Location;若三项一致且目标页面可正常访问,再扩大到全量路径分组核对。

图1 图2

nginx