TrueURL
TrueURL

菜单

免费 · 无需注册 · 运行于 Cloudflare 边缘网络

URL 重定向检测与短链接还原

粘贴任意链接,无需在浏览器中打开,即可查看它的完整重定向链和最终 URL。每一跳都会显示状态码、响应头和耗时。

  • 逐跳显示状态码、响应头和耗时
  • 识别 meta refresh 和 JavaScript 重定向
  • 可自定义请求方法、请求头、Cookie 和 User-Agent

重定向检测的工作原理

点击“检测”后,URL 会被发送到 TrueURL 的检测程序,它运行在 Cloudflare 全球边缘网络上。检测程序在关闭自动重定向的情况下请求该 URL 并读取响应。如果响应是重定向,就解析 Location 响应头并请求下一个 URL,逐跳跟踪,直到遇到不再重定向的页面、出现错误、发现重定向循环或达到最大跳数上限为止。

浏览器始终不会访问被检测的 URL,因此可以放心查看短链接、跟踪链接或来路不明的链接。除了 HTTP 3xx 重定向,检测程序还能识别 HTML 页面中的 meta refresh(HTML 页面自动刷新)标签和简单的 JavaScript 重定向,并单独标注出来,因为用命令行工具检测时很容易漏掉这类客户端重定向。

如何解读检测结果

  • 最终 URL:链接经过最后一跳后到达的地址及其状态码。200 OK 表示目标页面正常加载。
  • 重定向链:每跳一行,列出 URL、HTTP 方法、状态码、响应时间以及它指向的 Location。每一跳还会列出完整的响应头,以及它所设置的 Cookie 的名称。
  • 警告:提示临时重定向、HTTPS 降级、超过 3 次重定向的长链、最终 URL 位于其他域名、客户端重定向,以及疑似人机验证的页面。重定向循环、达到最大跳数上限或某一跳失败,会作为检测结论直接显示。
  • 分享、复制与导出:复制最终 URL,分享一个可以重新检测同一 URL 的链接(不包含您的高级设置),或导出检测结果。

用高级设置模拟真实访问

默认请求无法满足需要时,可以打开高级设置:

  • HTTP 方法:GET(默认)、HEAD,或带请求体的 POST。后续各跳遵循浏览器规则:POST 之后遇到 301、302 或 303 会改用 GET 继续,而 307 和 308 会保留原方法和请求体。HEAD 响应没有响应体,因此使用 HEAD 时无法检测 meta refresh 和 JavaScript 重定向。
  • 最大跳数:可设为 1~50 次重定向,超过该跳数后停止跟踪。默认值 20 与 Chrome 和 Firefox 的上限相同。
  • 自定义 User-Agent:留空则使用较新版本的桌面版 Chrome,也可以选择预设,例如 iPhone 上的 Safari、Android 上的 Chrome、Googlebot、Bingbot、Facebook 和 X 的链接预览爬虫,或 curl。
  • 自定义请求头和 Cookie:用于复现随语言或登录状态而变化的重定向,例如设置 Accept-Language: de 或会话 Cookie。用来冒充其他客户端 IP 地址的请求头(如 X-Forwarded-For)不会被发送。与浏览器一样,重定向链中设置的 Cookie 会保留到后续各跳。
  • 客户端重定向:选择跟踪 meta refresh 和 JavaScript 重定向,还是只报告、不跟踪。
  • 忽略 SSL 错误:Cloudflare 边缘网络始终会验证证书,因此这个选项无法跳过有问题的证书,而是在出现 TLS 问题的那一跳上报告该问题。

为什么检测结果可能与浏览器中不同

TrueURL 从 Cloudflare 数据中心发出“干净”的请求:没有浏览历史,没有登录会话,除非手动添加,也不带任何 Cookie。默认情况下,它以桌面版 Chrome 的身份发出请求,并请求英文内容(Accept-Language: en-US)。按国家/地区、语言、设备或登录状态进行重定向的网站,可能会把它重定向到与您不同的地址。可以通过 User-Agent、请求头和 Cookie 设置来复现实际的访问环境;基于国家/地区的重定向则取决于网站把 Cloudflare 的 IP 地址定位在哪里,这一点无法更改。另外别忘了,浏览器本身也可能缓存了旧的 301 重定向。

