创建一个规则来维护多个URL

时间:2020-05-05 11:35:56

标签: iis iis-8 windows-server-2012-r2

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。

0 个答案:

没有答案