记录一下那天晚上的排查过程。活动页做过一次 301 到专题页,缓存策略沿用了静态资源的一年。活动下线后跳转规则删了,节点上的 301 还在,用户和蜘蛛一直跳到已经 404 的专题。

刚开始盯着「301 本身是永久语义,回滚成本高」,折腾了半个多小时,排掉了。

这类报错背后常见的原因有几处,逐个排除就行。跳转响应套用了静态资源的缓存时长。还有一种是规则删除后没有主动刷新节点。

少数情况下是监控只测源站,从来没测过边缘。

动手时先看跳转响应的缓存头

curl -sI https://www.example.com/act/ | grep -i -E 'HTTP|cache'

强制刷新该路径

curl -X PURGE https://www.example.com/act/

接着把跳转缓存改成短时或禁止缓存

add_header Cache-Control 'no-store';

从

多

怎么算真的好了,看的是同一批现象。刷新并改成不缓存后,各节点都返回 404 而不是 301,专题页的误跳转消失,死链报告也不再增长。

这里还有个坑。301 天生是永久语义,配上一年的缓存,等于把一个临时决定钉死在所有节点上。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189