IIS 8.5 URL Переписывает просто работу привычки: правила не имеют никакого влияния вообще

Я пытаюсь настроить http к https, переписывают в IIS 8.5 с помощью Переписать модуля. Абсолютно ничто, что я попробовал, не имеет влияния вообще. URL имеет форму: http://users-dev.somedomain.com. Правило, в настоящее время создаваемое в web.config:

<rewrite>
  <rules>
    <rule name="Redirect to HTTPS" stopProcessing="true">
       <match url="(.*)" />
       <conditions>
          <add input="{HTTPS}" pattern="^OFF$" />
       </conditions>
       <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
  </rules>
</rewrite>

И я попробовал много изменений с тех пор. Ранее переделывание URL переписывает, я видел различные правила вступить в силу, но это кажется теперь, когда ничто, что я делаю, не имеет влияния вообще... Я подозреваю, что что-то произошло с IIS. Я также попробовал перезапуск IIS, напрасно...

Какие-либо идеи?

2
задан 31 July 2015 в 01:50
3 ответа

Оказалось, что в настройках SSL сайтов стоит галочка «Требовать SSL». Если этот флажок установлен, клиент вообще не может пройти через порт 80, и перезапись никогда не происходит ...

Если вы используете модуль перезаписи, вы не можете установить флажок «Требовать SSL», поскольку первоначальный запрос должен иметь возможность получить через порт 80.

4
ответ дан 3 December 2019 в 09:16

У меня работает:

<rule name="Redirect to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
                <add input="{HTTPS}" pattern="off" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
</rule>
0
ответ дан 3 December 2019 в 09:16

Ну, я думал, что столкнулся с тем же случаем, что и MrLane в IIS 8.5.

Мне потребовался день, чтобы узнать, что у меня не было веб-сайта, работающего на порту 80.

Я просто добавляю эту привязку (порт 80), и правило работает, как ожидалось.

Надеюсь, это поможет раскрыть дело мистера Лейна.

2
ответ дан 3 December 2019 в 09:16

Теги

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