换域名四个月,旧域名打开首页会跳到新站,内页却原地返回 200,收录里两套域名各有一份,外链权重一直没并过来。乍看像缓存或者权限的锅,追下去往往不是。
server {
server_name old.example.com;
return 301 https://example.com$request_uri;
}
追下去是这么回事:301 只配在了首页那一条 location 上,其他路径没有兜底规则,请求照常由旧站点处理。旧域名解析没撤,服务器也还挂着旧站,抓取工具两边都能抓到内容。
「旧域名跳转」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
具体做法是,在旧域名的 server 块里做全站跳转,所有路径都带上原 URI 一起转;保留一条例外给验证文件和后台入口,避免自己进不去;确认没有内链还指向旧域名,用爬虫扫一遍全站;观察一个月后再考虑撤掉旧站文件,先别急着删。
验收就看一点,旧域名任意内页都返回 301 且 Location 带完整路径,新域名对应页面返回 200。
