C# 设置httpmodule以防止某些页面出现404
我目前正在开发一个.NETC web应用程序。我已经从网站上删除了几个.aspx,删除了它们,如page1.aspx、page2.aspx等 我现在要做的是创建一个http模块,当用户浏览器调用page1.aspx或page2.aspx时,它不是返回404状态码,而是返回已删除页面的相应状态码,并将用户重定向到主页,而不是错误页面C# 设置httpmodule以防止某些页面出现404,c#,asp.net,http-status-code-404,httpmodule,C#,Asp.net,Http Status Code 404,Httpmodule,我目前正在开发一个.NETC web应用程序。我已经从网站上删除了几个.aspx,删除了它们,如page1.aspx、page2.aspx等 我现在要做的是创建一个http模块,当用户浏览器调用page1.aspx或page2.aspx时,它不是返回404状态码,而是返回已删除页面的相应状态码,并将用户重定向到主页,而不是错误页面 实现这一点的最佳方法是什么,是通过http模块吗?如果是,我会设置这样的模块吗?如果只有几个页面,您可以将它们保留在那里,并使用Response.StatusCode
实现这一点的最佳方法是什么,是通过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
}
}
我认为这是最好的办法。 其实很简单。把这个放到你的网络配置里
<customErrors mode="On" defaultRedirect="~/TheDefaultErrorPage.aspx">
<error statusCode="404" redirect="The404ErrorPage.aspx"/>
</customErrors>
然后,如果您愿意,还可以很容易地添加更多错误