Мне нужно создать глобальное правило, которое переписывает все http://example.com/
к https://example.com/
. Я размещаю несколько доменов, и мои попытки либо не работают, либо работают на всех доменах.
Я положил это в свой applicationHost.config
:
<globalRules>
<rule name="Rewrite test" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" />
</rule>
</globalRules>
<globalRules>
<rule name="kommunetv SSL">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="http://(.*\.kommunetv.no)(/?.*)" />
</conditions>
<action type="Rewrite" url="https://{C:1}{C:2}" appendQueryString="false" />
</rule>
</globalRules>
Пробовал различные шаблоны соответствия, а также попытки с {HTTP_HOST}
условия. Надеюсь на ввод :)
<globalRules>
в applicationHost.config
применяется ко всему серверу - всем доменам.
<conditions logicalGrouping="MatchAll"> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true"/>
Это проверяет только {HTTPS}
, так что да, это перенаправит все домены.
<conditions> <add input="{HTTP_HOST}" pattern="http://(.*\.kommunetv.no)(/?.*)" /> </conditions> <action type="Rewrite" url="https://{C:1}{C:2}" appendQueryString="false" />
В HTTP_HOST
переменная содержит только имя хоста из запроса (т. е. значение HTTP Host
заголовок). Не содержит ни схемы, ни URL-пути. Таким образом, вышеуказанное условие никогда не будет соответствовать, и правило ничего не сделает. Если он совпадет, будет создан цикл перенаправления, так как вам также нужно проверить HTTPS
штат.
Вам нужно проверить оба HTTPS
и HTTP_HOST
. Например, что-то вроде:
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="^off$" />
<add input="{HTTP_HOST}" pattern="^example\.com$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true" />