IIS 7.5 URL Rewrite для HTTPS не работает полностью

996
Gforse

В последнее время я установил сертификат SSL для веб-сайта на веб-сервере IIS 7.5. Затем я настроил правило перезаписи URL, чтобы переписать HTTP на HTTPS. Пока что почти все работает, кроме одной вещи. Если я наберу домен, а затем / language, как / en, то перезапись URL не будет работать. Сайт работает на Drupal 7. Так, например, если я перехожу на страницу контактов, например www.domain.com/contact, то Drupal переписывает URL-адрес на www.domain.com/language( like 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="" pattern="^OFF$" /> </conditions> <action type="Redirect" redirectType="Permanent" url="https:///" /> </rule> 

ИЛИ ЖЕ

 <rule name="HTTP to HTTPS redirect2" stopProcessing="true"> <match url="(.*)" /> <!-- Require SSL must be OFF in the site settings --> <conditions> <add input="" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" redirectType="Found" url="https://" /> </rule> 
0
В первом правиле разве `` не содержит имя хоста, так что заголовок Location содержит его дважды? Gerard H. Pille 6 лет назад 0
Я вижу в заголовках запроса, что Host = www.example.com. Однако в общих заголовках URL-адрес запроса - https://www.example.com/language. Я также пробовал `` или ``, чтобы получить верхний уровень, но безрезультатно. Gforse 6 лет назад 0
URL-адрес действия в первом правиле должен был быть «https: // », не более того. Попробуйте активировать отслеживание невыполненных запросов (https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules) и посмотрите, что происходит с вашими правилами. Gerard H. Pille 6 лет назад 0

0 ответов на вопрос