我有asp.net自定義錯誤,他們正在工作的偉大:需要SSL,但仍保持asp.net自定義錯誤
<customErrors mode="RemoteOnly" defaultRedirect="~/Error/Index/500">
<error statusCode="403" redirect="~/Error/Index/403" />
<error statusCode="404" redirect="~/Error/Index/404" />
<error statusCode="500" redirect="~/Error/Index/500" />
<error statusCode="502" redirect="~/Error/Index/502" />
<error statusCode="503" redirect="~/Error/Index/503" />
<error statusCode="504" redirect="~/Error/Index/504" />
</customErrors>
此外,SSL證書已成功安裝和我的網站被訪問的就好了http和https。
問題出現時,我得到了要求SSL的要求。該網站的http鏈接已經分發給1000個用戶。所以我們需要任何流向http地址的流量都被正常地重定向到https主頁。
我試圖讓重定向工作的任何解決方案都會打破自定義錯誤。
我有這個測試網址,生成一個錯誤,以測試我的自定義錯誤頁面〜/錯誤/測試。它使用mvc佈局顯示我的自定義錯誤頁面。
無論我如何設置它,當我在IIS的SSL設置中打開Require SSL時,如果打開任何http自定義錯誤(以便啓用403.4重定向),它甚至不會嘗試顯示我的自定義500頁面。它顯示了通用的http 500頁面。
我希望403.4處理在http級別的重定向和500在我的自定義錯誤頁面處理在asp.net級別。順便說一句,它不是一個頁面,而是一個使用會話變量中的.net異常的控制器。
我該如何做到這一點?
你「打開需要ssl」嗎?通常這是爲了cookies等。您需要執行UrlRewrite來強制請求到HTTPS,並且需要在服務器上安裝UrlRewrite模塊。 –
@BenDuguid - 不,你需要*重定向*而不是*重寫*。當然,UrlRewrite模塊可以做到這一點。 – NightOwl888
還有'RequireHttps'屬性(您可以註冊爲全局過濾器)以及通過IIS禁用HTTP的功能。所以,有很多可能的方法可以讓你「需要HTTPS」 - 我們需要知道你嘗試過哪一種。 – NightOwl888