【问题标题】:set up httpmodule to prevent 404's for certain pages设置 httpmodule 以防止某些页面出现 404
【发布时间】:2012-01-19 19:01:09
【问题描述】:

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

我现在要做的是创建一个 http 模块,当用户浏览器调用 page1.aspx 或 page2.aspx 时,不是返回 404 状态代码,而是为已删除页面返回适当的状态代码并重定向用户转到主页,而不是错误页面。

实现这一点的最佳方法是什么,是通过 http 模块吗?如果是,我会设置这样的吗?

【问题讨论】:

    标签: c# asp.net http-status-code-404 httpmodule


    【解决方案1】:

    如果只有几页,您可以用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
        }
    }
    

    【讨论】:

      【解决方案2】:

      我认为这是最好的方法。 它实际上非常简单。只需将其放入您的 webconfig 中即可。

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

      如果你愿意,添加更多错误也很容易。

      【讨论】:

        猜你喜欢
        • 2015-02-02
        • 1970-01-01
        • 2013-08-04
        • 1970-01-01
        • 2013-05-28
        • 1970-01-01
        • 1970-01-01
        • 2010-12-10
        • 2012-08-08
        相关资源
        最近更新 更多