如何处理所有 404错误?
如果我转到不存在的页面
示例:http://www.example.com/Idontexist.aspx
工作正常..
但是,http://www.example.com/Nothere.nope或http://www.example.com/NotHere出现404.0错误,我认为是由于.nope没有在IIS中注册,但是有没有办法在web.config或代码中处理?
答案 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>