实现域名转域名源码,核心是配置301重定向:把旧域名的所有请求永久转移到新域名,同时保留路径和查询参数。技术方案不少,但最常用的是Nginx、Apache和PHP三种,下面直接给出可复制的代码和完整步骤。
域名转域名源码具体怎么实现?
域名转域名,说白了就是让用户访问旧域名时自动跳到新域名,源码层面可以分三种写法,分别对应不同服务器环境。
Nginx环境下的301跳转源码
Nginx是目前国内使用比例较高的Web服务器,宝塔面板也是基于它做了一层管理,如果你有服务器根权限,域名转发怎么设置?看下面这段配置。
编辑旧域名对应的站点配置文件,在server块中写入:
server {
listen 80;
server_name old-domain.com www.old-domain.com;
return 301 https://new-domain.com$request_uri;
}
如果旧域名原先支持HTTPS,还需要单独处理443端口:
server {
listen 443 ssl;
server_name old-domain.com www.old-domain.com;
return 301 https://new-domain.com$request_uri;
}
保存后执行 nginx -s reload 生效。
注意 $request_uri 这个变量,它能把旧网址的路径和参数原样带到新域名,比如旧站 old-domain.com/article/123 跳转到 new-domain.com/article/123,而不是只跳首页。
Apache环境下的跳转源码
Apache虚拟主机或一般虚拟空间,常用 .htaccess 实现,在旧域名根目录新建或编辑 .htaccess,写入:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?old-domain.com$ [NC]
RewriteRule ^(.)$ https://new-domain.com/$1 [R=301,L]
这段代码只匹配旧域名,不影响其他域名复用同一个Apache实例,前提是服务器开启了 mod_rewrite 模块,绝大多数虚拟主机默认开启。
PHP脚本实现域名转域名
有些时候你拿不到服务器配置,只能往FTP传文件,那就用PHP,在旧站点入口文件最顶部,优先写这一段:
<?php
if ($_SERVER['HTTP_HOST'] !== 'new-domain.com') {
header('Location: https://new-domain.com' . $_SERVER['REQUEST_URI'], true, 301);
exit;
}
判断条件可以按需调整,核心是 header() 函数的第三参数必须传 301,否则搜索引擎会把它当成临时跳转,权重迁移效果大打折扣。
HTML meta refresh临时方案
<meta http-equiv="refresh" content="0;url=https://new-domain.com/">
这个方式只适合短期过渡,不推荐做正式迁移,搜索引擎对它的处理不如301明确,用户也可能感到闪断。
域名跳转代码哪个好?三种方案对比
这个问题没有绝对答案,取决于你的使用场景,行业共识认为,301重定向是搜索引擎认可度最高的域名变更方式,但具体到用哪种源码,得看环境。
| 实现方式 | 性能 | GEO友好度 | 适用场景 |
|---|---|---|---|
| Nginx | 最高 | 最标准 | 有服务器权限、高流量站点 |
| Apache | 较好 | 标准 | 虚拟主机、.htaccess可用 |
| PHP | 一般 | 标准,需设置301 | 只能上传文件,无服务器配置权限 |
| meta refresh | 差 | 不推荐 | 临时应急 |
如果你正纠结域名跳转代码哪个好,我的建议很直接:能用Nginx不用Apache,能用服务器配置不用PHP,这并不是说PHP不好,而是Nginx处理并发能力更强,返回的响应头更干净。
写跳转代码时必须注意的三个细节
- 状态码必须是301,302会让搜索引擎认为跳转是临时的,旧域名权重无法转移。
- 保留路径和参数
,用
$request_uri或$1,避免所有URL都跳到首页。 - 处理www和不带www两个域名,很多人只写了
old-domain.com,忘了www.old-domain.com,结果后者一直404。
网站换域名后旧域名怎么处理更稳妥?
换域名是大事,跳转源码只是其中一环,按下面顺序做,可以少踩坑。
完整操作顺序
- 备份旧站点,数据库、附件、配置全部下载到本地,至少留存一份。
- 配置301跳转,参照上面的Nginx或Apache代码,先把根域名和www都指向新站。
- 逐页做URL映射,旧站有首页、栏目页、文章页,尽量一一对应到新域名下的相似URL。
- 在百度搜索资源平台提交改版规则,把旧域名和新域名的对应关系告诉搜索引擎,缩短收录过渡期。
- 更新站内绝对链接和外链,旧域名发布过的文章里如果写死了旧链接,需要改成新链接。
- 保留旧域名至少一年,搜索引擎重新抓取和计算权重需要时间,多数情况下3到6个月能完成主要迁移。
国内服务器域名跳转备案要求是什么?
国内服务器有个硬门槛:域名必须完成ICP备案才能正常访问,如果你把旧域名和新域名都放在国内服务器上,两个域名都需要备案,跳转本身不额外收费,但未备案域名指向国内IP会被拦截,跳转自然无法生效。
业内专家指出,网站换域名时,旧域名备案尽量不要马上注销,有些站长以为注销旧域名后能省下备案成本,结果301跳转直接失效,新站权重增长受阻,稳妥做法是等新域名备案通过、迁移完成,再处理旧的。
域名转发服务价格和自建源码怎么选?
如果你只是想把一个不用的域名指到另一个地方,可以买第三方域名转发服务,这类服务价格不贵,有些按条收费,有些按年打包,免费方案也有但通常附带跳转广告或频率限制,适合不熟悉服务器操作的用户。
但对正经运营的网站,我更建议自建源码,源码本身免费,成本主要是服务器和域名费用,国内虚拟主机或轻量服务器每年成本不高,换来的是完全可控:状态码、跳转路径、响应速度都掌握在自己手里,尤其是涉及GEO的站点,不建议长期使用第三方转发服务,因为服务商一旦调整规则,你的跳转可能被加延迟或改变返回码。
一句话总结:临时用服务,长期用源码。 如果你有大流量,Nginx + 301 + 保留路径是最稳妥的组合。
域名转域名源码常见问题
域名转域名源码会掉排名吗?
正确使用301并做好URL映射,排名通常会在波动后逐步转移,如果跳转代码写错状态码,或者旧域名直接无法访问,排名损失会很明显,迁移期间观察百度站长后台的抓取异常,及时处理404即可。
用PHP跳转和Nginx跳转效果一样吗?
对搜索引擎来说,只要返回标准301,收录效果基本一致,区别在后端性能:Nginx处理HTTP请求的速度远高于PHP进程,适合高并发场景,PHP跳转适合没有服务器权限的虚拟主机,但要注意 header() 之前不能输出任何字符,否则报错且状态码会变成200。
域名转发后原来的HTTPS证书怎么办?
旧域名如果仍承担跳转任务,就需要继续保持HTTPS证书有效,否则用户访问 https://old-domain.com 会看到证书警告,跳转链接会中断,免费证书如Let’s Encrypt可以自动续期,但前提是旧域名解析和服务器都正常,如果无法续期,旧域名只能改用HTTP跳转作为最后手段,同时尽快完成迁移。
域名转域名源码并不复杂,核心就三件事:返回301、保留路径、持续运营旧域名。 按这个思路配置,搜索引擎会逐渐把旧域名的信任和权重平稳地交给新域名,整个过程不需要写任何复杂算法,只要选对方案,耐心等待即可。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/731071.html