有些网站会拦截来自数据中心和边缘网络的自动化请求,或要求其通过人机验证。如果某个响应看起来像机器人检测或人机验证(质询)页面(例如“Just a moment...”),TrueURL 会将其标出,因为真实的目标地址被挡在验证页面之后,检测并未实际到达那里。

谁在使用 TrueURL

常见问题

什么是 URL 重定向(网址跳转)?

URL 重定向用来告诉浏览器或爬虫:它请求的内容位于另一个地址。服务器返回 3xx 状态码和 Location 响应头,客户端随后请求新的 URL。页面迁移、更换域名、从 HTTP 升级到 HTTPS,或者短链接指向长链接时,网站都会使用重定向。页面也可以在 HTML 中通过 meta refresh 标签或 JavaScript 实现重定向。

为什么要检测 URL 重定向?

为了准确了解链接通向哪里,以及中间经过了哪些步骤。网站所有者需要确认旧 URL 只经过一次永久重定向就能到达正确页面、HTTP 会重定向到 HTTPS,并且没有循环或出错的跳。其他用户则可以在点击之前先核实短链接、联盟推广链接或跟踪链接。如何检测 URL 重定向一文还介绍了 curl 和浏览器开发者工具(DevTools)的用法。

301 和 302 重定向有什么区别?

301 表示页面已永久移动:浏览器可能会缓存它,搜索引擎会将新 URL 编入索引,并把链接等信号转移到新 URL。302 是临时重定向,因此原 URL 通常会继续保留在索引中。永久迁移请使用 301(或 308)。我们的 HTTP 重定向状态码指南对所有重定向状态码做了对比。

TrueURL 会保存我检测的 URL 吗?

不会。URL 和设置仅为执行检测而发送到我们部署在 Cloudflare 网络上的检测程序,结果会直接返回到浏览器。我们不保留检测结果,也不保留检测过的 URL 历史记录。Cloudflare 会短期保留发往检测程序的请求的技术日志,用于故障排查。高级设置只保存在您自己的浏览器中,Cookie 值、请求头的值和请求体永远不会被保存。详情请参阅隐私政策。

可以一次检测多个 URL 的重定向吗?

可以。批量重定向检测每次最多可检测 100 个 URL,并能将结果导出为 CSV 或 JSON。如需审查整个网站,站点地图重定向检测会读取 XML 站点地图,并检测其中最多 500 个 URL。

响应时间说明了什么?

它是从发出某一跳的请求到收到该跳响应头所用的时间,由执行检测的 Cloudflare 数据中心测得。必要时其中还包括 DNS 查询和建立连接的时间,以及服务器的处理时间。每一跳都会在最终页面开始加载之前增加一次这样的往返,所以重定向链越短越好。重定向延迟检测会以瀑布图展示这些时间。

短链接(短网址)有哪些风险?

短链接隐藏了真实的目标地址,它既可能指向正规网站,也同样可能指向钓鱼页面、恶意软件下载或诈骗网站。这正是攻击者喜欢在邮件、短信和社交媒体帖子中使用短链接的原因。先还原链接,就能看到真正的最终 URL 以及它经过的每一个域名。

TrueURL 可以还原哪些短链接服务?

凡是通过标准 HTTP 状态码、meta refresh 或简单 JavaScript 进行重定向的短链接服务都可以,其中包括 Bitly(bit.ly)、TinyURL、X(t.co)、Rebrandly、Ow.ly、Is.gd 和 Buffer(buff.ly)等主流服务,以及品牌自有短域名;经过多个短链接服务的链接也会一路跟踪到底。在重定向之前显示广告、警告或验证码(CAPTCHA)页面的短链接服务无法自动还原,重定向链会停在该页面上。

博客文章

关于检测重定向和选择合适状态码的实用指南。

全部文章