先给结论:当同一份内容因为路径大小写不同被当成两个地址时,优先保留一个规范形式,把所有其他写法用服务器层重定向映射过去;只有在历史链接复杂到无法收敛时,才考虑改写链接结构或退出这批路径。判断依据不是“哪个写法更好看”,而是哪种写法已经被站内链接、站点地图和外部链接大量引用。
路径大小写在很多服务器上并不等价。Linux 文件系统通常区分大小写,/News/2024/ 和 /news/2024/ 可能指向两个不同目录;而 Windows 或某些容器环境不区分,两者会落到同一文件。这种差异会让同一页面出现两个可访问地址,站内链接一半用大写、一半用小写,抓取和收录信号就被拆散了。
验证方法很直接:对同一路径分别用不同大小写请求,观察返回状态码和最终地址。如果两种写法都返回 200,且内容相同,说明存在重复地址;如果一种返回 200、另一种返回 404 或 301,说明服务器已经做了部分处理,但未必覆盖所有变体。这一步的产出是一张“大小写变体清单”,它是后续决定保留还是改写的依据。
保留某个大小写形式,适合它已经被大量引用的情况。比如站点地图、导航和外部链接长期使用 /Products/,而小写版本只是内部编辑器偶尔手误产生。此时把 /products/ 用 301 指向 /Products/,比反过来改所有引用成本更低。
动作要点:在服务器配置中为每个已知变体写一条 301,而不是只处理首页那种泛匹配。做完之后重新请求一次变体地址,确认返回 301 且目标地址正确。这个动作的结果会直接决定下一步——如果所有变体都能稳定跳转,就不需要再动站内链接;如果仍有变体返回 200,说明映射没覆盖全,要继续补规则。
改写适合规范形式本身不合理、或者大小写混用已经渗透到模板层的情况。例如目录名由程序自动生成,大小写随用户输入变化,靠重定向只能追着补,无法根治。此时把规范形式统一为全小写,并在模板、数据库和站点地图中批量替换,是更彻底的收敛。
改写的前提是你能控制引用来源。如果外部链接大量指向大写版本,直接改规范形式会让这些链接落到 404 或跳转链上,短期可能增加抓取负担。因此改写前要先确认外部引用规模,改完后保留旧写法到大写版本的 301,而不是直接删掉。动作结果是:站内引用收敛为一种写法,旧地址仍可到达,抓取信号逐步集中到新规范地址。
退出不是放弃收录,而是不再试图让每个大小写变体都进入索引。适用条件是路径由第三方系统生成、你无法修改模板,也无法保证重定向规则稳定生效。这种情况下继续补映射只会增加维护成本,且每次系统升级都可能让规则失效。
退出的实际动作是:只保留一个入口页面,用 rel="canonical" 指向规范地址,同时在站点地图中只提交规范形式。需要注意的是,站点地图不保证收录,canonical 也只是提示而非强制指令;如果服务器仍对变体返回 200,抓取工具仍可能发现它们。因此退出更适合“变体数量有限且不主动推广”的场景,而不是变体持续新增的场景。
假设一个站点有 200 个产品页,其中 60 个被外部链接用大写路径引用,其余 140 个只在站内小写引用。按引用量选择大写作为规范形式,把 140 个小写地址 301 到大写,比反过来改 60 个外部链接更省事。这个比较只说明选择方法,不代表任何真实站点的处理结果。