2016-03-08 26 views
3

如果我使用Response.RedirectLocation ="login.aspx"重定向頁面,那麼它與Responce.Redirect("~/login.aspx")有何不同? 謝謝Responce.Redirect和Response.RedirectLocation有什麼區別?

+1

RedirectLocation只是設置位置標題。重定向 設置標題,設置正確的狀態代碼,包括一個快速的 HTML片段,表示資源已移動。 –

回答

1

RedirectLocation設置Location HTTP標頭。 Redirect做得更多,並用3xx狀態碼完成響應。

2

Response.Redirect(url);導致302重定向(臨時重定向)並關閉導致用戶瀏覽器被重定向到備用URL的響應。

如果你想要永久更新一個URL,例如你已經對URL結構進行了修改,並且希望讓世界知道這是一個永久的變化(即搜索引擎從舊URL到新的),那麼這應該通過301永久重定向來指示。

Response.Status = "301 Permanent Redirect"; 
    Response.StatusCode = 301; 
    Response.RedirectLocation = "http://newurl.com/"; 
    Response.End(); 

注::Response.RedirectLocation不停止之前的代碼(不像Response.Redirect())的處理

這可以如下來實現。這意味着除非您想繼續處理任務,否則您需要關閉連接。

總結:

的Response.Redirect()總是導致302臨時重定向,並停止處理

Response.RedirectLocation允許更多的控制例如設置正確的狀態代碼,或進一步繼續如果需要處理。