2011-12-13 61 views
0

我目前正在處理.net c#web應用程序。我已經從網站中刪除了幾個.aspx(刪除它們),例如page1.aspx,page2.aspx等。設置httpmodule,以防止某些網頁的404's

我現在想要做的是創建一個http模塊,當調用page1.aspx或page2.aspx時通過用戶瀏覽器,而不是返回404狀態碼,返回已刪除頁面的適當狀態碼並將用戶重定向到主頁,而不是錯誤頁面。

實現這一目標的最好方法是通過http模塊實現,如果是這樣,我會設置這樣的嗎?

回答

0

如果只有幾頁,您可以使用Response.StatusCode = 410和簡單的window.location = basepage將它們留在那裏。

如果它是一個動態的列表,可以變得很大,我將它放到你的應用程序錯誤處理程序:

protected void Application_Error(Object sender, EventArgs e) 
{ 
    if (/*requesting a deleted resource*/) 
    { 
     //return status 410 and a javascript redirect 
    } 
} 
0

我覺得這是最好的辦法。 它其實很簡單。只需把它放在你的webconfig中。

<customErrors mode="On" defaultRedirect="~/TheDefaultErrorPage.aspx"> 
    <error statusCode="404" redirect="The404ErrorPage.aspx"/> 
</customErrors> 

然後,如果你想要添加更多的錯誤也很容易。