2011-12-13 66 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> 

然后,如果你想要添加更多的错误也很容易。