先给结论:如果服务器或中间层对路径大小写敏感,而站内链接、站点地图或历史外链写成了不同大小写,蜘蛛会把这些地址当成多个资源分别抓取。统一映射的目标不是“让大小写随便都能打开”,而是选定一个规范形式,让其余形式以正确的重定向或链接改写指向它,并用日志验证蜘蛛是否跟随。保留、改写还是退出,取决于哪个形式已经被大量引用、服务器能否稳定执行重定向,以及你是否愿意承担长期维护成本。
路径大小写差异的典型证据是:同一逻辑页面在日志中出现多种路径写法,且只有部分写法返回 200,其余返回 404、301 或 403。但这类现象不能单独证明大小写就是根因。服务器规则、CDN 缓存键、大小写不敏感的文件系统、URL 重写配置都可能产生类似结果。
可以按下面顺序核对:
curl -I 分别请求 /Page 与 /page,记录状态码和 Location。若两者都返回 200 且内容一致,说明当前环境不敏感,问题可能出在链接一致性而非可访问性。只有确认存在多种被引用的写法,且服务器行为与预期不一致时,统一映射才是有意义的动作。
统一映射的第一步是选一个规范形式。较稳妥的判据是:统计内部链接、站点地图和已知外链中哪种大小写出现最多,把这种形式保留为 200 的主地址。若历史外链大量指向 /Product/ABC,而新模板生成的是 /product/abc,直接改模板可能让旧链接全部落入重定向链,反而增加抓取成本。
保留策略的适用前提是:该形式在服务器上稳定可访问,且你能控制其余形式的输出。动作上,先固定规范形式,再让站点地图和 canonical 只输出这一种。结果是蜘蛛后续抓到的重复变体减少,日志中同一页面的路径条目收敛。下一步才是处理仍然存在的外部旧链接,而不是一次性全站替换。
如果服务器运行在大小写不敏感的文件系统上,保留策略的紧迫性较低,但仍应统一输出,避免迁移到敏感环境后集中爆发 404。
改写指修改站内链接、站点地图和模板,让它们不再生成非规范形式;重定向指让非规范形式以 301 指向规范形式。两者常一起用,但适用条件不同。
需要提醒的是,robots.txt 的抓取限制不等于可靠的索引移除。用 robots.txt 屏蔽非规范路径,可能让蜘蛛无法看到重定向,从而无法把信号传递到规范地址。若目标是合并信号,通常应允许抓取并返回 301,而不是直接屏蔽。
退出指不再为旧的大小写变体保留重定向,任其返回 404 或 410。它适用于以下前提:这些变体几乎没有外部引用,且服务器日志显示蜘蛛对它们的请求已长期处于极低水平;或者这些路径对应的是已下线内容,保留重定向会误导用户。
退出的动作是移除对应规则并观察日志。结果是相关请求逐步消失或稳定在 404。若之后发现仍有有价值的引用,再补回重定向的成本通常高于当初保留,因此退出前应确认引用来源确实不重要。请求量下降本身不能证明退出正确,还需排除蜘蛛整体抓取预算变化、站点改版或日志采样导致的假象。
假设某站有 /Docs/Start 与 /docs/start 两种写法。日志显示前者被外链引用较多,后者由站内模板大量生成。此时可先保留 /Docs/Start 为规范形式,把模板输出改为该形式,并为 /docs/start 配置 301。执行后再次抽样日志,确认蜘蛛请求非规范形式时返回 301 并最终抓到规范地址。若发现重定向链超过一跳,下一步是压缩规则,而不是继续增加变体。
这个例子的数字仅用于说明比较方法,不代表任何真实站点的统计结果。站点地图不保证收录,301 也不保证信号立即合并,因此判断应以持续观察为准,而不是以某次请求的返回码下定论。