在我目前正在建設的網站中,我們需要大量的動態重定向,以保持網站各部分的流量。Response.Redirect偶爾會忽略URL編碼
我目前使用response.redirect來實現這一點,重定向URL是在各種按鈕的回發方法後面的代碼中動態生成的。
在95%的情況下,這很好,但是我注意到有時URL被破壞得很厲害。
在一種情況下,url是URLEncoded,因爲其中一個參數有時包含&符號,但是重定向忽略了這一點並重定向到非編碼版本。
即 「page.aspx?適量=第一%26秒&適量= 2個& QS = 3」 正被重定向至 「page.aspx?適量=第一&第二& QS = 2個& QS = 3」
發生的另一種情況是響應完全被剝離了&符號,導致頻繁崩潰。
即 「page.aspx?QS = 1個& QS = 2個& QS = 3」 被重定向到 「page.aspx?QS = 1QS = 2QS = 3」
沒有人有任何想法,爲什麼無論是這些情景可能會發生?
議決
對不起,這是由於我自己的白癡,從管理重定向到非管理員(不要問),而不是把&再次或URL編碼的背部上幾頁。
(捂臉)
我使用的是.NET 3.5,並且在將URL傳遞給response.redirect方法之前,我手動對URL進行了任何用戶輸入編碼。我知道它是自己的內部編碼和解析,如果是這種情況,那麼這個問題將包含在網站中的所有重定向鏈接中,而不僅僅是4或5的錯誤操作! – 2009-09-24 15:58:29