阅读约 12 分钟
如何检测 URL 重定向(网址跳转)并读懂重定向链
用 TrueURL、curl 和浏览器开发者工具(DevTools)逐步检测 URL 重定向,读懂重定向链的每一跳,并修复重定向循环、过长的重定向链以及 301 与 302 混用等问题。
阅读全文免费重定向工具
追踪从 URL 到最终目标地址之间的每一跳。找出多余的重定向、临时状态码和耗时过长的跳,再把重定向链精简为一次重定向。
按 Enter 开始检测
Cloudflare 边缘网络始终会验证证书,因此该选项无法跳过证书验证。证书问题会在检测结果中报告。
随第一个请求发送,最大 16 KB。除非设置了 Content-Type 请求头,否则 JSON 请求体以 application/json 发送,其他内容以表单形式发送。
可设为 1~50。浏览器会在 20 跳后停止。
网站可能会把手机、搜索引擎爬虫和链接预览爬虫重定向到不同的地址。
随重定向链中的每个请求一起发送。
未添加自定义请求头。
填写值后才会发送此请求头。请求头的值不会保存。
跟踪 HTML 页面中的 <meta http-equiv="refresh"> 标签和 Refresh 响应头。
跟踪页面脚本中简单、无条件的重定向,例如 location.href = "…"。
设置会保存在此浏览器中,但 Cookie、请求头的值和 POST 请求体始终不会保存。
重定向链是浏览器或爬虫在到达有内容的页面之前,必须依次跟随的一系列重定向。只有一跳(例如从 /old-page 到 /new-page)是正常的。但规则会年复一年地叠加,重定向链也随之变长:先是 HTTP 到 HTTPS 的规则,然后是 www 规则,接着是末尾斜杠规则,最后还有上次改版留下的规则。下面这条重定向链经过了 4 次重定向,其实一次就够了:
http://example.com/shop 301
https://example.com/shop 301
https://www.example.com/shop 301
https://www.example.com/shop/ 302
https://www.example.com/store/ 200
每一行代表一跳。状态码表示重定向的类型:301 和 308 是永久重定向,而 302、303 和 307 是临时重定向。方法显示 POST 在哪一跳变成了 GET,浏览器在遇到 301、302 或 303 后就会这样处理。原始的 Location 值准确显示了服务器发送的内容,便于发现相对路径、缺失的斜杠或多余的查询字符串。标记为 meta refresh 或 JavaScript 的跳是在页面 HTML(或 Refresh 响应头)中发现的客户端重定向,而不是来自 Location 响应头。
重定向链有 4 种结束方式:在最终 URL 得到正常响应、出现重定向循环、达到最大跳数上限,或者某一跳出错,例如 DNS 解析失败、超时或证书问题。
http://example.com/page 直接重定向到 https://www.example.com/page/。阅读约 12 分钟
用 TrueURL、curl 和浏览器开发者工具(DevTools)逐步检测 URL 重定向,读懂重定向链的每一跳,并修复重定向循环、过长的重定向链以及 301 与 302 混用等问题。
阅读全文阅读约 13 分钟
详解每个 3xx 状态码的含义:从是否永久、是否保留请求方法、缓存和 SEO 影响 4 个方面对比 301、302、303、307 和 308 跳转,并附 nginx、Apache 和 PHP 配置示例。
阅读全文目标是从任何旧 URL 到最终 URL 只经过一次重定向。在无法避免时,两次也可以接受,例如先从 HTTP 升级到 HTTPS,再更换主机名。TrueURL 会对超过 3 次重定向的链发出警告。Googlebot 在 10 跳之后会放弃,浏览器则在大约 20 次后停止,并报“重定向次数过多”错误。
Google 表示,3xx 重定向不会损失 PageRank,因此重定向链不会直接稀释排名信号。实际问题在于页面变慢、浪费抓取请求,以及链中某一跳出错或使用临时重定向的可能性更高。应把重定向链当作技术债务,及时精简。
重定向链终究会结束,停在一个最终 URL 上。重定向循环则永远不会结束,因为它会回到一个已经访问过的 URL,浏览器会显示错误而不是页面。TrueURL 两者都能检测;重定向循环检测介绍了循环的常见原因和修复方法。
可以。在高级设置中将 HTTP 方法设为 POST,并添加请求体。之后重定向链会遵循浏览器规则:POST 之后,301、302 或 303 会改用不带请求体的 GET 继续,而 307 或 308 会用相同的请求体再次发送 POST。
表示最终 URL 的主机名与您输入的不同(开头的 www. 不计在内)。对于短链接和域名迁移,这是正常现象。如果自己网站上的页面意外地被重定向到了其他域名,就要仔细排查:这可能说明规则配置有误、网站被黑,或者存在开放重定向漏洞。
默认会。TrueURL 会扫描 HTML 响应中的 meta refresh 标签和简单的 JavaScript 重定向,从那里继续跟踪重定向链,并为这些跳加上标记,方便与 HTTP 重定向区分开。也可以关闭此功能,只查看服务器端重定向,或者使用 Meta Refresh 重定向检测查看详细信息。
这一跳的请求在收到任何 HTTP 响应之前就失败了:主机名无法解析、连接被拒绝或超时、TLS 证书无效,或者重定向指向了无效或被屏蔽的地址。该跳的错误信息会说明具体是哪一种情况。之前的各跳仍会显示,因此可以准确看出重定向链是在哪里中断的。