谷歌浏览器和Response.RedirectPermanent

时间:2011-05-18 19:50:45

标签: asp.net google-chrome

我刚遇到一个问题需要一段时间来弄清楚,并希望将其记录给可能有同样问题的其他人。

我们的网站可以在不同的国家/地区使用,因此我们的网址如下所示:

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("/");

当他们转到加拿大(有效)然后试图转回美国时出现了问题。回答如下。

1 个答案:

答案 0 :(得分:1)

Google Chrome出现问题。因为我们使用了永久重定向,所以甚至不会向浏览器发送http://www.example.com/US。它基本上说:

  

哦,上次他们告诉我/美国是一个   永久重定向到/我只是   请求/不发送/美国到   浏览器。

所以修复是使用Response.Redirect(302)而不是 Response.RedirectPermanent(301)。