2017-04-23 37 views
1

我试图在我的网站(所有域)上强制使用HTTP,除了我的测试域(下面),但重写规则每次都在踢,无论何种组合我尝试的规则。请有人建议我可能会出错的地方?IIS Azure force HTTPS否定规则不起作用

<rewrite> 
    <rules> 
    <rule name="FORCEHTTPS" enabled="true" stopProcessing="true"> 
     <match url="^(.*)$" ignoreCase="true" /> 
     <conditions logicalGrouping="MatchAll"> 
     <add input="{HTTPS}" pattern="off" /> 
     <add input="{HTTP_HOST}" pattern="^testwebsite1-test.azurewebsites.net$" negate="true" /> 

     </conditions> 
     <action type="Redirect" url="HTTPS://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" /> 
    </rule> 
    </rules> 
</rewrite> 
+0

不应该'pattern'像'testwebsite1-test.azurewebsites.net。*'这样的东西吗? –

+0

IIS.Net建议这适用于本地主机negate 并且当我告诉我的规则不否定我得到无限重定向,所以我怀疑该模式是精细。 –

回答

1

之后Amor-MSFT's评论上面我决定尝试再次在不同的PC上重定向,并确实发现它的工作。

然后我试图通过改变URL来修改重定向,并且无法让它再次工作until I cleared my cache

我使用Google Chrome并发现permanent redirects被浏览器缓存。

希望这可以帮助其他有此问题的人。

+0

感谢您的反馈。请将您的答复标记为答案。已标记的线程将更容易检索。 – Amor

+0

再次感谢您的帮助,我明天会这样做,因为它不会让我今天标记它。 –

1

我还没有在您的配置中发现任何错误。我在Azure Web App上测试了它,它可以将http请求重定向到https,除了在条件部分中配置的一个域以外的所有域。

  1. 请确保您添加了<system.webServer>标记下的配置。
  2. 请检查您在条件部分配置的主机名是否正确。