我试图强制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/
有什么想法吗?
提前致谢!
答案 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>