Chrome访问api.domain.com子域名莫名跳转至主域名路径问题咨询
问题诱因
- Chrome专属的重定向缓存与HSTS缓存机制:Chrome对301/308永久重定向的缓存周期远长于Firefox、Edge,且会优先读取本地缓存的重定向规则,不会每次都请求服务端确认。如果前期测试时配置过api.domain.com指向domain.com/api的重定向规则,Chrome会长期存储该规则,哪怕服务端已经修改配置,缓存还是会触发重定向。此外如果根域名配置了包含子域名的HSTS策略,也可能触发Chrome的强制跳转逻辑。
- Cloudflare规则的UA匹配疏漏:如果Cloudflare后台配置的页面规则、重定向规则中误加入了针对Chrome内核的User-Agent判断,或者规则匹配逻辑存在边界问题,就会出现仅Chrome请求命中重定向规则的情况。
- Heroku应用的路由逻辑问题:如果应用内的路由配置、反向代理规则(如Nginx)中加入了Chrome专属的请求头判断(如
Sec-Fetch-*系列请求头),会导致只有Chrome访问子域名时被重定向到根域名/api路径。 - Chrome本地扩展干扰:代理类、广告拦截类、网站增强类扩展可能会修改请求路由,将api子域名的请求强制转发到根域名下的对应路径,其他浏览器未安装相同扩展就不会触发问题。
解决方法
- 清理Chrome本地缓存
- 清理重定向缓存:打开
F12开发者工具,切换到「Network」面板,勾选「Disable cache」,右键地址栏左侧的刷新按钮,选择「清空缓存并硬性重新加载」即可清除当前站点的重定向缓存。 - 清理HSTS缓存:访问
chrome://net-internals/#hsts,在「Delete domain security policies」输入框中分别填入api.domain.com和domain.com,点击删除后重启浏览器再测试。
- 清理重定向缓存:打开
- 校验Cloudflare配置
- 进入Cloudflare对应域名的「Rules」板块,逐一检查重定向规则、页面规则,确认没有针对api子域名的错误跳转规则,且规则未加入User-Agent相关的匹配条件。
- 暂时将api子域名的Cloudflare代理模式切换为「DNS only」,待DNS生效后测试访问,如果跳转消失即可确认问题出在Cloudflare配置层。
- 排查Heroku应用配置
- 查看Heroku应用的访问日志,对比Chrome和其他浏览器访问时的响应状态码,如果Chrome请求的响应为301/302,说明跳转由应用层返回,检查应用路由配置、反向代理规则,删除api子域名指向根域名/api的错误重定向逻辑后重新部署即可。
- 排查Chrome扩展
- 打开Chrome无痕模式访问
api.domain.com,如果访问正常即可确认是扩展导致的问题,逐一禁用已安装的扩展即可定位到冲突扩展。
- 打开Chrome无痕模式访问
内容的提问来源于stack exchange,提问作者Marius Bauld
相关产品推荐
相关产品推荐

