我刚遇到一个问题需要一段时间来弄清楚,并希望将其记录给可能有同样问题的其他人。
我们的网站可以在不同的国家/地区使用,因此我们的网址如下所示:
http://www.example.com/
http://www.example.com/CA
http://www.example.com/UK
第一个自动进入美国。我们使用cookie来记住他们的国家,以便他们以后回到网站时(http://www.example.com),我们将它们重定向到(http://www.example.com/CA)
当有人想要回到美国版本时,他们点击这样的链接(http://www.example.com/US)设置他们的cookie并重定向回主站点,因为美国通常不会没有国家代码。
在执行这些重定向时,如果他们点击了/ US链接,我们会执行以下操作:
SetCookie("US");
Response.RedirectPermanent("/");
当他们转到加拿大(有效)然后试图转回美国时出现了问题。回答如下。
答案 0 :(得分:1)
Google Chrome出现问题。因为我们使用了永久重定向,所以甚至不会向浏览器发送http://www.example.com/US。它基本上说:
哦,上次他们告诉我/美国是一个 永久重定向到/我只是 请求/不发送/美国到 浏览器。
所以修复是使用Response.Redirect(302)而不是 Response.RedirectPermanent(301)。