У меня есть приведенная ниже конфигурация для перенаправления, которое работает для этого домена, но для версии с www оно не перенаправляет на https-версию сайта.
<rule name = "Site Http" patternSyntax = "Wildcard" stopProcessing = "true">
<match url = "*" />
<conditions logicalGrouping = "MatchAny">
<add input = "{HTTP_HOST}" pattern = "test.example.uk" />
</conditions>
<action type = "Redirect" url = "https://www.example.com/{R:0}" />
</rule>
<rule name = "Site to HTTPS" stopProcessing = "true">
<match url = "(.*)" />
<conditions trackAllCaptures = "true">
<add input = "{HTTP_HOST}" pattern = "test.example.uk" />
<add input = "{HTTP_HOST}" pattern = "www.example.com" />
<add input = "{HTTP_HOST}" pattern = "^((www\.)?example.com)$" />
<add input = "{HTTPS}" pattern = "off" />
</conditions>
<action type = "Redirect" url = "https://{C:1}{REQUEST_URI}" appendQueryString = "false" redirectType = "Permanent"/>
</rule>
Поэтому независимо от того, какой домен я указал, я хочу, чтобы он переходил на https-версию сайта (https://www.example.com ), но если я ввожу domain.com, он перенаправляет на https, если я ввожу тест .domain.uk переходит на https, но если я ввожу www.example.com, он остается на http?
если я добавлю
<add input = "{HTTP_HOST}" pattern = "www.example.com" />
к правилу Site Http я получаю слишком много ошибок перенаправления в браузере.
Как я могу перенаправить www.example.com на https?
Привет, проблема решилась? Если вы считаете, что мой ответ полезен для вас, вы можете отметить его как ответ.
Вы можете попробовать использовать это правило перезаписи URL:
<rewrite>
<rules>
<rule name = "Test" stopProcessing = "true">
<match url = "^(.*)$" ignoreCase = "false" />
<conditions>
<add input = "{HTTP_X_FORWARDED_PROTO}" pattern = "^http$" ignoreCase = "false" />
</conditions>
<action type = "Redirect" url = "https://{SERVER_NAME}{URL}" redirectType = "Found" />
</rule>
</rules>
</rewrite>
Смысл следующего правила в том, что если заголовок HTTP X-Forwarded-Proto содержит «https», правило не будет выполнять перенаправление.
<add input = "{HTTP_X_FORWARDED_PROTO}" pattern = "^http$" ignoreCase = "false" />
Это правило позволит избежать циклических перенаправлений.
Нужно ли мне заменить оба правила из моего примера на тот, который вы предоставили? Также какова цель url = "https://{SERVER_NAME}{URL - я все еще могу использовать то, что у меня есть в моем исходном примере?
Вы можете использовать его или напрямую добавить <add input = "{HTTP_X_FORWARDED_PROTO}" pattern = "^http$" ignoreCase = "false" /> в правило перезаписи URL.
SERVER_NAME: имя хоста сервера, псевдоним DNS или IP-адрес, как они будут отображаться в URL-адресах, ссылающихся на самих себя. URL-адрес: базовая часть URL-адреса без какой-либо информации о строке запроса.
learn.microsoft.com/en-us/iis/extensions/url-rewrite-module/…