浏览器重定向缓存如何清除

公司项目原来nginx配置, 当访问www.xx.com/ ---重定向到---> www.xx.com/app/#/home这个地址

现在修改nginx配置改成www.xx.com就访问www.xx.com/app/#/home页面

但是之前访问过网站的用户浏览器里有缓存,访问www.xx.com/时,浏览器默认就打开了www.xx.com/app/#/home这个地址。

请问有什么办法可以清楚浏览器这种缓存?

阅读 9.5k
5 个回答

取决于你之前重定向是用的 301 还是 302 了。

前者是永久重定向,表示服务端告诉浏览器:“这样的 URL 需要重定向,你记住了,下次遇到不用再问我了”。

后者是临时重定向,表示服务端告诉浏览器:“这样的 URL 这次需要重定向,下次需不需要、你还得再问我一下我才能告诉你”。

如果你用的是 301,等于你已经告诉浏览器以后别问你了(即缓存),还想实现 302 的效果?

没办法,只能让用户手动清除自己的浏览器缓存。

不过这次就长心眼吧,再遇到这种的,尽量选择使用 302,别为了省点儿流量给自己挖坑了。

这个问题解决了吗

新手上路,请多包涵

请问问题解决了,我也遇到了这样的问题

我遇到过,重启电脑。

新手上路,请多包涵

这种还是有解决办法的(亲测)。
步骤:

  • 首先再加一个重定向,拿你这个例子来说,加一个从www.xx.com/app/#/homewww.xx.com的重定向。你可能会想,这样不就是死循环了吗,用户浏览器会不会崩溃?没错,会死循环的,浏览器也会崩溃,不过第二步就是解决这个问题。
  • 第二,在你之前的重定向里面加一个条件,比如说如果header或者query或者cookie中有某个key-value,满足条件的情况下,才能从www.xx.com重定向到 www.xx.com/app/#/home
  • 第三,把上面两个重定向都改成临时重定向302或者307

按照上面步骤应该就能解决permanent redirect的问题,其实是利用了浏览器重定向的url不会走本地缓存的特点。并且会把用户本地的永久重定向给清除,以临时重定向代替。

就这些了,希望解决了的小伙伴能给个赞或者回复作为反馈是否有效~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题