我正在使用Umbraco開發一個Web應用程序。我創建了一個名爲PageNotFound的內容,並在umbracoSettings.config文件的錯誤部分中放置了404錯誤404的節點ID。問題在於,在IIS 7中,IIS始終在web.config中查找HttpErrors部分,並且沒有注意到umbracoSettings.config。在Umbraco中設置errorPage
我該怎麼辦?
我正在使用Umbraco開發一個Web應用程序。我創建了一個名爲PageNotFound的內容,並在umbracoSettings.config文件的錯誤部分中放置了404錯誤404的節點ID。問題在於,在IIS 7中,IIS始終在web.config中查找HttpErrors部分,並且沒有注意到umbracoSettings.config。在Umbraco中設置errorPage
我該怎麼辦?
在你的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!
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>
只是一個小問題,500錯誤的路徑屬性是一個物理路徑。所以如果你在視圖文件夾中有error.html文件,你可以使用path =「views \ error.html」(注意反斜槓)。 – 2015-02-11 15:23:13
謝謝。但實際的問題是,我做了第二個建議,但在我定義的「未找到頁面」頁面中,我使用XSLT加載了一些bloks,當我直接瀏覽該頁面時,它們出現,但當頁面顯示輸入無效URL ,那些塊不會出現! – Nami 2010-12-17 15:28:38
我不知道這是爲什麼,似乎你的XSLT中的邏輯可能是錯誤的。如果您直接訪問yoursite.com/non-existing-page.aspx,它們是否會顯示? – sebastiaan 2010-12-17 15:34:23
是的,他們出現!!!!! – Nami 2010-12-17 15:42:49