我继承了一个域,该域以前具有从根 (“/”) 到“/index.shtml”的 301 重定向
我已经删除了重定向和域中的另一个站点,但是过去访问过该站点的人将在他们的浏览器中缓存重定向行为......非常长的时间,除非他们手动清除缓存.
任何试图在这些浏览器中访问 example.com 的人都将在发出任何 HTTP 请求之前被发送到 example.com/index.shtml。现在这是一个大问题,因为没有 index.shtml,但是我可以用 header 做些什么来告诉浏览器“忘记你刚刚做的重定向!”?
最佳答案
简短的回答:没有办法告诉用户的浏览器“忘记”R 301 重定向。 301 表示永久,只有在用户操作或缓存过期时才能撤消。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2
Stackoverflow 上的类似问答: 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
在您的场景中您可以做什么:您可以将 header 重定向添加到文件 index.shtml,这会将用户发送到他通常应该去的原始文件。
关于.htaccess - 强制浏览器忘记缓存的重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47410572/