IIS 7.5 URL Redirect для определенных шаблонов
Когда пользователь входит в domain.com, он должен перенаправить на мое приложение, которое является https://www.domain.com/. В настоящее время этого не происходит, и отображается страница "Это соединение не заслуживает доверия".
У меня есть следующий тег перезаписи, добавленный в мой web.config:
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
В настоящее время в моем IIS 7.5 я добавил входящее правило, настройки которого у меня следующие:
В совпадении URL
Запрашиваемый URL: соответствует шаблону
Использование: Reqular Expression
Шаблон: (.*)
Игнорировать случай: проверено
условия
Логическая группировка: соответствовать всем
Вход: {HTTPS}
Тип: соответствует шаблону
Pattern: ^OFF$
Отслеживание группы по условию: не проверено
действие
Тип действия: Перенаправление
URL перенаправления: https://{HTTP_HOST}/{R:1}
Добавить строку запроса: проверено
Тип перенаправления: см. Другое (303)
Пожалуйста, дайте мне знать, если какие-либо изменения могут быть внесены в существующие настройки.
Заранее спасибо.
1 ответ
Ваше правило перезаписи просто перенаправляет на тот же домен. Так что если пользователь вводит просто domain.com
(по умолчанию http) он будет перенаправлен на https://domain.com
, Если ваш SSL-сертификат не содержит domain.com
но только www.domain.com
это заставит браузер выдавать предупреждение о неправильном сертификате. Хотя большинство центров сертификации в настоящее время выдают сертификаты как с доменом, так и без www (но, возможно, у вас нет).
Если вы хотите, чтобы пользователь всегда использовал https://www.domain.com
(всегда с www) вы должны использовать следующее правило переписывания:
<rule name="Force HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" negate="true" pattern="^ON$" />
<add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" />
</conditions>
<action type="Redirect" url="https://www.domain.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>
Это заставит SSL и заставит www.domain.com
в качестве заголовка хоста. Если это не так, он выдаст постоянное перенаправление (= beter) на тот же URL.