IIS配置:自定義錯誤頁面&不允許訪問目錄 訪問不存在目錄、訪問目錄、訪問不存在頁面自動跳轉
原創:鄧有權
轉載請注明
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
原創:鄧有權轉載請注明