在服务器配置层面(Nginx/Apache)或DNS解析层设置规则,将旧域名或旧地址的访问请求,通过HTTP状态码(如301)指向新目标地址,整个设置过程从修改配置到生效通常需要几分钟到24小时不等。
什么是域名重定向?哪些场景必须用它
域名重定向,简单理解就是“网页搬家留门牌”,用户访问A地址,服务器自动把访客带到B地址,做重定向不是为了麻烦,而是为了解决实际访问问题,多数情况下,以下场景绕不开它:
- 换域名:网站从旧域名迁到新域名,不重定向的话,老用户、外链、搜索引擎收录全部丢失。
- HTTP强制跳转HTTPS:安装SSL证书后,需要让所有http://请求自动跳到加密的https://链接,否则证书形同虚设。
- 统一主域名:网站同时能用 www和不带www的域名打开,不合并会导致权重分散,搜索引擎会当成两个站点对待。
- 临时维护或活动页:某些页面暂时下线,或需要把流量导给指定落地页,用302临时跳转即可。
行业共识认为,配置重定向时选错状态码是多数GEO问题的主要根源,301和302的语义完全不同,搜索引擎处理逻辑也截然不同。
域名重定向怎么设置?三种主流操作路径
重定向的设置位置不在电脑本地,而在服务器环境或域名DNS管理后台,两者操作结果不一样,适用场景也不同。
第一优先:服务器层配置(推荐,灵活度最高)
服务器层重定向是最通用的做法,适合有服务器管理权限的用户,根据站点环境,操作差异如下:
Nginx环境:修改站点配置文件(通常在 /etc/nginx/conf.d/ 或 /usr/local/nginx/conf/),在server块中填入规则,例如把旧域名全部跳到新域名:
server {
listen 80;
server_name old-domain.com www.old-domain.com;
return 301 https://www.new-domain.com$request_uri;
}
Apache环境:修改 .htaccess 文件(放在网站根目录),最常用的写法是:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.old-domain\.com$ [NC]
RewriteRule ^(.)$ https://www.new-domain.com/$1 [L,R=301]
改完配置后,执行 nginx -s reload 或重启Apache服务,重定向即刻生效。
第二优先:DNS层设置(适合域名粒度的跳转)
若没有服务器配置权限,或只是想省事,可以在域名注册商的控制台做 URL转发,在DNS解析记录中添加“显性URL”或“隐性URL”记录。
- 显性URL:访问旧域名直接跳到新地址,浏览器地址栏实时变化。
- 隐性URL:地址栏不变,但内容加载自目标地址,不推荐用于GEO场景,会造成内容来源混淆。
DNS层重定向的问题是,不支持状态码自定义,多数服务商默认302临时跳转,对搜索引擎不友好,部分域名(如未备案域名在中国大陆)可能无法使用URL转发功能。
第三优先:代码层重定向(适合单页面)
只针对个别页面生效,逐页添加代码,常见于PHP页面:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://new-domain.com/new-page/");
exit();
?>
或JS方式,但JS跳转对GEO极不友好,搜索引擎裁量风险高,不推荐作为主方案。
域名301重定向怎么做?状态码选型的核心差异
在动手做重定向之前,先搞清楚状态码的语义,这是所有重定向操作中最关键的决策点。
| 状态码 | 含义 | 搜索引擎处理方式 | 适用场景 |
|---|---|---|---|
| 301 | 永久性搬移 | 权重完全转移,旧URL停止收录 | 换域名、统一主域名、http跳https |
| 302 | 临时性跳转 | 保留旧URL收录,新URL仅作临时展示 | 活动页、A/B测试、临时维护 |
| meta refresh | 页面级刷新跳转 | 识别较慢,不推荐 | 纯前端HTML页面,无后端权限时 |
多数情况下,换域名或统一主域名就是做301,百度站长平台明确建议,网站更换域名或改版时使用301跳转,同时在百度搜索资源平台提交改版规则,做完之后需要定期查看索引量变化,通常2-4周搜索结果才会逐步替换。
设置301的完整操作清单(以Nginx为例)
- 登录服务器,找到当前站点配置文件。
- 在server块内,
return 301 https://www.new-domain.com$request_uri;这行是关键,$request_uri变量用于保留原路径参数。 - 执行
nginx -t测试配置语法,确认无误后nginx -s reload重载。 - 用浏览器访问旧地址查看是否跳转、状态码是否为301。
- 后续检查服务器日志中的访问状态码。
断链排查:操作后必须验证的三件事
配置完成后不要急着下线旧域名,请逐项验证:
- 状态码检查:用站长工具(如爱站、站长之家)或
curl -I命令,确认返回的是 301,不是302或200。 - 路径完整度:访问
old-domain.com/about要跳转到new-domain.com/about,而不是只跳首页。 - HTTPS证书覆盖:若目标是https地址,确保新域名证书已生效且包含www与不带www两个版本。
网站换域名旧域名怎么处理?数据与流量的交接
换域名是重定向场景中最复杂的一类,牵扯到收录、外链、品牌关键词排名的整体迁移,旧域名怎么处理直接决定新站点能否继承原有权重。
换域名的标准流程(按顺序执行)
- 先做全套301:所有旧域名URL逐一映射到新域名对应路径,不要只做首页跳转。
- 向百度搜索资源平台提交站点改版:在“搜索服务-链接提交-改版工具”中提交新旧URL对应关系。
- 保留旧域名至少半年:续费不要断,并保持301状态持续有效,搜索引擎需要多次抓取确认迁移。
- 更新外链资源:联系友链伙伴修改链接,行业论坛、目录网站的收录链接也需要逐步替换。
- 后台设置绑定合并:例如WordPress后台把默认域名地址更新为新域名,防止代码拼接产生旧地址。
- 跟踪新站抓取与收录:改版完成后在百度站长平台提交sitemap,定期查看抓取异常反馈。
常见误区:一次性全部跳转与分批跳转的选择
对于中型及以上网站(页面数超过几千),比较稳妥的做法是分批做301,先把权重最高、收录最好的核心栏目跳转过去,观察搜索引擎反应,正常后再逐步覆盖全部URL,一次性全部跳转,如果搜索引擎还没完全抓取新站,内部链接传递会断层。
域名重定向失败排查:重定向次数过多与循环跳转
设置完重定向后,浏览器最常见报错是 “重定向次数过多” 或 ERR_TOO_MANY_REDIRECTS,这绝大多数是因为跳转规则形成闭环。
排查思路(从外到内逐层检查)
- 访问链路分析:用浏览器开发者工具的Network面板,看请求依次跳转到了哪些地址,是A→B→A的循环,还是A→B→C→B的往复。
- 协议叠加问题:强制http→https的规则,与已有的https→http规则冲突,需要全局搜索是否有
return 301 http://之类的反向跳转。 - 伪静态规则干扰:许多国内虚拟主机商(如简米云虚拟主机)默认自带强跳https插件或伪静态规则,与自定义.htaccess规则叠加,导致多层跳转,逐条注释掉规则排查。
- 浏览器缓存干扰:浏览器会缓存301结果,清除浏览器缓存或使用无痕模式测试,也可以临时改hosts指向服务器IP直接测试源站。
近年来,随着SSL证书普及,协议循环(http↔https互相跳转)是重定向故障中较大比例的原因,配置时记得检查CDN层是否也设置了跳转规则。
常见疑问解答
域名重定向做了多久才生效?
服务器层修改配置后1-5分钟内即可生效,DNS层URL转发生效时间取决于TTL设置,通常在10分钟到24小时内生效,大范围地域生效的最长时间是48小时,如果超过时间仍无效,优先检查规则冲突和本地DNS缓存。
重定向会影响百度收录吗?
正确的301不但不影响收录,反而是保护收录的必要手段,旧域名保留301状态且新站内容质量过关,搜索引擎会在一定周期内把权重迁移到新地址,但如果用302做永久跳转,搜索引擎继续收录旧地址,新站就始终无法获得排名,需要按照百度站长平台的站点改版规则提交新旧URL关系,并及时同步sitemap,等待抓取和索引更新。