如何将 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>

相关内容