结论先说:如果服务器或CDN对路径大小写敏感,而站内链接、站点地图或历史外链混用了大小写,正确做法不是逐条改链,而是先确定一个统一的小写映射规则,再用重定向把已知变体收敛到该规则上;但如果同一路径的大小写变体各自承载了不同内容或不同业务参数,就不能合并,必须保留区分并分别处理。
路径大小写问题常被误判。一个URL返回404,不代表一定是大小写映射错了。更可靠的判断顺序是:先用curl -I分别请求原始大小写和目标小写形式,比较状态码;再看服务器日志里该路径的请求是否真的到达了应用层;最后检查返回404的是Web服务器、反向代理还是应用路由。
如果原始大小写返回200、小写返回404,说明当前映射只认一种写法;如果两者都返回200但内容不同,说明系统把大小写当成了两个资源,这属于重复内容风险而非单纯死链。这两种情况的处理方向完全不同。
统一映射成立的前提是:路径大小写不携带业务含义,且历史链接中的变体都指向同一份内容。满足这个前提时,可以建立一个规范化规则,例如全部转为小写,并在服务器或CDN层配置301,把已知变体指向规范形式。
失效反例是:某些系统用大小写区分资源,例如/File/Report和/file/report分别对应不同租户或不同版本。此时强行统一映射会把两个不同页面合并,造成内容错位。遇到这种情况,应保留区分,只对确认指向同一资源的变体做重定向。
假设站点有大量历史链接混用了大小写,且确认这些变体都指向同一内容。可以按以下步骤操作:
这个动作的结果会直接影响下一步:如果重定向后旧变体请求量下降、规范URL返回200,说明映射生效;如果旧变体请求量不降反升,可能是站内仍有链接在输出旧形式,需要回到第4步继续清理。
robots.txt的抓取限制不等于可靠的索引移除,它只阻止抓取,不保证已收录的变体从索引中消失。站点地图也不保证收录,它只是发现入口。把大小写变体写进站点地图,反而可能让搜索引擎同时发现多个版本。正确顺序是先做重定向收敛,再更新站点地图和站内链接,而不是反过来。
旧变体请求量归零,不能单独证明处理正确。它还可能是因为日志采样变化、CDN缓存命中、监控口径调整,或者搜索引擎暂时降低了抓取频率。更稳妥的验证是同时看三件事:规范URL是否稳定返回200、旧变体是否返回301、站内链接和站点地图是否只输出规范形式。三项都满足时,才能认为映射统一已经落地。
如果三项中有一项不满足,下一步应回到对应环节继续处理,而不是直接认为死链问题已经结束。