IIS переписать правило для перенаправления https на http не работает



Здесь много вопросов о перенаправлении http на https, поэтому я решил, что будет легко повернуть процесс вспять. Однако все, что я пробовал, не сработало.



Я пытаюсь объединить правило с моим каноническим правилом имени хоста (это первое правило, вверху правил перезаписи):



<rule name="CanonicalHostName" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="^ON$" />
<add input="{HTTP_HOST}" negate="true" pattern="^www.example.com|example-staging.azurewebsites.net$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>


Сайт размещен в Azure, а DNS-с CloudFlare, если это имеет какое-то значение, я уверен, что это не должно иметь значения.



Любые идеи о том, что я делаю неправильно / возможно, препятствую https to http часть правила работает? (часть имени хоста работает нормально)

774   2  

2 ответов:

CloudFlare

Похоже, причина, по которой вы не можете перенаправить от SSL, заключается в том, что вы используете CloudFlare. CloudFlare как минимум использует гибкий SSL. Это означает, что конечный пользователь, браузер показывает блокировку SSL, но ваш сервер не нуждается в SSL. Смотрите документацию здесь: https://www.cloudflare.com/ssl

Без CloudFlare должен работать следующий пример.

No CloudFlare

Должно работать следующее правило. Вы все еще можете добавить свое отрицание, если вы хотеть.

<rule name="HTTPS to HTTP redirect" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{HTTPS}" pattern="on" ignoreCase="true" />
    </conditions>
    <action type="Redirect" redirectType="Found" url="http://{HTTP_HOST}/{R:1}" />
</rule>

Полный раздел перезаписи для моего рабочего демо-сайта.

<rewrite>
    <rules>
        <rule name="CanonicalHostNameRule1">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTP_HOST}" pattern="^www\.ashleymedway\.com$" negate="true" />
            </conditions>
            <action type="Redirect" url="http://www.ashleymedway.com/{R:1}" />
        </rule>
        <rule name="HTTPS to HTTP redirect" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="on" />
            </conditions>
            <action type="Redirect" url="http://{HTTP_HOST}/{R:1}" redirectType="Found" />
        </rule>
    </rules>
</rewrite>

Ваш редирект по-прежнему http :

url="http://www.example.com/{R:1}"

Вы можете следовать этим инструкциям: Нажмите здесь

Дополнительная информация: Здесь

Comments

    Ничего не найдено.