key 用了半年,借安全审计换了一个 32 位新 key,旧文件还留在根目录。提交开始返回 403,Bing 后台提示 key 验证失败,把旧文件删掉也没恢复,等了 24 小时接口还是 403。
真正麻烦的地方在于,几个原因的现象几乎一样。换 key 后旧提交记录失效 需要重新做一次验证;新旧两个 key 文件同时存在 校验时取到了旧文件;CDN 缓存了旧 key 文件的 200 响应;提交体里的 key 与文件名不一致 大小写或后缀不同。
直接访问新旧两个 key 文件
curl -sI https://www.example.com/8f3a9c2e.txt | head -5
只保留新文件并清边缘缓存
curl -X PURGE https://www.example.com/8f3a9c2e.txt
再往下用新 key 提交单条验证
curl -s -o /dev/null -w '%{http_code}\n' -X POST https://api.indexnow.org/indexnow -H 'Content-Type: application/json' -d @new.json
等前面都确认过,再确认响应头是纯文本
curl -sI https://www.example.com/8f3a9c2e.txt | grep -i content-type
这类问题以前遇到过,但这次的触发条件和上次不一样。
改完先别撤,确认这几项。单条提交返回 200 或 202,key 文件响应头是 text/plain,Bing 后台的验证状态回到已通过。
换 key 要同时清 CDN 和浏览器缓存,只删文件不改缓存,接口读到的还是旧内容。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
