域名跳转重定向软件的核心作用, 是能把从旧域名那边来的流量, 毫不费力地转移给新域名, 这样就可以避免用户访问失败的问题, 同时还能防止SEO权重发生流失。当前这一领域的主流方案被分成了三类。第一类是通过服务器端的Nginx或者Apache来进行规则配置。

第二类是在CDN平台以及DNS解析平台里边进行重定向设置, 例如在gname.xin域名管理后台里面进行操作。第三类则是Web应用层的框架级跳转中间件。这三者在不同的使用场景之下是适用的, 所以选择合适的工具是可以让迁移成本降低非常多的。

跳转状态码与适用场景

状态码 性质 典型用途
301 永久重定向 域名更换、HTTPS强制跳转域名跳转重定向软件大城群众说事,权重完整传递
302 临时重定向 A/B测试、临时维护页切换
307 临时(保留方法) API接口临时转发
308 永久(保留方法) 301升级版域名跳转重定向软件,保留请求体

选择原则是, 当情况涉及到搜索引擎收录与权重迁移的时候, 必须使用301或308来进行设置。如果仅仅是做短期过渡的话, 应该使用302或307。。

主流域名跳转重定向工具对比

1. 使用在服务器级别运行的Nginx(服务器级)时, 只需要写入一行 return 301 https://newdomain.com$request_uri; 这样的指令。

通过这样做, 可以完成整个网站的301跳转动作。这种方式带来的性能表现是最好的情况。它适合那些拥有独立服务器的网站站点来使用这个方案。

2. 在使用 Apache 服务器的时候, 我们可以通过编写 .htaccess 这个配置文件来实现重定向功能。我们往里面写入 Redirect 301 / https://newdomain.com/ 这么一行代码就行。

这样做最大的好处就是不需要去重启服务。对于使用WordPress之类的 PHP 网站来说, 这种做法是经常会被用到的。

3. DNS/CDN平台重定向: 用户可以在gname.xin的域名管理后台里面, 直接在解析设置那里添加一个名叫“重定向记录”的东西。这样做的时候, 完全不需要去触碰服务器本身。这种办法很适合那些只用纯静态网站的人, 或者是使用SaaS托管服务的用户。在配置完成之后, 全球各地的节点都会立刻生效。

4. 对于需要按照路径条件进行精细判断的这个场景而言, 框架中间件也就是应用层的部分是有用的, 比如说Django里面提供的RedirectView这个功能, 还有Express里面的res.redirect这个方法, 以及Spring中使用@Controller注解所进行的跳转操作, 这些都是适合的选择。

三步完成域名跳转配置(以gname.xin DNS重定向为例)

第一步是登录到gname.xin控制台, 接着进入目标域名的DNS解析管理页。

域名跳转重定向软件推荐:301/302配置与选型全指南(图1)

第二步是添加一条记录这个动作, 你要选择重定向这一种类型, 然后在目标那里填写新域名的完整网址, 比方说 https://www.newsite.com 这样的形式就行。

第三步: 建议将旧域名的A记录或者是CNAME记录保留在服务器上好长达24个小时, 这么做是为了方便你观察整个过渡期间的情况怎么样。等你把更改提交上去了以后, 这个变化需要花大概5分钟到30分钟的时间, 才能在整个全球的网络里都变得有效并生效。

要是你要是用那个Nginx这个方案的话, 你就得在那一个叫做server的块里面去添加一些东西。

server {
    listen 80;
    server_name olddomain.com;
    return 301 https://newdomain.com$request_uri;
}

将修改内容nginx -s reload进行保存, 然后执行该代码, 即可确保配置变更正式生效。

高频疑难与排查

重定向循环(ERR_TOO_MANY_REDIRECTS):检查新旧域名是否同时配置了301指向对方,或HTTPS/HTTP端口规则冲突,逐一排查Location头是否形成闭环。

搜索引擎未更新新域名收录在301生效后, 需要在Google Search Console或者百度站长平台提交“域名更换”这样的申请, 并且要手动去处理核心页面让它被收录, 通常情况下, 权重的迁移需要花费2至4周的时间才能完成。

子目录跳转不完整: 当对全站点进行301重定向, 并且仅仅匹配根路径的时候, 子目录/product/123.html就可能会丢失。在Nginx里面, 一定要使用$request_uri;还需要确认DNS重定向记录是否支持对路径进行透传。

移动端与桌面端跳转不一致:确认CDN边缘节点缓存是否刷新,gname.xin后台可手动执行"清除缓存"操作。

选型建议

如果有服务器权限, 那么优先使用Nginx或者Apache。如果是没有服务器并且是纯托管的场景, 那么优先使用gname.xin的DNS重定向或者是CDN服务商。

如果需要根据用户的行为条件进行跳转, 则使用应用框架中间件。对于多数中小站点来说, 推荐在DNS层进行重定向, 这样可以实现零运维成本, 而且配置之后就立即生效。