我尝试使用web.config网址重写规则在Azure网站上强制HTTP到HTTPS。我想要一个包含以下两种情况的规则:
HTTP://site.domain.com/sitefolder到HTTPS://site.domain.com/sitefolder
HTTP://site.domain.com/sitefolder/default.aspx到HTTPS://site.domain.com/sitefolder/default.aspx
如果我关注this guide,我可以强制HTTP加入HTTPS,但网址会更改为HTTPS://site.domain.com,而不会附加/ sitefolder或/sitefolder/default.aspx。
这就是我现在所拥有的。强制使用HTTPS,但不包括完整的URL:
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="Off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
答案 0 :(得分:5)
这是在Azure网站上正确重定向到HTTPS的简单规则:
<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}"/>
</rule>
您可以在此处测试:http://double.azurewebsites.net(请注意链接中的HTTP)我没有在此定义任何其他规则。上面的规则正确地重定向到深层链接,即http://double.azurewebsites.net/Home/About