如何將 HTTP IIS7 回應「403 禁止」重新導向到 HTTPS?

如何將 HTTP IIS7 回應「403 禁止」重新導向到 HTTPS?

我要求我們的網站主機在我們的網站上設定 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>

相關內容