PAYATHON 2026

Chrome 访问 /admin/maintenance 时为何跳转到项目首页?

数据小许

结论

/admin/maintenance 在 Chrome 无痕窗口和 Brave 中可以访问,普通 Chrome 却仍会跳转。这种情况更像是普通 Chrome 配置文件中的缓存或扩展造成的。此前使用的 [R=301,L] 会发送永久重定向。如果 Chrome 曾收到该路径的 301 响应,即使 .htaccess 已恢复,浏览器也可能继续按缓存结果跳转。清除 Cookie 和网站存储不一定会清除 HTTP 缓存。

这只是根据浏览器表现作出的判断,目前还不能确定具体原因。

按顺序排查

  1. 清除 Chrome 缓存

    在普通 Chrome 中打开“清除浏览数据”,将时间范围设为“时间不限”,勾选“缓存的图片和文件”后清除。Cookie 和网站存储已经清理过,可以暂时不必重复处理。重启 Chrome,再访问:

    https://www.myproject.com/admin/maintenance

  2. 检查请求是否发生重定向

    打开 Chrome 开发者工具的“Network”面板,勾选“Disable cache”,然后访问该端点。查看请求状态码和响应头中的 Location:

    • 如果请求返回 301 或 302,且 Location 指向项目首页,说明重定向仍由服务器或上游代理发出。
    • 如果请求直接返回成功状态,但浏览器仍显示首页,检查后续请求、JavaScript 跳转和 Service Worker。
    • 如果勾选“Disable cache”后问题消失,浏览器缓存可能是重要线索。

    “Disable cache”通常只在开发者工具打开时生效。

  3. 检查普通 Chrome 配置文件

    如果清除缓存后问题仍然存在,可以先停用普通 Chrome 中的扩展再试,也可以新建一个 Chrome 配置文件进行测试。无痕窗口和普通窗口的扩展启用状态、缓存可能不同,因此无痕测试成功并不能单独证明问题一定来自 301 缓存。

  4. 核对服务器规则和实际请求路径

    确认部署中的 public/.htaccess 已恢复,并检查其他 .htaccess 文件、虚拟主机配置、反向代理或 CDN 是否仍有针对该路径的重定向。原规则 RewriteRule .*\.php.* / [R=301,L] 会匹配规则处理时路径中包含 .php 的请求;从规则本身看,它不明显匹配 /admin/maintenance。是否有关,还需要结合实际请求和完整重写配置判断。

注意事项

问题描述中还出现了带空格的 /admin/ maintenance。请确认实际访问地址是 /admin/maintenance,并在 Network 面板中核对浏览器发出的请求路径。也可以从命令行请求该地址,检查响应状态和 Location,再与浏览器结果对照。测试时请使用实际可访问的主机名和正确路径。

备注:内容仅供参考。