我目前正在处理.net c#web应用程序。我已经从网站中删除了几个.aspx(删除它们),例如page1.aspx,page2.aspx等。设置httpmodule,以防止某些网页的404's
我现在想要做的是创建一个http模块,当调用page1.aspx或page2.aspx时通过用户浏览器,而不是返回404状态码,返回已删除页面的适当状态码并将用户重定向到主页,而不是错误页面。
实现这一目标的最好方法是通过http模块实现,如果是这样,我会设置这样的吗?
我目前正在处理.net c#web应用程序。我已经从网站中删除了几个.aspx(删除它们),例如page1.aspx,page2.aspx等。设置httpmodule,以防止某些网页的404's
我现在想要做的是创建一个http模块,当调用page1.aspx或page2.aspx时通过用户浏览器,而不是返回404状态码,返回已删除页面的适当状态码并将用户重定向到主页,而不是错误页面。
实现这一目标的最好方法是通过http模块实现,如果是这样,我会设置这样的吗?
如果只有几页,您可以使用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
}
}
我觉得这是最好的办法。 它其实很简单。只需把它放在你的webconfig中。
<customErrors mode="On" defaultRedirect="~/TheDefaultErrorPage.aspx">
<error statusCode="404" redirect="The404ErrorPage.aspx"/>
</customErrors>
然后,如果你想要添加更多的错误也很容易。