先看现象。域名被写进配置时首字母大写,规范地址原样输出,蜘蛛把它当成另一个主机名,两条地址各收一半。
这类报错背后常见的原因有几处,逐个排除就行。配置项没有统一转成小写。另一种情况是模板直接拼接配置值。
另外,服务器对大小写域名返回不同内容。
上来先看实际输出的地址
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'
白天有业务在跑,能验证的部分都压到了晚上做。
当时还开着另一个排查窗口,两边日志对照着看才定位到。
怎么算真的好了,看的是同一批现象。规范地址全小写且与访问域名一致,两条地址不再被分开计数,备用网页减少。
提醒一点。域名本身不区分大小写,但地址字符串区分,标记里保持全小写最省事。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
