TL; DR更改我的web.config文件不执行任何操作,并且在所有域上强制使用HTTPS,尽管从web.config中删除了整个规则
长版:
我之前阅读过本教程,介绍如何在azure web-app上配置https并强制它仅提供https内容:
https://azure.microsoft.com/sv-se/documentation/articles/web-sites-configure-ssl-certificate/
现在,我想更改以便某些子域不会强制使用https,我会读到它并被告知您可以将此行添加到您的web.config中以删除某些域的规则:
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="^subdomain\.mydomain\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
这一切似乎都很好,但我无法让它发挥作用。现在,这是奇怪的事情:
作为一个故障排除步骤,我从web.config中删除了整个“Force HTTPS”规则,并且azure STILL强制在所有域上使用HTTPS。它仍然适用于普通域,但是对于没有证书文件的所有子域我在尝试连接时都会收到错误响应。这就好像web.config文件被缓存一样,这意味着所有域都在寻找证书文件,那些找不到匹配它们的域只是报告错误。
当我尝试访问子域名时,这是我得到的回复:
答案 0 :(得分:1)
查看您的web.config文件,在最后一行中设置redirectType="Permanent"
。我怀疑你所看到的是你的浏览器缓存重定向设置的工件。