IIS配置:自定义错误页面&不允许访问目录 访问不存在目录、访问目录、访问不存在页面自动跳转

IIS配置:自定义错误页面&不允许访问目录 访问不存在目录、访问目录、访问不存在页面自动跳转

原创:邓有权

转载请注明

Demo:网站结构如下图:

IIS配置:自定义错误页面&不允许访问目录 访问不存在目录、访问目录、访问不存在页面自动跳转

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

http://msdn.microsoft.com/en-us/library/system.web.configuration.customerrorssection.redirectmode.aspx

原创:邓有权转载请注明

demo代码不知道怎么上传,如有需要可以联系 youquan.deng@gmail.com

原创:邓有权转载请注明