Force browsers to forget cached redirects?

試著忘記壹切 提交于 2019-12-04 03:11:24

问题


I inherited a domain that previously had a 301 redirect from the root ("/") to "/index.shtml"

I've removed the redirect and a different site on the domain, but people who visited the site in the past will have the redirect behavior cached in their browsers... for a terribly long time, unless they manually clear their caches.

Anyone trying to go to example.com in these browsers will be sent to example.com/index.shtml before they even make any HTTP requests. Right now this is a huge problem because there is no index.shtml, but is there something I can do with headers to tell browsers to "forget about that redirect you just did!"?


回答1:


The short answer: There is no way to tell the browsers of the users to "forget" the R 301 redirect. 301 means permanent, it can be only undone on action of the user or when the cache expires.

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

Similar Q and A on Stackoverflow: Apache - how to disable browser caching while debugging htaccess, Cannot remove 301 redirect

Try to avoid 301 redirects and use 302 (temporarily) instead. Here is an article how to set no cache for 301 redirects (didn't try it): http://mark.koli.ch/set-cache-control-and-expires-headers-on-a-redirect-with-mod-rewrite

What you could do in your scenario: You could add a header redirect to the file index.shtml, which sends the user to the original file, where he should usually go.



来源:https://stackoverflow.com/questions/23397040/force-browsers-to-forget-cached-redirects

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!