HTTP для HTTPS перенаправления в IIS - PullRequest
1 голос
/ 12 апреля 2019

Я должен перенаправлять свой сайт с http на https, когда любой пользователь открывает мой сайт, используя http.

Например: -

http: \ abc.mywebsite.com должен перейти по адресу https: \\ abc.mywebsite.com

Обратите внимание, что в приведенном выше URL, этоэто не www.mywebsite.com, вместо этого это пользовательский URL, как abc.mywebsite.com.

Я пробовал URL Rewrite и выполнил все упомянутые шаги здесь ,Однако я не могу заставить URL Rewrite работать правильно для перенаправления.

Вот так выглядит правило перенаправления URL в IIS: -

enter image description here

Вот как выглядит мой web.config после добавленияправило с использованием URL Rewrite.

<configuration>
  .....
  .....
  .....
  <system.webServer>
    .....
    .....
    .....
    <rewrite>
      <rules>
        <rule name="Http to Https" enabled="true" stopProcessing="true">
          <match url="(.*)" />
           <conditions logicalGrouping="MatchAny">
            <add input="{HTTPS}" pattern="^OFF$" />
           </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
  .....
  .....
  .....
</configuration>

Я также сниму флажок Требовать SSL в разделе Настройки SSL.

Однако после всего этого мой веб-сайт по-прежнему не перенаправляет на https.Просто выдает ошибку "... не могу перейти на эту страницу".

Пожалуйста, предложите, если я что-то здесь упускаю.

Ответы [ 3 ]

0 голосов
/ 17 апреля 2019

Я столкнулся с той же проблемой на том же сайте при попытке перенаправить с http на https. Я создал новый сайт и добавил привязку как http://www.example.com/ А потом я создал новый Http Redirect и добавил мой https://www.example.com/, он работал.

0 голосов
/ 19 июля 2019

Убедитесь, что вы правильно настроили привязки в IIS, вторая строка, выделенная красным, должна быть там.

  1. Тип = HTTPS
  2. Имя хоста = адрес сайта, такой как "site.domain.com"
  3. Порт = 443
  4. IP-адрес =IP-адрес сервера, к которому вы пытаетесь получить доступ.

IIS Binding

0 голосов
/ 15 апреля 2019

У меня есть некоторые сомнения по поводу правил перезаписи, потому что я вижу много разных примеров.

Попытка использовать другие значения, подобные приведенным в этом Блог Microsoft , может дать лучшие результаты:

<rewrite>
    <rules>
        <rule name="Redirect to http" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" negate="false" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="off" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
        </rule>
    </rules>
</rewrite>

Вы также можете настроить Отслеживание неудачных запросов в IIS 7 . Это может дать вам представление о том, почему не удается перенаправить.

...