先把当时的情况摆出来。把 key 文件放在 /static/ 目录下提交,Bing 一直验证不通过,接口稳定返回 403,换文件名也没有改善。

这类报错背后常见的原因有几处,逐个排除就行。key 文件必须放在站点根目录,子目录不被认可。还有一种是文件名与 key 值不一致,大小写也会影响。

少数情况下是服务器对 .txt 返回了 HTML 错误页,内容不匹配。

先确认根目录下的文件可访问

curl -s https://www.example.com/8f3a2b.txt

接着把 key 文件移到根目录

cp static/8f3a2b.txt /www/wwwroot/site/8f3a2b.txt

剩下的就是核对返回内容与 key 完全一致

curl -s https://www.example.com/8f3a2b.txt | md5sum

隔了一天再看,现象没变,说明不是偶发。

那几天正好在做别的变更,先把时间线对齐才敢动手。

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

怎么算真的好了,看的是同一批现象。接口返回 200 或 202,验证通过后推送的 URL 开始被抓取,Bing 里能看到已发现记录。

key 文件里只能有 key 本身,多一个换行或空格都会验证失败,用 md5 比对最稳妥。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189