url - 浏览器如何使用查询字符串缓存 301 重定向

标签 url redirect http-headers http-status-code-301 http-redirect

我希望将 301 重定向到应用程序以获取查询字符串参数的特定值。

例如:

  • http://www.example.com/page?id=1 → 重定向到新页面
  • http://www.example.com/page?id=2 → 渲染正常响应

  • 浏览器如何缓存重定向?

    具体来说,在访问第一个 URL 后,某些浏览器会开始对 id=2 执行 301 重定向,还是基于完整 URL 进行重定向?

    最佳答案

    浏览器肯定会缓存 301 重定向,因为它是永久重定向。基本上,您是在告诉浏览器永远不要查看原始 URL 并自动转到第二个 URL。任何搜索引擎都会发生同样的事情。如果您打算再次使用该原始 URL,请确保使用临时重定向。

    Specifically, after visiting the first URL, will some browsers start performing a 301 redirect for the id=2, or are redirects based on the full URL?



    不,浏览器应该完整地查看每个 URI,因此 page?id=1Page1?Id=2 是不同的 URL,并且 301 重定向仅适用于第一个 url。

    请记住,浏览器正在执行重定向并根据其对 HTTP 规范的解释实现自己的规则。如果浏览器中有任何错误,您可能会得到不可预测的结果,但简短的回答是,它们是对不同 url 的不同请求,每个请求都有自己的 HTTP 状态代码,因此可以将它们视为单独的页面。

    关于url - 浏览器如何使用查询字符串缓存 301 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370690/

    相关文章:

    url - 使用协议(protocol)相对 URL 时加载什么协议(protocol)?

    Azure App Service 随机给出 SSL 连接错误

    c++ - HTTP 请求中的 header 名称无效

    java - Spring Global CORS 配置不起作用,但 Controller 级别配置起作用

    url - URL 路径中的点是什么意思?

    c# - 如何检查一个url是否有子字符串

    php - CakePHP 重定向状态代码 404

    redirect - Nginx 放弃​​与多个虚拟主机的 SSL 握手

    c# - 如何在 Asp.Net 中的 Server.Transfer 之前设置 Response Header?

    javascript - 如何使用 javascript 正则表达式从 url 中仅获取主机名?