先看现象。站点迁到新服务器后,旧域名 DNS 还解析到旧机器,旧机器也没关站,两套内容同时在线,蜘蛛一半抓旧站一半抓新站,收录被拆成两份。

真正麻烦的地方在于,几个原因的现象几乎一样。DNS 只改了主 A 记录,备用记录还指向旧 IP。少数情况下是旧服务器上的站点目录没下线,仍然返回 200。

还有一种情况,TTL 设成 86400,解析切换要等一整天。

另外,新旧站之间没有 301 关系。

第一件事是看域名当前解析到哪些地址

Resolve-DnsName www.example.com -Type A

接着换公共 DNS 再确认一次

Resolve-DnsName www.example.com -Server 8.8.8.8 -Type A

旧服务器上的站点改成 301

server { listen 80; server_name old.example.com; return 301 https://www.example.com$request_uri; }

复核旧站返回码

curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://old.example.com/post-1/

当时还开着另一个排查窗口,两边日志对照着看才定位到。

怎么算真的好了,看的是同一批现象。域名只解析到新 IP,旧站全部 301 到新站,索引里的重复版本逐步合并。

迁移不是改完 DNS 就结束,旧机器上的站点必须显式下线或跳转。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189