老旧域名无损迁移需精准配置301重定向,确保旧URL一对一映射新URL,如old.com/product/123→new.com/item/123,避免泛跳;Apache用.htaccess逐条规则匹配并强制HTTPS与www,Nginx在server块中用rewrite配合permanent标记;上线前须curl验证状态码、百度抓取诊断测跳转链、浏览器实测页面完整性。

用 rewrite 规则实现老旧域名无损流量迁移,核心是精准配置服务器端 301 重定向,确保每个旧 URL 一对一映射到对应的新 URL,而非简单跳首页。这直接关系到百度 2026 年算法对“语义连续性”和“用户停留时长”的评估——错配或泛跳会触发降权,导致流量断崖式下跌。
必须坚持“一对一”URL 映射
rewrite 不是把整个旧站导到新站首页,而是让 old.com/product/123 跳转到 new.com/item/123,old.com/blog/post-a 跳转到 new.com/articles/post-a。百度爬虫会比对页面主题、标题、正文结构是否一致,若发现旧页讲“SEO优化”,新页却是“企业招聘”,系统将判定为“内容断裂”,权重传递效率下降超 40%。
- 先梳理旧站所有有效 URL(可用 Screaming Frog 或百度站长平台抓取)
- 按内容类型分组,逐条匹配新站对应页面路径
- 避免使用通配符泛跳,如
RewriteRule ^(.*)$ https://new.com/ [R=301,L]—— 这种写法只适合全站废弃、仅保留品牌主页的极端情况
Apache 下 .htaccess 的安全写法
在旧域名根目录的 .htaccess 文件中添加规则,需同时满足:协议统一、主机名强制、路径完整继承。
- 启用重写引擎:
RewriteEngine On - 先做协议与 www 强制跳转(防重复收录):
RewriteCond %{HTTPS} off [OR]RewriteCond %{HTTP_HOST} !^www\.old\.com$ [NC]RewriteRule ^(.*)$ https://www.old.com/$1 [R=301,L] - 再执行主跳转(关键):
RewriteRule ^product/(.*)$ https://www.new.com/item/$1 [R=301,L]RewriteRule ^blog/(.*)$ https://www.new.com/articles/$1 [R=301,L]
每条规则末尾加 [L] 防止链式跳转;全部用 https 开头,避免中间出现 HTTP 跳转环节。
Nginx 用户的等效配置
Nginx 不支持 .htaccess,需在 server 块内配置:
- 针对单页映射:
rewrite ^/old-page\.html$ https://www.new.com/new-page permanent; - 针对路径迁移:
rewrite ^/category/(.*)$ https://www.new.com/topics/$1 permanent; - 务必检查
return 301和rewrite的优先级,避免被 location 块覆盖
配置后用 nginx -t 测试语法,再 nginx -s reload 生效,切勿直接重启服务。
上线前必须验证的三件事
rewrite 生效不等于迁移成功,还需人工+工具交叉核验:
- 用 curl 命令查状态码:
curl -I http://old.com/some-page—— 必须返回HTTP/2 301且Location:头指向正确新地址 - 用百度搜索资源平台的“抓取诊断”功能,提交几个旧 URL,看爬虫是否能一次跳转到位(非 302 或 301→301→301)
- 打开旧链接,确认浏览器地址栏最终显示的是新域名对应页面,且页面加载完整(无混合内容警告、图片不显示等问题)
只要 URL 映射精准、响应干净、内容连贯,百度通常在 30 天内完成主要词权重迁移,老域名流量损失可控制在 5% 以内。

















