【问题标题】:Force browsers to forget cached redirects?强制浏览器忘记缓存的重定向?
【发布时间】:2014-06-17 07:15:12
【问题描述】:

我继承了一个以前具有从根 ("/") 到 "/index.shtml" 的 301 重定向的域

我已经删除了重定向和域上的另一个站点,但是过去访问该站点的人会将重定向行为缓存在他们的浏览器中......很长一段时间,除非他们手动清除缓存.

任何尝试在这些浏览器中访问 example.com 的人都会在他们发出任何 HTTP 请求之前被发送到 example.com/index.shtml。现在这是一个很大的问题,因为没有 index.shtml,但是我可以用 header 做些什么来告诉浏览器“忘记你刚刚做的重定向!”?

【问题讨论】:

    标签: .htaccess caching redirect browser http-status-code-301


    【解决方案1】:

    简短的回答:没有办法告诉用户的浏览器“忘记”R 301 重定向。 301 表示永久,只有在用户操作或缓存过期时才能撤消。

    http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2

    Stackoverflow 上的类似 Q 和 A: Apache - how to disable browser caching while debugging htaccess, Cannot remove 301 redirect

    尽量避免 301 重定向并改用 302(暂时)。这是一篇如何为 301 重定向设置不缓存的文章(没有尝试过): https://github.com/markkolich/blog/blob/master/content/entries/set-cache-control-and-expires-headers-on-a-redirect-with-mod-rewrite.md

    您可以在您的场景中做些什么:您可以将标头重定向添加到文件 index.shtml,这会将用户发送到他通常应该去的原始文件。

    【讨论】:

    • 将 index.shtml 重定向回根目录会在受影响的浏览器中创建一个重定向循环。我将其 [302] 重定向回 example.com/?home,因此 URL 至少有所不同,但我不确定这是否有效!
    • 最后一个链接中禁用缓存的指令对我有用。谢谢!
    • 最后一个链接失效了,你还记得解决方法吗?
    • 即使使用 302,您也会遇到浏览器继续使用缓存重定向的问题,尽管站点不再重定向。 302重定向有解决方案吗?
    【解决方案2】:

    这可以通过清除数据缓存来完成。 它可以删除所有,.htaccess 重定向来自浏览器的更改。

    【讨论】:

      猜你喜欢
      • 2018-05-06
      • 2011-10-11
      • 2016-02-18
      • 1970-01-01
      相关资源
      最近更新 更多