如何处理404错误

时间:2011-09-19 18:30:29

标签: c# asp.net iis error-handling http-status-code-404

如何处理所有 404错误?

如果我转到不存在的页面

示例:http://www.example.com/Idontexist.aspx

工作正常..

但是,http://www.example.com/Nothere.nopehttp://www.example.com/NotHere出现404.0错误,我认为是由于.nope没有在IIS中注册,但是有没有办法在web.config或代码中处理?

3 个答案:

答案 0 :(得分:4)

这可能是因为notthere.nope没有通过.NET。根据IIS的版本和配置,ASP.NET仅用于执行具有特定扩展名的请求。

理想情况下,您应该尝试在IIS级别处理404 - 没有必要让它在应用程序堆栈中冒泡。这是我的建议。

如果你真的希望ASP.NET能够处理这个问题,你可以使用IIS 7对here进行了很好的记录。

如果您使用的是IIS 6,则可以使用通配符映射到ISAPI扩展,如here所述。

答案 1 :(得分:0)

您可以,但必须在服务器级别执行此操作。根据您的网络服务器和/或IIS版本,您执行此操作的如何的确切内容可能完全不同。不幸的是,我不能给你一个:“去做这个”答案,随着时间的推移你需要进行修改,服务器平台也会发展。

答案 2 :(得分:0)

两者。最简单的方法是安装 http://www.iis.net/download/urlrewrite 并配置它重定向。假设您想要各种“有趣”的URL,那将是最简单的。 web.config部分如下所示:

    <system.webServer>
      <rewrite>
        <rules>
          <rule name="My404" stopProcessing="true">
            <match url="^/Nothere\.nope" />
            <action type="Rewrite" url="/NotHere" />
          </rule>
        </rules>
      </rewrite>
    </system.webServer>