资讯文章 资讯 · NEWS
末尾斜杠、大小写、带不带 www:目录站 URL 归一化最后那三处
2026-10-23 约 1,356 字 预计阅读 3 分钟 yiyunkj
末
目录站的 URL 天生容易长歪:分类用中文还是拼音换过一次、条目别名改过一轮、图片和静态资源换过一次域名。每一次调整都可能留下一个旧地址还活着。旧地址只要还返回 200 和内容,搜索引擎就把它当成一个独立页面。

图片来源:网络,版权归原作者所有,侵权请联系删除
先认清一个前提
URL 是一个精确的字符串。改一个字符就是另一个地址。这条规则下,下面这些看起来是「同一个页面」的组合,在爬虫眼里各算各的:
| 变体 | 例子 | 搜索引擎怎么看 |
|---|---|---|
| 协议 | http 与 https | 两个地址,301 到 https |
| 主机 | www 与非 www | 两个地址,选一个做主 |
| 末尾斜杠 | /design 与 /design/ | 两个地址(根路径除外) |
| 大小写 | /Design 与 /design | 路径部分区分大小写 |
| 默认文档 | /design/ 与 /design/index.html | 两个地址 |
唯一不算变体的是根路径带不带斜杠——站点根地址加不加那个斜杠,是同一个东西,不用管它。另外主机名不区分大小写,只有路径区分。
末尾斜杠:没有对错,只有一致
要不要带斜杠这件事,谷歌从来没有表态过哪种更好。真正影响结果的是混着用:一半内链带斜杠、一半不带,sitemap 里又是第三种写法,爬虫就会反复在两个地址之间跳。
选哪种主要看你用什么程序。WordPress、多数 PHP 程序默认带斜杠,静态生成器多数不带。别为了「看起来更规范」去改一个已经在排名的站点,改一次就要全站重定向一遍,收益几乎为零。新站则建议在配置里写死一种,别让框架自己猜。
大小写:中文站最容易忽略的一处
中文站的路径里常有英文单词:分类别名、工具名、城市拼音。Linux 上的 Web 服务器默认区分大小写,于是 /Tools/ 和 /tools/ 都能打开同一个页面,两版都被收录。
处理办法是在反向代理或应用入口统一转小写,再做 301。注意只转路径,参数值别乱转——有些参数值本身是大小写敏感的标识符。
www 与非 www:按运维方便选
技术上两者是等价的,www 在 DNS 层面只是个子域。真正的差别在运维:用 www 可以把 cookie 控制在子域范围、静态资源走另一个无 cookie 的域更干净;不用 www 则地址更短。选一个,把另一个 301 过去,别两个都留着。
三层信号要对齐
光做 301 不够,下面三处必须跟规范地址一致,否则信号互相打架:
- 自引用 canonical:从配置的站点基址拼出来,别从当前请求拼,不然变体页会自己引用自己。
- 内链、面包屑、结构化数据里的 URL:统一用规范形,包括 og:url。
- sitemap:只列返回 200 的规范地址,变体一概不进。
301 是能强制执行的信号,canonical 只是提示。两者都做,但以 301 为主,别指望一行标签替你收拾残局。
怎么自查
挑几个有代表性的页面,用 curl 只看响应头,把变体矩阵跑一遍:http、https、带 www、不带 www、带斜杠、不带斜杠、混大小写。每个非规范地址都应该是一跳 301 到规范地址,不能出现 302、不能出现跳转链、不能出现跳回自己。
再看服务器日志,看爬虫实际请求的是哪种写法——日志里出现大量非规范地址,说明有外部链接或老页面在指向它们,这些链接本身不用管,301 会接住,但如果来源站能联系上,请对方改一下更好。
改完之后别急,信号合并通常要几周。重定向规则要长期保留,写在配置注释里,下次有人动路由时才不会又造出一批新变体。