Правила перезаписи IIS для принудительного применения HTTPS и одного из нескольких канонических доменов

Сайт, который я ищу, имеет несколько канонических доменов - например,

example.com
example.com.au
example.co.nz

а также некоторые «другие» домены, которые необходимо перенаправить на один из канонических доменов (например, example.us должен перейти на example.com).

Все сайты должны быть доступны через HTTPS.

Можно ли написать краткое правило для каждого канонического домена, которое перенаправляет пользователя в этот домен, если и только если

  • Они не относятся к каноническому домену (например, www.example.com, example.us) ИЛИ
  • Подключение не HTTPS

Я думаю, что могу понять, как это сделать с помощью нескольких правил, но это быстро станет неудобным (поэтому краткие правила были бы лучше)


person eddiewould    schedule 07.04.2018    source источник


Ответы (1)


Я добился этого с помощью следующего (вставил несколько переменных в input с разделителем #):

<rule name="Redirect to example.co.nz" enabled="true" stopProcessing="true">
  <match url="(.*)" />
  <conditions  logicalGrouping="MatchAll">
    <add input="{HTTPS}#{HTTP_HOST}" pattern="(^OFF)|(^.*#www\.)" />
    <add input="{HTTP_HOST}" pattern="^(www\.)?example.co.nz$" />
  </conditions>
  <action type="Redirect" url="https://example.co.nz/{R:1}" />
</rule>
person eddiewould    schedule 07.04.2018