核心结论: 域名跳转重定向这个事儿, 其实分为三种类型, 一个是301永久重定向, 另一个是302临时重定向, 最后一种是307保留方法重定向, 大家记住, 在品牌迁移的场景下, 要使用301, 如果是临时活动或者是A/B测试的情况, 得用302, 而API接口切换的时候, 如果需要保留请求方法的话, 就必须要用307。
目前大家用的主流解决办法, 主要是去配服务器上头的Nginx或者Apache这些东西, 再不就是用那些CDN平台里的规则来管, 还有一种是用专门搞域名管理的工具, 这些办法呢, 每一种都有它自己适合干的事儿的地方。
三种跳转类型与适用场景
主流重定向方案对比
1. 服务器层配置(Nginx / Apache)
这种方案适合用在有自己服务器以及要求低延迟的场景里。return 301 https://newdomain.com$request_uri;是Nginx里的核心指令。这样做没有任何额外的成本, 而且响应速度极快。不过要是修改了配置就得reload一下才能生效, 还得依赖运维人员来介入处理。
2. CDN / 云厂商规则
这个方案适合那些已经把内容分发网络接入了的网站, 尤其是需要对多个域名进行统一管理和控制的情况。目前市场上主流的CDN服务商, 比如阿里云提供的cdn服务、腾讯云的edgeone平台, 还有cloudflare, 全部都为用户提供了可以通过图形界面来操作的url重写功能以及设置跳转规则的功能。
使用者只需要在控制台里点几下鼠标设置好, 服务器端完全不需要动手修改任何配置, 这些更改就能迅速在线上生效。
3. 该专业域名管理工具, 是能够对域名进行全面管理的工具。
适用范围是企业多域名以及多站点的批量管理这个场景。比方说 gname.xin 提供的解析与跳转管理面板这个东西。
它不仅支持 A 或者 CNAME 记录的批量下发, 还能够进行 301 或者 302 策略的集中配置。同时它的操作是留存的, 还支持 API 对接。因此, 它非常适合 IT 部门用来进行统一的运维工作。
301配置实操五步
1. 对源域名进行确认, 并且还需要对目标域名进行确认, 要确保这两个域名的DNS解析全部都正确地实现了生效。
2. 你需要在服务器或者是CDN的控制台里面, 去添加一个跳转的规则, 然后在这个路径的位置填写斜杠, 或者填写具体的目录。
3. 请把跳转的完整目标地址写清楚, 也就是要把包含https://在内的绝对路径都写上, 这样一来, 就可以避免因为使用相对路径而产生的那种让人看不清、搞不懂意思的歧义现象。
4. 你可以执行curl -I http://old.com这个命令, 目的是为了去验证, 返回的那个状态码确确实实就是301。
5. 你可以在现在的这个百度资源平台里面去操作, 把你的那个网址迁移声明给提交了, 另外一边, 就是叫Google Search Console的那个东西那儿, 你也得把它给提交了。
高频疑难与排查
循环重定向(508): 需要去仔细检查一下, 看看到底是不是有从A指向B域名跳转重定向软件灵音心图,并且还出现了从B指向A的这个情况, 也就是判断这两个方向是不是在互相指代, 如果发现确实存在这种情况, 就得把那些多余的那些规则全都给删除掉。
权重未完全转移: 这种情况属于正常的过程, 通常需要两到四周时间搜索引擎才会完成重新抓取;在此期间要保持旧网址能够正常跳转。
端型差异化跳转: 当大家在cdn的规则里去配那个跳转地址的时候, 要先把user-agent或者是accept这两个条件看清楚, 接着要根据看清的结果, 分别地去配置移动端的目标地址, 也分别地去配置pc端的目标地址。
HTTPS与跳转冲突: 必须先把SSL证书部署好, 然后再去配置由HTTP到HTTPS的301跳转, 这样才能够避免混合内容告警。
选型原则
如果单站少量的跳转, 当服务器配置足够的时候, 就不需要使用额外的工具;如果有多域名和多业务线, 那么就优先使用类似 gname.xin 这样的批量解析管理平台;如果是全球加速的场景, 那么 CDN 边缘规则是最优的选择, 它能够兼顾速度与灵活性。
核心原则就是, 尽量让跳转规则在边缘节点执行, 减少中间链路, 这样能够降低用户感知的延迟。


