2011-05-18 220 views
0

我剛剛遇到了一個需要花費一點時間才能弄清楚的問題,並且想要爲可能存在相同問題的其他人記錄該問題。谷歌瀏覽器和Response.RedirectPermanent

我們的網站可以在不同的國家使用,所以我們有一個看起來像這樣的網址:

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

Google Chrome出現問題。因爲我們使用了永久重定向,它甚至不會將http://www.example.com/US發送到瀏覽器。它基本上說:

哦,他們告訴我最後一次/美國是一個 永久重定向到/所以我就 請求/不發送/美國對 瀏覽器。

所以修復是使用Response.Redirect(302)代替的Response.RedirectPermanent(301)。

+0

順便說一下,我認爲這將是任何框架的問題,而不僅僅是asp.net。可能任何時候301重定向完成。 – 2011-05-18 19:55:19