在Azure上强制HTTPS并附加URL

时间:2014-09-30 00:05:09

标签: azure url-rewriting

我尝试使用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>

1 个答案:

答案 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