Перенаправить сайт на SSL с помощью модуля IIS / rewrite

inbanco спросил: 28 апреля 2018 в 08:42 в: regex

Я пытаюсь перенаправить все URL-адреса сайта на SSL с помощью модуля IIS / rewrite.

У меня есть это правило, которое отлично подходит для всех URL-адресов, кроме тех, которые содержат виртуальный каталог / приложение под названием 'blog'

 <rule name="Force WWW and SSL" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAny">
          <add input="{HTTP_HOST}" pattern="^[^www]" />
          <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>     

Поэтому перенаправление www.example.com/blog/post/test на https не работает, но www.example.com/pages/demo делает.

И по какой-то причине www.example.com/blog перенаправляет, но www.example.com/blog/ не делает.

Если кто-то может указать мне в правильном направлении, пожалуйста. Я ненавижу этот материал rewrite / regex

1 ответ

Chandra Rana ответил: 28 апреля 2018 в 08:48

Если вы хотите заставить HTTP-HTTPS для определенного сайта на всех URL-адресах и ненавидеть Regex, тогда

  • Просто создайте правило перезаписи URL-адресов на сайте.
  • Используйте подстановочный знак типа, поскольку они мало понятны.

Это должно работать для HTTP до https

<rewrite>
<rules>
    <rule name="HTTP to HTTPS" patternSyntax="Wildcard" stopProcessing="true">
        <match url="*" />
        <conditions>
        <add input="{HTTPS}" pattern="off" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
    </rule>
</rules>

Обычно, когда я играю с urlrewrite / redirection Я использую тип перенаправления "временный", чтобы браузер не кэшировал правило HTTP в HTTPS. Как только я заканчиваю тестирование, я меняю тип перенаправления на постоянный.

inbanco ответил: 29 апреля 2018 в 08:49
Спасибо, но никакой разницы. Я уверен, что это связано с виртуальным каталогом блога. Любой URL-адрес с / blog / не соответствует вообще. Блог - это веб-приложение с web.config, но в нем нет правил. Я нажал кнопку "Вернуть родительский" в IIS