一、域名跳转重定向软件的核心定义
域名跳转重定向软件是一种配置工具, 它用来把旧地址、子域名或者特定的路径自动指向到新的地方。这种软件的核心机制, 是依托HTTP状态码中的跳转代码, 比如说301、302、307和308这几项。
它的主要作用是在保证用户访问不中断的情况下, 实现网址的一种平滑过渡。与此同时, 它还要确保搜索引擎的权重能够完整地转移过去。
二、四种跳转类型及适用场景
所谓的301永久重定向这个操作, 其应用场景主要是域名整体进行更换, 以及从http协议升级到https协议这种情形下, 能够将原有地址的全部权重, 也就是百分之百的权重, 完整且毫无保留地转移并继承至全新的地址上面去。
302临时重定向: 在比如营销活动页临时导流、A/B测试之类的短期需求中, 权重不转移。
307状态码是临时性的, 并且保留原有的请求方法。它的作用效果和302相同, 但是POST请求不会被转换成GET请求。
当状态码是308的时候, 它的做法跟301很像, 但是它会保留原始的请求方法。
三、关于选型这个问题, 其主要的核心判断依据是什么。
1. 实现的方法是在服务器层面上, 去修改比如Nginx、Apache或者IIS这些软件里面的改写规则。又或者把事情放到DNS解析的层面上去做, 也就是直接在域名的管理后台那里域名跳转重定向软件,添加上转发记录。
就举个例子说, gname.xin这个域的域名管理后台, 它是支持增加URL转发记录的, 这样的话, 我们就不需要改动服务器的代码域名跳转重定向软件,也照样可以实现跳转效果。这种做法呢, 是比较适合那些中小型的网站去快速上线的。
2. 这个规则到底存不存在复杂的情况, 还要看它是不是能够支持那种通配符的匹配方式, 是不是能进行条件的判断, 以及是不是能够做到多路径之间的映射操作。
3. 关于批量处理这块的能力, 是不是意味着那些多个子域名还有多条路径的情况, 能够一口气把它们全都配置好啊。
4. 在可观测性这一方面, 用户是需要来确认一下系统是否提供了有关日志的跳转功能, 还要看看有没有提供命中数量的统计工具, 以及是否存在用于异常情况的告警机制。
四、DNS层跳转通用操作步骤
1. 你要登录域名管理后台, 然后进入目标域名的DNS解析设置页。
2. 添加一个URL转发记录, 然后在那个源地址那里填上原来的域名或者是子域名, 再去那个目标地址的地方填上新出来的URL的网址, 最后还要选择一下是用301这个状态码还是用302这个状态码。
3. 把更改存下来之后, 你要等一段时间让那个DNS系统生效。这个时间一般是在5分钟到30分钟之间, 但是最长的话可能需要等48小时那么长。
4. 你要使用浏览器的这个名为无痕的模式来对原始的那个域名进行访问的操作, 并且确认状态码以及目标地址都是正确的。
5. 大家可以使用那个叫做curl -I 原域名的命令来做验证, 看它返回的关于Location的头信息, 是不是指向了那个大家都预期的地址。
五、高频疑难及处理方案
发现跳转循环的情况, 目标地址又跳转回到了原来的域名这里, 需要立即断开整个跳转链条, 只保留单向规则的这部分内容。
权重没有被成功转移, 原因是错误地使用了302状态码来代替301状态码。需要用户在Google Search Console工具里提交新的_URL_映射关系。
存在不同设备跳转表现不一致的问题, 应当检查CDN或者多节点服务器是否分别配置了不同的规则, 把这些统一起来以后清除边缘缓存。
六、上线注意事项
针对301规则, 在一旦生效的情况之下, 建议予以长期保留, 频繁的进行变更, 会造成权重的分散。
大批量的跳转要分成批次去上线, 每一批都要观察, 等到二十四小时没有异常情况之后, 再继续执行下一步。
当所有的规则都上线之后, 使用 curl -I 这个命令去进行批量的执行,以此来验证每一处跳转的状态码, 还要去验证 Location 这个头部信息, 在确认没有什么错误了之后, 再发出消息去通知那些用户。

