所谓域名跳转重定向这个事儿, 它的本质意思是什么? 其实, 就是为了把那个旧域名或者是旧路径上面来的流量, 还有大家常说的权重这些东西, 统统地、无缝地迁移到新地址上去。那么, 现在主流的实现方案, 是分成了三层来说的。
第一层, 是服务器自己的原生配置, 典型的例子就是Nginx或者Apache这些软件做的设置。第二层, 是关于边缘网关的规则设置, 这个通常指的是CDN服务或者是云DNS平台里面的那些规则。最后这一层, 是使用专门的SaaS管理工具来进行操作的。
大家在进行选择的时候, 最核心的那个判断标准, 实际上就只有一条。这条标准主要看的是你的这个跳转行为, 它到底是一个临时的动作, 也就是代码里显示的302, 还是一个永久的动作, 也就是代码里标识的301。除此之外, 还得再考量一下你是否需要有同步去把搜索引擎那边的权重给迁移完成。
现在经常能看到的用来实现域名进行跳转以及重定向的软件和工具, 主要是可以分成下面这几种类型。
就是在服务器这一层面, 直接去编写那些rewrite规则或者是redirect规则, 这样做的话, 不会带来任何额外的授权成本, 这种办法是很适合那种拥有运维团队, 并且能够持续进行维护的企业级站点使用的。
Cloudflare/阿里云CDN, 这个做法是在DNS那边或者是边缘节点那一层去设置重定向, 你完全不用改动那个源站的配置内容, 这种情况特别适合那些用了好几个云服务或者网络分布在很多地方的架构设计。
专用SaaS域名管理平台: 比如gname.xin域名管理后台这个例子。, 它里面有图形化的跳转配置面板。非技术人员只用2分钟, 就能完成一条规则的录入, 并且让这条规则立刻生效。。
宝塔面板/WHMCS主要是面向那些在国内做站群运营的人, 还有主机商推出的一个工具, 它支持一次性批量管理数十个乃至上百个域名的跳转映射。
在选择域名跳转重定向软件的时候, 必须一项又一项去认真核对上面说到的那些硬性标准。
1. 状态码覆盖: 这个要求是必须支持的, 其中301、302、307、308这四种状态码都不能缺少, 缺一不可。
2. 权重继承的情况是, 当完成301跳转之后, 搜索引擎是否能够把PageRank以及反链所代表的价值完整地转移过去。
3. 关于规则粒度这个问题, 需要搞清楚它到底是不是支持正则匹配功能, 是不是支持通配符功能, 以及能不能进行条件判断和跳转操作, 而这个条件判断和跳转的具体依据, 是按用户代理标识来区分, 还是按地理位置来区分, 或者是按通信协议类型来区分。
4. 日志可追溯这个问题, 你要去看看点击命中记录能不能够被导出来, 因为这个事情呢, 是为了方便大家在事后的时候去进行审计, 尤其是针对那些异常的情况。
5. 在进行故障回退操作的时候, 如果原域名的状态已经恢复成功了, 那么系统能不能提供一个一键式的撤销功能呢, 这样就可以避免因为再次进行手工配置而有可能引入新的错误情况了。
我们就拿那个大家用得最多的、旧域名转新域名, 并且使用301进行永久跳转这个最典型的例子来说明, 然后, 其标准的部署路径是下面这样的:
要先去把新旧两个域名是属于同一个人的这个情况给确认清楚, 免得因为跨越了不同的主体来搞跳转这样的操作, 从而触发了搜索引擎那边对它的信用等级进行降低的这种状况。
需要在目标平台这里去把跳转规则给添加上, 然后在源地址那里填写旧域名的完整URL, 这里面要包含http或者https这样的协议头, 接着在目标地址那里填写新域名。
状态码选定301, 勾选"保留原路径与查询参数"。
④ 等生效之后, 去执行那个用粗体标记的 curl -I 旧域名, 通过这种方式来检查响应头信息, 接着确认返回的号码是301, 并且Location这字段指向的是新域名。
需要在百度搜索资源平台那个地方, 以及在 Google Search Console 这个地方, 去提交让新站点被收录的请求, 这样才能加速权重的迁移, 让权重能够最终落地。
如果您使用的是 gname.xin 提供的域名管理面板的话, 那么上面所说的这些全部步骤, 都是可以通过点击进入到“网站管理”并且找到“跳转设置”的这个位置, 通过勾选相关的选项以及进行填写来完成, 这样就不需要去登录服务器进行操作了。
高频疑难及对应处理方案:
跳转链路出现301→302→200: 排查中间是否叠加了CDN缓存或网关二次重写, 在CDN侧清除旧域名缓存记录后, 重新验证。
子域名跳转后权重未转移: 这种情况的意思是, 需要确认跳转的目标地址是否为主域, 并且要使用301状态码来实现跳转,而不是使用302状态码, 因为302状态码是不能够传递权重数据的。
在移动端和PC端的跳转方面, 存在不一致这个情况, 我们可以按照用户代理来设置条件规则, 或者在处理CDN侧的设备类型分流的时候进行相应的处理。
域名跳转重定向这件事它并不是那种“配置一次就可以了然后就可以扔到一边不管了”的一锤子买卖, 它实际上是一整项得从开始到结束都一直管着的过程。
所以我们建议大家每个月都把整个跳转的链路抽查一遍, 要确认里面没有互相冲突的规则, 没有那些已经过期或者没法用的内容, 也没有那些缓存里还没清理干净的东西, 以此来保证流量的转移和权重的迁移一直都在健康的这种状态之下运行着呢。


