阅读约 12 分钟
如何检测 URL 重定向(网址跳转)并读懂重定向链
用 TrueURL、curl 和浏览器开发者工具(DevTools)逐步检测 URL 重定向,读懂重定向链的每一跳,并修复重定向循环、过长的重定向链以及 301 与 302 混用等问题。
阅读全文免费重定向工具
分别以桌面版 Chrome 和 iPhone 版 Safari 的身份检测同一个 URL,并排对比两条重定向链,找出把移动端访问者引到意外位置的设备重定向。
Cloudflare 边缘网络始终会验证证书,因此该选项无法跳过证书验证。证书问题会在检测结果中报告。
随第一个请求发送,最大 16 KB。除非设置了 Content-Type 请求头,否则 JSON 请求体以 application/json 发送,其他内容以表单形式发送。
可设为 1~50。浏览器会在 20 跳后停止。
网站可能会把手机、搜索引擎爬虫和链接预览爬虫重定向到不同的地址。
随重定向链中的每个请求一起发送。
未添加自定义请求头。
填写值后才会发送此请求头。请求头的值不会保存。
跟踪 HTML 页面中的 <meta http-equiv="refresh"> 标签和 Refresh 响应头。
跟踪页面脚本中简单、无条件的重定向,例如 location.href = "…"。
设置会保存在此浏览器中,但 Cookie、请求头的值和 POST 请求体始终不会保存。
有些网站会根据访问者的设备(通过 User-Agent 请求头识别)决定把访问者引向哪里。典型的例子包括独立的移动版网站(m.example.com)、应用下载页、商店或地区选择页,以及广告着陆页。如果这套逻辑出错,移动端访问者就会被引到首页、错误页面,或者与所点击链接毫不相关的页面。
Google 主要抓取移动版页面并将其编入索引,因此出错的移动端重定向既会损害用户体验,也会影响搜索可见度。
TrueURL 使用相同的设置把该 URL 检测两次,只改变 User-Agent:一次是 Windows 上较新版本的桌面版 Chrome,一次是 iPhone 上的 Safari。两条重定向链及其最终 URL 和状态码会并排显示,任何差异都一目了然。
只有 User-Agent 会改变。通过 JavaScript 根据屏幕尺寸选择版本的网站,在两栏中的结果可能完全相同,尽管它们在真实手机上看起来并不一样。如需测试其他 User-Agent,例如 Android 上的 Chrome 或 Googlebot,请在重定向链检测的高级设置中选择预设。
www.example.com/page,移动端则重定向到对应的 m.example.com/page,而不是移动版首页。桌面版页面应通过 <link rel="alternate" media="only screen and (max-width: 640px)" href="https://m.example.com/page"> 指向其移动版 URL,移动版页面则应使用指回桌面版的 canonical 标签。Vary: User-Agent,以免缓存混淆两个版本。m. 链接的桌面端用户却不会被重定向回桌面版页面。阅读约 12 分钟
用 TrueURL、curl 和浏览器开发者工具(DevTools)逐步检测 URL 重定向,读懂重定向链的每一跳,并修复重定向循环、过长的重定向链以及 301 与 302 混用等问题。
阅读全文Windows 上的桌面版 Chrome 和 iPhone 上的 Safari,二者都使用较新的版本号。几乎所有设备识别代码都会把前者识别为台式电脑,把后者识别为手机。
主要是移动端结果。Google 主要使用 Googlebot 智能手机版抓取网页并编入索引,它的 User-Agent 看起来像 Android 手机上的 Chrome。如果移动端那一栏停在了错误的页面上,Google 也可能把那个页面编入索引。如需查看网站向 Googlebot 的 User-Agent 返回什么,请在重定向链检测的高级设置中使用 Googlebot 智能手机预设。通过 IP 地址验证 Googlebot 的网站,对 TrueURL 的响应仍可能有所不同。
Google 支持这种方式,但要做好更难:每个页面都需要一个对应的移动版 URL、正确的注释,以及双向的重定向。Google 推荐采用响应式设计,这样就完全不需要设备重定向。如果运营的是 m. 子域名网站,每次发布新版本后,都应在这里检测关键页面。
您的网站很可能是在浏览器中通过响应式 CSS 或 JavaScript 进行适配,而不是通过服务器端重定向。这正是推荐的做法,也意味着根本不存在可供对比的设备重定向。
本工具只对比桌面版 Chrome 和 iPhone 上的 Safari。如需测试其他设备,请打开重定向链检测的高级设置,选择 Android 上的 Chrome 等预设,或粘贴任意 User-Agent 字符串,然后运行检测。
会。每次重定向都要在页面开始加载之前多花一个完整的往返时间,而移动网络的延迟比宽带更高。仅从 www 到 m. 的一次重定向,就可能带来明显的延迟;可以用重定向延迟检测来测量。