http://www.cnblogs.com/youquan-deng/archive/2012/12/17/IISCustomErrorPages.html
Demo:网站结构如下图:
Help.aspx为自定义错误页面,index.aspx为默认页面。
参考了很多资料,都不能达到目的。
只有访问不存在的页面,如访问./index1.aspx,可以跳转到自定义错误页面。
访问目录的话,不管是不是存在的,都不会跳转。
请参考我的Web.config配置,详细如下(用途见注释):
<?xmlversion="1.0"?>
原创:邓有权转载请注明
<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
原创:邓有权转载请注明
<configuration>
<system.web>
<compilationdebug="false"targetFramework="4.0" />
<!--
说明:mode打开,defaultRedirect配置好
一般情况下,只配置这个按道理应该所有错误都会跳到自定义的错误页面
但是,有时候可能访问目录或不存在的目录,不会跳转到自己错误页面
-->
<customErrorsmode="On"defaultRedirect="/CustomErrorPages/error/help.aspx"></customErrors>
</system.web>
<system.webServer>
<!--
说明:禁止访问目录
网上解决目录访问的问题,大多都是把页面提示的解决方法贴了上去,即enable设为true
那样,是不报错,但是会显示目录,不会跳转到自定义的错误页面
-->
<directoryBrowseenabled="false"/>
原创:邓有权转载请注明
<!--
说明:设置默认文档
网上解决目录访问的问题,也提到了这个,但是正确设置也不会跳转到自定义的错误页面
-->
<defaultDocument>
<files>
<!--
说明:清楚所有,配置唯一默认页面
-->
<clear/>
<addvalue="/index.aspx"/>
</files>
</defaultDocument>
<!--
说明:errorMode设置为自定义
网上解决目录访问的问题,不存在的目录或存在的目录,访问的话,自动跳转到自定义的错误页面
有时或许并不需要这么麻烦的配置,仅供参考
-->
<httpErrorserrorMode="Custom">
<!--
说明:根据需要移除指定的HTTP响应代码,设置为自定义的错误页面
-->
<removestatusCode="403"/>
<removestatusCode="404"/>
<errorstatusCode="403"path="/CustomErrorPages/error/help.aspx"responseMode ="Redirect"/>
<errorstatusCode="404"path="/CustomErrorPages/error/help.aspx"responseMode ="Redirect"/>
</httpErrors>
</system.webServer>
</configuration>
原创:邓有权转载请注明
Refer:
http://social.msdn.microsoft.com/Forums/zh-CN/295/thread/dc09b3bb-fcbf-4444-907d-0e1eec6e911e
原创:邓有权转载请注明
demo代码不知道怎么上传,如有需要可以联系 youquan.deng@gmail.com