2012-06-03 45 views
1

Web.config文件:Asp.net自定義404工作不使用Intelligencia重寫

<customErrors mode="On"> 
     <error statusCode="404" redirect="~/Page-Introuvable" /> 
    </customErrors> 

Rewriter.config:

<rewriter> 
    <rewrite url="~/Page-Introuvable" to="~/PageNotFound.aspx" /> 
</rewriter> 

當鍵入此unexisting網址:

http://example.com/qwerty.aspx

我能看到我的錯誤404自定義頁面

當鍵入此:

http://example.com/qwerty(沒有的.aspx)

我得到服務器頁面404錯誤

我會喜歡在這種情況下知道如何顯示我的自定義頁面。

非常感謝!

ANSWER

將此添加到web.config部分,System.webServer:

<httpErrors errorMode="Custom"> 
     <clear/> 
     <error statusCode="404" responseMode="Redirect" path="PageNotFound.aspx"/> 
    </httpErrors> 
+0

這對我很好。謝謝:) – DigitalRayne

回答

2

<customErrors>只是由asp.net(ASPX,ashx的...)處理的擴展,對於所有別人用<httpErrors>http://www.iis.net/ConfigReference/system.webServer/httpErrors

<system.webServer> 
    <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="ExecuteURL" defaultPath="/error.aspx?code=404"> 
     <clear/> 
     <error statusCode="404" responseMode="ExecuteURL" path="/error.aspx?code=404"/> 
    </httpErrors> 
</system.webServer> 
+0

感謝您的回答,唯一的問題是defaultPath默認是鎖定的。我在我的問題中寫了一個有效的答案。這幫助我很多! – JoRouss

+0

@JoRouss:您的歡迎,順便說一句,它是您解鎖的最佳利益(更好的託管公司在默認情況下執行此操作),並始終指定defaultPath,否則您將應用程序的內部工作暴露給潛在的惡意用戶 - 它的安全考慮。 –