跳到主要内容
PulsarKit

301重定向检测

粘贴链接,就能看到它返回的是301、302、307还是308,经过的每一跳及其跳转目标和耗时,以及最终落到哪个地址。

如何检测301重定向

  1. 1

    粘贴链接

    要检测的旧地址,带不带https://都可以。短链接、跟踪链接和推广活动网址也都能检测。

  2. 2

    点击“检查链接”

    工具会对每一跳发送HEAD请求,逐跳跟随跳转链,不让浏览器自动跟随而隐藏中间过程。工具不会下载响应正文。

  3. 3

    逐跳查看跳转链

    永久重定向在“状态”列显示301或308,在“跳转目标”列显示它指向的地址。最后一行是跳转链的终点,200表示页面能正常打开。整条跳转链可以下载为CSV。

301重定向检测显示什么

粘贴一个旧地址,301重定向检测会从我们的服务器请求它,每遇到一次重定向就停下来记录,而不是悄悄跟过去。结果里每一行是一跳:请求网址、返回的状态码、Location指向的地址、响应耗时,以及“备注”列里的提示,比如域名变了、从https降到http,或者发送了Location响应头却没有重定向状态码。表格下方的“最终地址”是跳转链的终点。迁移配置正确时,会先出现一行301,下一行是200。301最后落到404,说明指向的页面不存在;本想永久迁移却用了302,值得改掉;连续两行或更多重定向,就是一条该缩短的跳转链。

301、302、307和308:各代表什么

301表示页面已经永久迁移,Google会把它当作信号,索引新地址而不是旧地址。302表示迁移是临时的,所以Google不会把跳转目标当作新地址:短期活动或A/B测试用它没错,网站迁移用它就错了,302可能让旧网址继续留在搜索结果里。307是承诺沿用同一请求方法的临时重定向,308对永久迁移做出同样的承诺。提交表单时这两种都很重要,因为较早的重定向方式可能把POST变成GET,数据就丢了。303总是用GET发送后续请求,这正是它的用途。

跳转链太长有什么代价

每一跳都是一次完整的往返:域名变了要做一次DNS查询,协议变了要做一次TLS握手,中间还有网络延迟,这些都发生在真正页面的第一个字节到达之前。在移动网络上,几跳加起来就是一段明显的等待。爬虫也有上限:Google的爬虫最多跟随10次重定向跳转,这也是这个检测工具的跳转上限。跳转链还会失效:中间去掉一跳,后面的所有地址都访问不到了。如果发现三跳或更长的跳转链,让第一个链接直接指向最后一个。

链接只用来检测,不会保留

你粘贴的地址放在请求体里发送,而不是放在会写进访问日志的网址里。它只用来发出请求,然后就丢弃:不写日志,不进数据库,也不产生统计事件。每一跳的响应正文不读取就丢弃,所以跳转链上各网站的任何内容都不会到达我们这里。检测次数按访问者统计,用的是每天更换盐值的哈希,无法从中还原出任何地址。

常见问题

怎么检测一个网址有没有301重定向?

粘贴旧网址,点击“检查链接”。第一行显示这个地址返回的状态码:301或308是永久重定向,302、303或307是临时重定向,200表示根本没有跳转。“跳转目标”列显示它指向哪里,最后一行显示跳转链在哪里结束,以及那个页面是否返回200。

该用301还是302重定向?

永久迁移用301:换了新域名、页面改了名、从http换到https。Google会把它当作信号,索引新地址而不是旧地址。只有旧地址还会恢复时才用302,比如短期促销或测试,因为Google不会把302的跳转目标当作要索引的新地址。308是同时保留请求方法的永久重定向,对表单很重要。

检测工具会显示响应头吗?

它显示重定向依赖的那个响应头:Location,也就是每一跳指向的地址。另外还读取两个响应头,用于“备注”列:Strict-Transport-Security,显示为“发送HSTS”;Refresh,页面返回200时,检测工具会把它当作重定向继续跟随。缓存、Cookie等其他响应头不会列出,响应正文也从不读取。

能检测Googlebot或手机访问时的重定向吗?

能。在“模拟访问端”里选“Googlebot”或“手机浏览器”,而不是“电脑浏览器”,每一跳都会用这个用户代理(User-Agent)请求,所以如果网站把手机访问转到移动版地址,跳转链里就能看到。不过请求仍然来自我们的服务器,而不是Google,所以按IP地址验证爬虫的网站,可能把它当作普通访客。

什么是meta刷新?为什么要单独检测?

它是写在页面里的重定向,而不是写在HTTP响应里的。这个检测工具会跟随Refresh响应头形式的跳转。它不读取页面代码去找标签形式的跳转,因为按请求下载任意页面,正是公开接口不能做的事。跳转链末尾的200会带上一条备注,说明没有读取页面代码。

重定向循环在这里是什么样子?

地址一重复,跳转链就停止,报告会写出互相指向的两个步骤编号,例如第3步和第5步,这样你能看出是哪两条规则在打架。

检测工具有哪些限制?

最多10跳,上限还可以调低;每一跳最长5秒,整条跳转链最长20秒;只支持端口80和443上的http和https链接,长度不超过2,048个字符;每位访问者每小时最多检测60次。跳转链超过上限时,已经收集到的跳转照样显示。每一跳都会拒绝localhost、内网地址段和内部主机名,因为请求是由我们的服务器发出的,一台会抓取任何地址的服务器,可能被引去访问它所在的网络。

相关工具