Создайте одно правило для поддержки нескольких URL-адресов - PullRequest
0 голосов
/ 05 мая 2020

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>

Кажется, все работает, но есть ли способ уменьшить конфигурацию, чтобы я мог поддерживать ее в рамках одного правила (или 2 правил, если я добавлю в www.site2.com) . Итак, я сделал что-то вроде этого

<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-адрес.

...