Перенаправление HTTP на HTTPS-IIS 8.5 работает неправильно
Я прочитал несколько сообщений здесь, так же, как и в сети (блоги IIS и т. д.). Я пытаюсь force все соединения, идущие от domain.com к www.domain.com и при этом заставляя запрос с HTTP на HTTPS.
Я использую этот набор правил и переписываю, но единственное, что происходит, - это перенаправление, но не перенаправление на SSL.
<!-- Redirect to HTTPS -->
<rewrite>
<rules>
<rule name="Redirect to www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^mydomain.com$" ignoreCase="true" negate="false" />
</conditions>
<action type="Redirect" url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol" defaultValue="http">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>
что я делаю не так?
основная ссылка на блог: http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action и после web.config перенаправляет не-www на www
3 ответов
редактировать: я нашел этот блог: http://www.meltedbutter.net/wp/?p=231 и дал ему попробовать, и вуаля! Сработало как по волшебству. Не уверен, почему это сработало над правилами, опубликованными выше, но в моем случае ниже работает и успешно принимает весь трафик без www и перенаправляет его на оба www и https.
<!-- Redirect to HTTPS -->
<rewrite>
<rules>
<rule name="http to https" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://www.domain.com/{R:1}" redirectType="SeeOther" />
</rule>
</rules>
</rewrite>
мы столкнулись с той же проблемой при перенаправлении с http на https с помощью модуля перезаписи URL, но после отключения модуля require ssl в IIS сделал трюк.
- перейдите в настройки SSL веб-сайта
- снимите флажок "требовать SSL".
- Применить настройки и перезапустить iis
Это длинный выстрел для некоторых случаев, но я удалил свои привязки порта 80 для веб-сайта, поскольку я хотел только SSL / порт 443. Поэтому из того, что я могу сказать, привязка порта 80 также необходима для правильной работы перезаписи.