Перейти к основному содержанию

IIS — редирект с HTTP на HTTPS плюс убираем WWW

IIS 10

Правим файл web.config для настройки редиректа.

Редирект с HTTP на HTTPS

Для всех доменов.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect from HTTP to HTTPS" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Убираем с домена WWW

Для всех доменов. Работает и для HTTP и для HTTPS.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect to remove www" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^www\.(.*)$" />
                    </conditions>
                    <action type="Redirect" redirectType="Permanent" url="{SchemeMap:{HTTPS}}://{C:1}/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
            <rewriteMaps>
                <rewriteMap name="SchemeMap">
                    <add key="on" value="https" />
                    <add key="off" value="http" />
                </rewriteMap>
            </rewriteMaps>
        </rewrite>
    </system.webServer>
</configuration>

Редирект с HTTP на HTTPS плюс убираем WWW

Для всех доменов, включая мультисайт.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect from HTTP to HTTPS" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^OFF$" />
                    </conditions>
                    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
                </rule>
                <rule name="Redirect to remove www" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^www\.(.*)$" />
                    </conditions>
                    <action type="Redirect" redirectType="Permanent" url="https://{C:1}/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Теги

 

Похожие материалы

IIS как обратный прокси-сервер (reverse proxy)

Понадобилось мне как-то раз настроить на IIS 7 прозрачное проксирование запросов из интернета на другой web-сервер, расположенный во внутренней сети. По сути, нужно было настроить IIS 7 как обратный прокси-сервер (reverse proxy). Потом сделал то же самое на IIS 10.

Теги

Перезагружаем IIS при 500-й ошибке

Недавно мой сайт на Drupal 8 стал иногда валиться с 500-й ошибкой. Началось это с очередного обновления. Проблема, как мне кажется, связана с некорректной работой системы кеширования. Помогает перезагрузка IIS.