【发布时间】:2018-02-12 19:39:29
【问题描述】:
我发现了两种不同的重写规则来强制 IIS 托管网站使用 HTTPS。我有一个将托管在使用此规则的 Azure 应用服务上的网站。
选项 1:
<rewrite>
<rules>
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
选项 2:
<rewrite>
<rules>
<rule name="Redirect to https">
<match url="(.*)"/>
<conditions>
<add input="{HTTPS}" pattern="Off"/>
<add input="{REQUEST_METHOD}" pattern="^get$|^head$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
问题:
- 选项 1 中将 ignoreCase 设置为 false 的原因是什么?
- REQUEST_METHOD 输入是否将安全性限制为选项 2 中的 GET 和 HEAD?
- appendQueryString="true" 是否将查询字符串保持在重定向状态?
- 还有其他不属于其中的选项吗?
【问题讨论】:
标签: azure iis url-rewrite-module