IIS 7.5 URL Перезапис на HTTPS не працює повністю


0

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

Але коли я вперше заходжу на домашню сторінку: www.domain.com, а потім натискаю на кнопки меню, щоб перейти на сторінку контактів, все працює. HTTP переспрямовується на HTTPS. Це тому, що я думаю, що переадресація мови вже зроблена, щоб модуль перезапису URL-адреси міг обробляти новий запит на перезапис URL-адрес.

Це правило, яке я використовую, пробував багато різних колись всіх подібних результатів.

  <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>

У вашому першому правилі не {R:1} міститься ім'я хоста, тож ваш заголовок Location містить його двічі?
Джерард Х. Піл

У заголовках Запит я бачу, що хост = www.example.com. Однак у Загальних заголовках URL-адреса запиту є example.com/language . Я також намагався {R:0}або {C:0}отримати найвищий рівень, але ніякого ефекту.
Gforse

URL-адреса дії в першому правилі повинна була бути "https: // {R: 1}", більше нічого. Спробуйте активувати відмову відслідковування запиту ( docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/… ) і подивіться, що відбувається з вашими правилами.
Джерард Х. Піл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.