Переписать правило https://www на https: // IIS7 - PullRequest
1 голос
/ 19 июня 2011

Я получил свой ssl-сертификат на общем хостинге и успешно его установил.Сертификат подготовлен для mysite.com, а не для * .mysite.com.Я хочу, чтобы сайт был доступен, как https: // mysite.com - без www, без http (только безопасные соединения).Я нашел подобные вопросы здесь, но не правильный.Я использую IIS 7, среду .net.В мой web.config были добавлены следующие правила:

<rule name="Remove WWW prefix">
<match url="(.*)" ignoreCase="true" />
<conditions>
    <add input="{HTTP_HOST}" pattern="^www\.mysite\.com" />
</conditions>
<action type="Redirect" url="https://mysite.com/{R:1}" redirectType="Permanent" />
</rule>

<rule name="Redirect to HTTPS">
<match url="(.*)" />
<conditions>
    <add input="{SERVER_PORT}" pattern="443" negate="true" />
</conditions>
<action type="Redirect" url="https:// mysite.com/{R:1}" />

Все работает нормально, но URL https://www.mysite.com не перенаправляется на https://mysite.com. Iполучите ошибку, что сертификат для mysite.com (который был предназначен :), сообщение приходит от firefox) с рекомендацией добавить исключение.

Мой вопрос: какое правило подходит для этого URL?

Заранее благодарим за ваше время.

Ответы [ 3 ]

1 голос
/ 20 июня 2011

РЕДАКТИРОВАТЬ: Извините, я думаю, что я неправильно прочитал ваш пост! Я дал вам правило автоматически переходить с http на https. Я оставлю это здесь на случай, если это поможет кому-то, кто (как и я) тоже не умеет читать, и вы можете настроить его так, чтобы он подходил для вашего случая.

Прочтите это сообщение Омара Аль Забира: http://omaralzabir.com/redirecting-traffic-from-http-to-https-with-zero-coding-in-iis/

А потом посмотрите мой (Том Чантлер) комментарий к его сообщению.

1 голос
/ 07 декабря 2012

Эти 2 правила сработали для меня.

    <rule name="Remove WWW" stopProcessing="true">
    <match url="^(.*)$" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
    </conditions>
    <action type="Redirect" url="http://mysite.com{PATH_INFO}" redirectType="Permanent" />
</rule>
<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>

Дополнительное чтение:

http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using-url-rewrite-2-0/

http://keyvan.io/remove-www-prefix-from-urls-with-url-rewrite-module-for-iis-7-0

0 голосов
/ 19 июня 2011

К сожалению, я не думаю, что вы можете сделать это.Вам нужен действительный сертификат SSL на https://www.mysite.com, чтобы перенаправить на https://mysite.com без предупреждения пользователя о недействительном сертификате.IIS попытается согласовать соединение SSL, прежде чем URL Rewrite сможет воздействовать на него.

Возможно, это можно сделать с помощью записи DNS.Вы можете добавить запись CNAME, которая выглядит следующим образом:

www.mysite.com.   CNAME   mysite.com.
...