2011-09-19 130 views
1

我如何处理ALL 404错误?如何处理404错误

如果我转到了一个不存在

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

它工作正常..

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

+0

开玩笑的回答:http://secretgeek.net/custom_errors_mvc.asp :) – Domenic

+0

那是一个好主意,扰乱了我的QA部门,或让自己笑燃 – jaekie

回答

4

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

理想情况下,你应该尝试处理404的在IIS级别 - 存在让它泡了那么远的应用程序堆栈是没有意义的。这将是我的建议。

如果你真的想让ASP.NET能够处理这个,你可以如果你使用的是IIS 7,那么在here上有一个很好的写法。

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

0

你可以,但你必须在服务器级别做到这一点。根据您的网络服务器和/或IIS版本,的要求如何您可以完全不同。不幸的是,我不能给你一个:“去做这个”的答案,而且随着时间的推移和服务器平台的发展,你有可能需要做出修改。

0

两者。最简单的方法是安装 http://www.iis.net/download/urlrewrite 并将其配置为重定向。假设你想要各种“有趣”的网址,那将是最简单的。在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>