Windows Server 2012
我有1个IIS容器,其中一个域有4个不同的URL,如下所示总共有2个域(设置为绑定)
www.site1.com
site1.com
www.site1.co.uk
site1.co.uk
www.site2.com
site2.com
www.site2.co.uk
site2.co.uk
www.site1.com-是主域,这意味着上述URL的任何组合都必须将用户带到www.site1.com或www.site2.com
以下是我对站点1的配置,但是站点2本质上是相同的。为简洁起见,未列出www.Site2.com
<rule name="site1CoUk" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="site1.co.uk" />
</conditions>
<action type="Redirect" url="http://www.site1.com/{R:0}" />
</rule>
<rule name="site1WwwCoUk" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.site1.co.uk" />
</conditions>
<action type="Redirect" url="http://www.site1.com/{R:0}" />
</rule>
<rule name="site1Com" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="site1.com" />
</conditions>
<action type="Redirect" url="http://www.site1.com/{R:0}" />
</rule>
一切似乎都有效,但是有一种方法可以减少配置,以便我可以在一个规则(或如果我添加到www.site2.com中添加2个规则)内维护它。所以我做了这样的事情
<rule name="site1CoUk" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="site1.co.uk" />
<add input="{HTTP_HOST}" pattern="www.site1.co.uk" />
<add input="{HTTP_HOST}" pattern="site1.com" />
</conditions>
<action type="Redirect" url="http://www.site1.com/{R:0}" />
</rule>
但是一旦我添加第二个HTTP_HOST模式,这将不起作用。
主要原因是,随着我添加更多的URL,在每个规则下维护比在每次添加新规则都更容易?最终,该站点将变为https,所以我认为我可以更改URL。