先看现象。域名被写进配置时首字母大写,规范地址原样输出,蜘蛛把它当成另一个主机名,两条地址各收一半。

这类报错背后常见的原因有几处,逐个排除就行。配置项没有统一转成小写。另一种情况是模板直接拼接配置值。

另外,服务器对大小写域名返回不同内容。

上来先看实际输出的地址

curl -s https://www.example.com/post/ | grep -o 'canonical" href="[^"]*'

接着统一转小写

echo strtolower(get_permalink());

随后核对服务器是否忽略大小写

curl -sI https://WWW.EXAMPLE.COM/ | head -1

剩下的就是确认只保留一个地址

curl -s https://www.example.com/post/ | grep -c 'canonical'

白天有业务在跑,能验证的部分都压到了晚上做。

当时还开着另一个排查窗口,两边日志对照着看才定位到。

怎么算真的好了,看的是同一批现象。规范地址全小写且与访问域名一致,两条地址不再被分开计数,备用网页减少。

提醒一点。域名本身不区分大小写,但地址字符串区分,标记里保持全小写最省事。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189