我要求我们的网络主机在我们的网站上设置 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>