我有一个由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回答,但这对我不起作用。
答案 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,则忽略