gpt4 book ai didi

redirect - nginx 从客户端浏览器缓存中清除 301 永久

转载 作者:行者123 更新时间:2023-12-05 05:22:48 30 4
gpt4 key购买 nike

我愚蠢地使用 301 而不是 302 用于 Nginx 中的特定重定向

location /somewhere/ {
return 301 /somewhere/neat/;
}

但现在我也需要更改我们重定向的位置:

location /somewhere/ {
# 302 now, lets not make the same mistake again!
return 302 /somewhere/else/entirely/;
}

如果我在隐身模式下查看 URL 或破坏我的浏览器重定向缓存,我当然可以看到这种变化,但如果不自己做同样的事情,很多用户是看不到它的。即使我们能够可靠地指示我们的客户破坏他们的缓存,我们也只能接触到其中的一小部分,其余的都将保留旧内容。

最佳答案

你说的是缓存破坏,我也遇到了同样的问题。您需要做的(如果我理解正确的话)是将查询字符串参数强制添加到 url 的末尾,这有效地强制客户端浏览器刷新以获取任何"new"内容。

一个可能的解决方法是在您的 url 末尾附加一个查询字符串(如果该查询字符串不存在的话)。

在您的情况下,您可能能够使用重写来“修复”错误的 url,并缓存破坏原始 url 重定向:

# Fix the incorrect url
location /somewhere/neat/ {
rewrite ^(.*)$ /somewhere/$1?cb=12345 last;
}

# Handle the new redirect
location /somewhere/ {
return 302 /somewhere/else/entirely/;
}

cb=12345 可以是任何你想要的,只要它只是一个查询字符串

这种方法的唯一问题是如果您的位置/somewhere/neat 需要仍然是一个事件页面,因为这会有效地强制它总是返回到/somewhere

关于redirect - nginx 从客户端浏览器缓存中清除 301 永久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39709307/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com