IIS: перенаправить HTTP на HTTPS для всех URL-адресов

Для нашего веб-сайта (Windows Server 2016 Datacenter, IIS 10) мы используем два разных URL - скажем, url1.com и url2.com используя тот же корневой каталог и тот же пул приложений.

В нашем web.config мы определяем перенаправление

<rules>
  <rule name="Redirect to HTTPS" stopProcessing="true" xdt:Transform="Insert" >
    <match url="^(.*)$" />
    <conditions>
      <add input="{HTTPS}" pattern="^OFF$" />
      <add input="{HTTP_HOST}" matchType="Pattern" pattern="^localhost(:\d+)?$" negate="true" />
      <add input="{HTTP_HOST}" matchType="Pattern" pattern="^127\.0\.0\.1(:\d+)?$" negate="true" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
  </rule>
</rules>

Это работает для всех запросов, таких как url1.com , http: // url1.com и http://www.url1.com , но не для url2.com . Ввод url2.com в нашем браузере приводит к http://url2.com и, следовательно, к ошибке 403.

Что не так?

0
задан 5 May 2020 в 14:01
1 ответ

Некоторое время раздумий решило нашу проблему: подробный (IIS) номер ошибки был 403.4 - требуется SSL. Это означает, что мой запрос уже был отклонен IIS и не дошел до нашего сайта. Таким образом, нельзя было применить перенаправление на https:// для url2.com.

В диспетчере IIS я обнаружил, что для этого URL-адреса выбран вариант «Требуется SSL». Снятие этого флажка решило мою проблему.

0
ответ дан 6 May 2020 в 09:28

Теги

Похожие вопросы