我尝试编写URL重写规则以强制进行HTTPS连接。除非请求使用localhost(例如http://localhost/mysite
),否则应始终发生这种情况。
规则配置如下:
<rule name="Redirect to https" enabled="true" stopProcessing="true">
<match url="(.*)" negate="false" />
<conditions trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{URL}" pattern="localhost" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
我还尝试使用^ localhost和^ localhost /(.*)作为URL条件的模式,没有任何帮助。 有没有人知道为什么这不起作用,这个问题的解决方案应该是什么?
答案 0 :(得分:38)
您的代码应该是这样的
<rule name="Redirect to https" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="localhost" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>