我要求我們的網站主機在我們的網站上設定 SSL,這樣 HTTP 請求就會自動重新導向到 HTTPS。
他們說這已經完成了,但是當透過 HTTP 訪問該網站時,我現在得到:
Response HTTP/1.1 403 Forbidden
HTTPS 運作正常。
我要求更正此問題,但我被告知這不是伺服器設定(由他們管理),需要透過 web.config(我有權訪問)進行修復。
我嘗試使用以下更改來捕獲此 403 並重定向它,但沒有成功:
<system.web>
<customErrors defaultRedirect="/test.html" mode="On"></customErrors>
</system.web>
<httpErrors errorMode="Custom">
<remove statusCode="403" subStatusCode="-1" />
<error statusCode="403" prefixLanguageFilePath="" path="/test.html" responseMode="ExecuteURL" />
</httpErrors>
我該如何解決這個問題,以便 HTTP 將重定向到(實際上需要)HTTPS?
答案1
結果主機必須先取消選取“需要 SSL”,然後我才能透過以下方式重新導向 web.config 中的流量:
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
</rule>