我剛剛發佈了一個ASP.NET MVC網站,我在其中構建了自定義錯誤頁面。下面是我如何實現它們:覆蓋虛擬主機的默認錯誤頁面
在ErrorController:
在web.config中:
<customErrors mode="On" defaultRedirect="~/500">
<error statusCode="403" redirect="~/403"/>
<error statusCode="401" redirect="~/401"/>
<error statusCode="404" redirect="~/404"/>
<error statusCode="409" redirect="~/409"/>
<error statusCode="500" redirect="~/500"/></customErrors>
當然,錯誤的請求路由到NOTFOUND方法,等等。理論上,它應該起作用。
但是,我面臨一個問題:現在,我已將我的網站發佈給我的主機(GoDaddy),我注意到返回HTTP狀態的錯誤代碼會導致我的自定義錯誤頁面被默認GoDaddy的。
我該如何解決這個問題?當然,最簡單的解決方案是返回200狀態碼,但我更願意返回真正的錯誤代碼(對於SEO等)。
+1提醒response.TrySkipIisCustomErrors - http://stackoverflow.com/questions/1706934/asp-net-mvc-app-custom-error-pages-not-displaying-in-shared-hosting-environment has一個更詳細的答案和鏈接到Rick Strahl博客上的有用條目 - http://www.west-wind.com/weblog/posts/745738.aspx – KevD 2012-11-06 11:02:29