Множественные привязки http к HTTPS - PullRequest
0 голосов
/ 06 мая 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

У меня есть приведенное ниже правило, которое переводит эти сайты на основной URL-адрес

<rule name="PrimarySite" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
      <conditions logicalGrouping="MatchAny">
        <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, поэтому добавил новое правило ( только для сайта 1, но я бы сделал то же самое для сайта 2).

    <rule name="site1HTTPS" stopProcessing="true">
                <match url="(.*)" />
                <conditions trackAllCaptures="true" logicalGrouping="MatchAny">
                  <add input="{HTTP_HOST}" pattern="site1.co.uk" />
                  <add input="{HTTP_HOST}" pattern="www.site1.co.uk" />
                  <add input="{HTTP_HOST}" pattern="site1.com" />
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" url="https://{C:1}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent"/>
            </rule>

Когда я добавляю это, я получаю ошибку перенаправления l oop и пробовал разные комбинации, но это просто не работает.

Что я пропустил (я должен всего правил)?

1 Ответ

0 голосов
/ 07 мая 2020

Используйте MatchAny для 3 {HTTP_HOST} и {HTTPS} испортят лог перенаправления. c.

Вы можете объединить 3 условия в одно, чтобы {HTTP_HOST} и {HTTPS} могли использоваться с «MatchAll» рядом.

<rule name="test">
       <match url="(.*)" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="(site1|site2)\.(com|co.uk)" />
            <add input="{HTTPS}" pattern="^off$" />
        </conditions>
      <action type="Rewrite" url="https://{HTTP_HOST}{REQUEST_URI}" />

С уважением, Сэм

...