不少刚接触建站的朋友都会遇到这样一个需求:手里有一个域名,希望访问它的时候自动跳转到另一个网址上,比如把老域名引导到新域名,或者把不带www的域名统一跳到带www的版本。这个需求看起来简单,但实际操作时往往会踩坑,有人配了半天记录跳转不生效,有人跳转配成了死循环,还有人跳转之后浏览器提示证书错误。这篇文章就把域名跳转的完整思路梳理清楚,从原理到实操再到常见问题,一步步带你做完整个配置。

先搞懂原理:域名解析和跳转是两回事
很多人把域名解析和域名跳转混为一谈,其实它们是完全不同的两个层面。域名解析解决的是“这个域名指向哪台服务器”的问题,也就是把域名翻译成IP地址或者另一个域名;而跳转解决的是“访问之后去哪里”的问题,是在解析的基础上,由服务器或者专门的转发服务返回一个重定向指令,告诉浏览器去访问新的地址。
理解了这个关系,就明白域名跳转通常需要两步配合:第一步是设置解析记录,让域名有明确的指向;第二步是配置重定向规则,让请求真正发生跳转。常见的解析记录类型有几种,A记录是把域名直接指向一个IP地址,CNAME记录是把域名指向另一个域名,而URL转发(有些服务商叫显性转发、隐性转发)则是服务商直接帮你做跳转的功能,配置最简单,但可控性较差。
跳转本身也分类型,最常见的是301和302。301代表永久重定向,搜索引擎会把老域名的权重传递到新域名;302代表临时重定向,权重不转移。如果你是换域名或者统一域名格式,建议用301;如果只是临时维护或者活动页面临时引导,用302更合适。
方法一:在域名服务商后台做URL转发
这是最适合新手的方式,全程图形化操作,不需要碰服务器。以常见的域名服务商为例,登录控制台后找到域名管理,点击对应域名的“解析设置”或“DNS管理”,添加记录时选择“显性URL”或“URL转发”类型。
具体操作步骤是:在主机记录处填写www或者@(@代表域名本身),记录类型选择显性URL转发,记录值填写要跳转到的完整网址,比如带https协议头的目标地址,确认保存后等待解析生效。显性转发是指跳转后浏览器地址栏会变成目标网址,隐性转发则是地址栏保持原域名、页面内容却是目标站的内容(通过iframe框架实现),一般推荐用显性转发,隐性转发对SEO很不友好。
需要注意的是,国内部分服务商的URL转发功能要求域名完成实名认证并且已备案,未备案的域名可能无法使用转发服务,或者只支持跳转到已备案的站点。如果碰到这种情况,可以考虑换用Cloudflare等海外DNS服务来配置转发规则,或者直接用下面介绍的服务器重定向方案。
方法二:通过服务器配置301重定向
如果目标地址本身就是你的服务器,最规范的做法是自己在服务器上配置301重定向。这种方式完全可控,跳转速度快,也是SEO最友好的方案。以Nginx为例,配置写法非常简洁:
server {
listen 80;
server_name old-domain.com;
return 301 https://www.new-domain.com$request_uri;
}
# 把不带www的域名统一跳转到带www的版本
server {
listen 80;
server_name new-domain.com;
return 301 https://www.new-domain.com$request_uri;
}上面配置里的$request_uri表示把原始访问路径和参数一并带到新地址,这点很重要。如果去掉它,用户访问old-domain.com/article/123时只会被跳到首页,路径全部丢失,用户体验和SEO都会受损。配置完成后执行nginx -t检查语法,再用nginx -s reload重载配置即可生效。
如果用的是Apache服务器或者虚拟主机,可以通过网站根目录下的.htaccess文件实现,写法如下:
RewriteEngine On
# 整站跳转到新域名,保留路径
RewriteCond %{HTTP_HOST} ^old-domain\.com [NC]
RewriteRule ^(.*)$ https://www.new-domain.com/$1 [L,R=301]这两种写法效果一致,选哪种取决于你使用的服务器环境。需要注意.htaccess文件修改后立即生效,不需要重启服务,但如果规则写错可能导致整站500错误,修改前最好备份原文件。
常见问题排查与注意事项
配置完成后如果跳转不生效,第一件事是检查解析是否已经生效。域名解析存在缓存,新添加的记录可能要几分钟到几小时才能全球生效,可以在本地用nslookup或者在线DNS查询工具确认记录是否已经解析出来。如果解析已经生效但跳转没发生,就要检查服务器上的重定向规则有没有拼写错误、Web服务有没有重载配置。
跳转循环也是一个高频问题,典型表现是浏览器提示“重定向次数过多”。原因通常是两个规则互相指向对方,比如A域名跳到B域名,B域名又配置了跳回A域名的规则,或者是HTTP和HTTPS之间来回跳。排查时用浏览器的开发者工具查看Network面板中的重定向链条,就能看到究竟在哪一步形成了环,找到后删掉多余的那条规则即可。
HTTPS场景下的证书问题同样不能忽视。如果跳转后的目标地址是https协议,目标域名必须部署了有效的SSL证书,否则浏览器会直接报证书错误。另外一个细节是,建议把80端口的HTTP请求先统一301到HTTPS,再处理域名层面的跳转,避免出现混合内容或者多次跳转拖慢加载速度。
最后提醒一点关于SEO的事项:如果做的是永久性换域名,一定要用301而不是302,并且老域名尽量保持解析和跳转服务一段时间(建议半年以上),让搜索引擎有足够时间把权重和索引迁移到新域名。跳转配好后可以用curl命令验证返回的状态码,执行curl -I 老域名地址,看到HTTP/1.1 301 Moved Permanently和Location头里是正确的新地址,就说明整个跳转链路配置成功了。