改版或迁移时,www二级域名必须和主域名分开核对。最常见的误解是:既然www.example.com只是example.com的一个子域,那只要主域名配置对了,www自然也会跟着对。实际上,两者在DNS解析、服务器绑定、证书覆盖、重定向规则和搜索引擎抓取记录上都是独立对象,迁移时漏掉任何一项,都可能出现主站正常、www打不开或www被当成重复内容的情况。
很多站点在长期运行中形成了默认习惯:要么主域名跳转到www,要么www跳转到主域名。这种跳转平时看不出问题,但迁移时如果只改了其中一侧,另一侧就会指向旧服务器或旧目录。另一个原因是,www在DNS里通常是一条单独的CNAME或A记录,它不会因为主域名的解析变更而自动更新。证书也是同理,如果新证书只签发了example.com而没有包含www.example.com,浏览器访问www时就会报证书错误。
dig www.example.com或在线DNS查询工具分别查主域名和www,不要只看其中一个。example.com和www.example.com。只覆盖其一时,另一个会触发证书警告。假设规范版本定为不带www,那么迁移后应满足:访问http://www.example.com/old-page时,经过一次301到达https://example.com/new-page。可以用curl -I查看响应头和状态码:
curl -I http://www.example.com/old-page
判断结果时注意三点:状态码是否为301而不是302或200;Location是否指向正确的新地址;跳转链是否只有一跳。如果出现301跳301再跳301,说明中间还有旧规则没有清理。这个检查对主域名和www要分别做一遍,因为两者的规则可能写在不同的配置文件里。
迁移时还要检查robots.txt和站点地图里出现的地址是哪个版本。如果robots.txt只允许抓取主域名而屏蔽了www,那么www下的旧链接就无法被正常抓取和传递信号。需要说明的是,robots.txt的抓取限制不等于可靠的索引移除,被屏蔽的URL仍可能出现在搜索结果中;站点地图也不保证收录,它只是提交候选地址的一种方式。因此不能把站点地图里写了新www地址就当作迁移完成的依据,仍要结合实际抓取和索引状态判断。
把www当成主域名的附属品,会导致迁移时只测试首页。正确做法是把www视为一个独立站点来核对:它有自己的解析、绑定、证书、重定向和旧链接映射。适用条件是站点同时存在主域名和www两个可访问版本;如果站点从一开始就只使用其中一个版本且另一个从未解析,核对范围可以相应缩小,但仍要确认旧外链指向的那个版本是否有对应处理。
下一步:先确定规范版本是带www还是不带www,然后用上面的curl -I方法分别测试主域名和www的首页及一个典型内页,把状态码和跳转目标记录下来,再逐项对照清单排查。