在Azure网站上强制https - web.config - Laravel 4

时间:2015-10-30 17:40:20

标签: azure iis ssl laravel-4

我试图强制https用于所有流量。

我尝试过在互联网和微软网站上找到的大量web.config规则,但似乎都没有重定向到https。

我不知道某些事情是否发生了变化,导致所有这些规则无效,但无论它是否有效。

以下是我迄今为止所检查的内容:

 <rule name="Force HTTPS" enabled="true" stopProcessing="true">
    <match url="(.*)" ignoreCase="false" />
       <conditions>
          <add input="{HTTPS}" pattern="off" ignoreCase="true"/>
       </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />

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

自: https://azure.microsoft.com/en-us/documentation/articles/web-sites-configure-ssl-certificate/

有什么想法吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

好的 - 浪费了2个小时,但答案非常微妙。

我在azure网站上运行laravel4,要使其工作,需要两个web.config文件:一个在&#34; site / wwwroot / public&#34;文件夹和&#34; site / wwwroot&#34;中的一个。

我的问题是我忘记了这一点,只修改了公用文件夹中的那个。

解决方案是将规则添加到site / wwwroot中的web.config文件中,而不是添加到site / wwwroot / public中。

我还没有测试过我之前提到的所有规则,但是使用了微软建议的那些规则并且它有效。

祝你好运。

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