В последнее время я установил сертификат 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>