这个测试的核心目标, 就是把那个重定向的链路给弄清楚, 看看是不是完整的, 再看看状态码对不对, 还要确认一下跳转到了那个页面以后, 能不能正常地打开。

一般大家都喜欢用什么命令行工具, 比如那个curl, 或者是浏览器的开发者工具中的Network面板, 还有一个是在线的检测平台。这三种方法合在一起用, 基本上所有的关于跳转的检查问题都能够应付得到。

一、测试前的基础准备

进行测试跳转之前, 需要先确定以下这些内容:

来源所在的域名, 还有所使用的网络协议类型, 具体就是http或者是https这两个选项之中的一个。

目标域名及协议

预期状态码, 也就是301、302、307以及308。

跳转是单级还是多级链路

如果遇到跳转的步骤超过了两个等级, 那就要一步一步去拆解开来测试。这样做就是防止在查找到问题根源的时候, 发现情况太模糊, 理不清楚头绪。

二、三种主流测试方法

1. 命令行工具(curl)

适用于服务器端进行快速的验证工作, 同时也提供支持进行批量的测试活动。

curl -I -L http://old-domain.com

使用-I这个参数的时候, 只会去把返回的头部信息给提取出来, 而不会把那一部分正体的内容给下载下来。

-L代表的意思是, 它会一直跟随着重定向操作进行, 直到找到那个最终的目标位置为止。

关注返回的 HTTP/1.1 301 或 302 及 Location 字段

如果你在测试环境里面, 是想要去测试那种跳转到https的情况的, 你就必须把协议那里给改成由https://开头的那个样子。同时的话, 还要加上那个叫作-k的一个参数, 它的主要功能是跳过对于证书本身的校验工作。

2. 浏览器开发者工具

打开开发者工具里面的网络查看部分, 然后选择那个名为保存日志的选项按钮来进行点击操作一下之后再尝试访问原来那个网站的地址。

域名跳转测试工具怎么用?301重定向检测与排查实操指南(图1)

请留意请求链里面的每一个环节, 并且看清楚每个环节上面所呈现的状态代码是多少。

请去确认那个最终要被用来落地的页面, 看看它能不能返回200。

我们要去检查是不是存在那种循环跳转的情况, 说白了就是同一个链接会在系统里反复地出现, 一遍接着一遍。

3. 在线检测平台

在一些情况下面, 大家可能没有服务器权限, 又或者是需要快速出报告的话, 那么就可以使用在线工具来处理。比如说可以访问由 gz88.cn 所提供的域名跳转检测功能, 这时候只要输入源域名之后,就马上可以得到完整的跳转链路情况。

同时也会获取到各级状态码是什么样的, 另外还有响应时间这些结果数据也都是可以直接看到的。而且这个平台还支持批量域名的方式, 大家可以一次性提交多个域名进行检测。

三、标准测试步骤

1. 单点验证这一步, 你可以使用curl这个命令, 去对那个原始的域名发起一个请求的动作, 然后你需要确认一下返回来的状态码是不是符合你预期的那种结果, 还要看看那个正确的是不是也出现在返回的信息里面了。

2. 全链路追踪需要加上那个代表参数的 -L, 或者是需要在浏览器那里勾选保持日志的功能, 然后大家来确认一下这个级级的跳转到底有没有出现断链的情况, 还要看看循环的问题是否存在。

3. 协议一致性: 分别去测试一下那个http的入口, 还有https的入口, 要确认清楚从http跳转到https这个动作是正常的, 这样做是为了避免出现混合内容所导致的告警问题。

4. 目标页可访问性这一步, 你要先去确认最终的落地页会返回200, 同时没有404错误, 也没有5xx错误。

5. 缓存与Cookie影响: 在进行复测的时候, 需要清除浏览器内的缓存内容。这样做是为了排除因为本地缓存造成的误判情况。

四、常见问题排查

现象 可能原因 处理方式
跳转后404 目标路径未配置 检查目标域名路由规则
出现循环跳转 两个域名互相重定向 修改DNS或服务器Rewrite规则域名跳转测试工具域名跳转测试工具,打断环路
状态码为302而非301 服务端配置为临时跳转 在Nginx/Apache中改为301(return 301)
HTTPS跳转后证书报错 证书未覆盖新域名 更新SSL证书龙南市就业服务平台,确认SAN包含目标域名

五、注意事项

301这个代码代表的是永久跳转, 搜索引擎是会把权重传递过去的。而302这个代码代表的是临时跳转, 它是不传递权重的。所以在上线之前, 务必要确认使用的是正确的状态码。

当跳转规则被修改完毕之后, 需要先耐心等待CDN缓存进行刷新工作, 这段等待时间通常是5到15分钟的时间长度, 然后再来进行测试操作, 以此来避免读取到已经失效的或者不更新的旧有规则内容。

关于批量进行域名跳转这一操作, 我们建议大家使用脚本来执行, 或者直接使用在线工具来统一处理。如果选择人工逐条进行测试的话, 不仅效率非常低, 而且还非常容易产生遗漏。

在做完了上面所说的这些步骤之后, 大家要去看一下每一个节点的状态码对不对, 有没有出现循环的情况, 还有目标页是不是能够正常地返回结果, 如果所有这些条件都满足了, 那么这个域名的跳转配置就已经确认为没有错误了, 这样就可以正式地进行投入使用了。