繁体   English   中英

设置httpmodule以防止某些页面出现404

[英]set up httpmodule to prevent 404's for certain pages

我目前正在开发.net c#Web应用程序。 我已经从网站上删除了几个.aspx(删除了它们),例如page1.aspx,page2.aspx等。

我现在想做的是创建一个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>

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM