爲404重定向,我用下面的代碼:的Response.Redirect省略Http狀態302
try
{
HttpContext.Current.Response.Redirect(url, true);
}
catch (System.Threading.ThreadAbortException)
{ }
這種重定向的問題是,該網頁被重定向到404頁,有對 404頁在後面的代碼中,我將Http Status設置爲404.因此,當在瀏覽器中給出不存在的URL時,首先接收Http狀態302,然後是Http狀態400。
要求是省略此HTTP狀態302.我嘗試了一些替代方案,然後我實現它類似如下:
HttpContext.Current.Response.Redirect(url, false);
if (url.Contains("404.aspx"))
{
HttpContext.Current.Response.StatusCode = 404;
}
HttpContext.Current.ApplicationInstance.CompleteRequest();
現在,錯誤頁面重定向和HTTP狀態代碼404是正確的,但在瀏覽器的url字符串中,有問題的網址仍然存在。我期待有url {hostname} /404.aspx,但是我仍然在瀏覽器中看到錯誤的網址,但顯示了404.aspx。所以,它就像一個Server.Redirect。
這是預期的行爲?如何強制瀏覽器在URL字符串上顯示404.aspx,但仍然只返回Http狀態404而沒有Http狀態302?
Thanx