С трудом настраивая правила перезаписи.
Я в основном хочу:
Желаемые перенаправления:
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 - это не правильно направляет
Попробуйте это:
<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>