2010-12-17 39 views
2

我正在使用Umbraco開發一個Web應用程序。我創建了一個名爲PageNotFound的內容,並在umbracoSettings.config文件的錯誤部分中放置了404錯誤404的節點ID。問題在於,在IIS 7中,IIS始終在web.config中查找HttpErrors部分,並且沒有注意到umbracoSettings.config。在Umbraco中設置errorPage

我該怎麼辦?

回答

16

在你的web.config(system.webServer部分),你可以告訴該網站通過所有錯誤通過對應用程序處理的:

<httpErrors existingResponse="PassThrough" /> 

這樣做的缺點是一把umbraco不處理任何事情但沒有找到.aspx頁面。

你可以使它更好地做這樣的事情,而不是:

<httpErrors errorMode="Custom"> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/non-existing-page.aspx" responseMode="ExecuteURL" /> 
</httpErrors> 

不存在的,page.aspx中尚不存在一把umbraco,所以它觸發404(因爲它有ASPX擴展)和.. presto:Umbraco完美地處理404!

+0

謝謝。但實際的問題是,我做了第二個建議,但在我定義的「未找到頁面」頁面中,我使用XSLT加載了一些bloks,當我直接瀏覽該頁面時,它們出現,但當頁面顯示輸入無效URL ,那些塊不會出現! – Nami 2010-12-17 15:28:38

+0

我不知道這是爲什麼,似乎你的XSLT中的邏輯可能是錯誤的。如果您直接訪問yoursite.com/non-existing-page.aspx,它們是否會顯示? – sebastiaan 2010-12-17 15:34:23

+0

是的,他們出現!!!!! – Nami 2010-12-17 15:42:49

3

500錯誤沒有工作,直到我說

existingResponse="Replace" 

<httpErrors errorMode="Custom" existingResponse="Replace"> 
    <remove statusCode="404" subStatusCode="-1" /> 
    <remove statusCode="500" subStatusCode="-1" /> 
    <error statusCode="404" path="/non-existing-page.aspx" responseMode="ExecuteURL" /> 
    <error statusCode="500" path="error.html" responseMode="File" /> 
</httpErrors> 
+2

只是一個小問題,500錯誤的路徑屬性是一個物理路徑。所以如果你在視圖文件夾中有error.html文件,你可以使用path =「views \ error.html」(注意反斜槓)。 – 2015-02-11 15:23:13