В последнее время я установил сертификат SSL для веб-сайта на веб-сервере IIS 7.5. Затем я настроил правило перезаписи URL, чтобы переписать HTTP на HTTPS. Пока что почти все работает, кроме одной вещи. Если я наберу домен, а затем /language, как /en, то перезапись URL не будет работать. Сайт работает на Drupal 7. Так, например, если я перехожу на страницу контактов, например www.domain.com/contact, то Drupal переписывает URL-адрес на www.domain.com/language(например, EN of FR и т.д.)/ Contact, обнаруживается язык по языку браузера. Я думаю, что это перезапись приводит к сбою правила перезаписи URL или игнорирует запрос URL, поэтому перенаправление HTTP на HTTPS отсутствует.

Но когда я впервые захожу на домашнюю страницу: www.domain.com, а затем нажимаю на кнопки меню, чтобы перейти на страницу контактов, все работает. HTTP перенаправляется на HTTPS. Это потому, что я думаю, что перенаправление языка уже было сделано, поэтому модуль перезаписи URL может обрабатывать новый запрос перезаписи URL.

Это правило, которым я пользуюсь, пробовал много разных когда-то результатов similair.

  <rule name="HTTP to HTTPS redirect" enabled="false" stopProcessing="true">
    <match url="http://(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
    <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
   </rule>

ИЛИ ЖЕ

    <rule name="HTTP to HTTPS redirect2" stopProcessing="true">
      <match url="(.*)" />
      <!-- Require SSL must be OFF in the site settings -->
      <conditions>
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}{REQUEST_URI}" />
    </rule>

0