如何从IIS重定向规则中排除Azure插槽

时间:2015-04-06 11:15:56

标签: azure iis url-rewriting

我有一个由Azure托管的网站,我有2个主要插槽和分段。我写了一个将非www重定向到www的条件如下:

 <rule name="WWW Rewrite" enabled="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\." />
      </conditions>
      <action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>

我的问题是这个规则也适用于暂存插槽,就像我输入https://mydomain-staging.azurewebsites.net它将我重定向到https://www.mydomain-staging.azurewebsites.net所以我无法测试我的暂存插槽!。

我需要编写规则来排除以azurewebsites.net

结尾的广告位

我跟着this回答,但这对我不起作用。

2 个答案:

答案 0 :(得分:2)

我通过添加这个条件来解决它:

  <rule name="WWW Rewrite" enabled="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTP_HOST}" negate="true" pattern="^www\." />
        <add input="{HTTP_HOST}" negate="true" pattern="^.*\.azurewebsites\.net$" />
      </conditions>
      <action type="Redirect" url="https://www.{HTTP_HOST}/{R:0}" appendQueryString="true" redirectType="Permanent" />
    </rule>

答案 1 :(得分:1)

有两种方法。您可以指定要重定向的域,而不是全部(。*)。 另一种方法是设置一个条件,如果主机名匹配* .azurewebsites.net,则忽略