URL IIS перезаписать https без www на https-www - PullRequest
0 голосов
/ 16 ноября 2018

С трудом настраивая правила перезаписи.

Я в основном хочу:

  1. Не запросы www, которые будут перенаправлены на один с www
  2. Запросы не https должны быть перенаправлены на один с https

Желаемые перенаправления:

Requested Url                   Redirected To
http://example.com              https://www.example.com/
http://www.example.com          https://www.example.com/
https://example.com             https://www.example.com/
https://www.example.com         https://www.example.com/

Переписать конфигурацию 1:

<rules>
    <rule name="Redirect HTTP to HTTPS" stopProcessing="true">
        <match url="(.*)" />
        <conditions>
            <add input="{HTTPS}" pattern="^OFF$" />
        </conditions>
        <action type="Redirect" url="https://www.example.com/{R:0}" />
        <!--redirect to https -->
    </rule>
    <rule name="Add WWW prefix" stopProcessing="true">
        <match url=".*" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^example.com$" />
        </conditions>
        <action type="Redirect" url="https://www.example.com/" />
    </rule>         
</rules>

Переписать конфигурацию 2: (из Перенаправить IIS без www на www И с http на https ).

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

Проблема в основном с https://example.com - это не правильно направляет

1 Ответ

0 голосов
/ 16 ноября 2018

Попробуйте это:

<rules>
    <rule name="Redirect example.com to www" patternSyntax="ECMAScript" stopProcessing="true">
        <match url=".*" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^example.com$" />
        </conditions>
        <action type="Redirect" url="https://www.example.com/{R:0}" redirectType="Permanent" />
    </rule>
    <rule name="Redirect to example.com https" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
        <match url="*" negate="false" />
        <conditions logicalGrouping="MatchAny">
            <add input="{HTTPS}" pattern="off" />
        </conditions>
        <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
    </rule>
</rules>
...