当从HTTPS协议发出请求时,IIS URL重写规则(Pattern)无法识别{HTTP_HOST}
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当从HTTPS协议发出请求时,IIS URL重写规则(Pattern)无法识别{HTTP_HOST}相关的知识,希望对你有一定的参考价值。
我有域名E.g. 'example.com'我想将所有流量重定向到'https://www.example.com'(因为我的证书只对'www.example.com'有效),当我输入'http://example.com'时它工作正常并将我重定向到'https://www.example.com'预期
问题:当我使用'https://example.com'发出请求时,它不会被规则重定向到'https://www.example.com'。不知道为什么它失败了https?
这是我申请的规则细节。
<rule name="example.com to https://www.example.com" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example.com$" />
</conditions>
<action type="Redirect" url="https://www.example.com/{R:1}" />
</rule>
答案
试试这个 :
<rule name="Add www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_HOST}" pattern="www.example.com" negate="true" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" />
</rule>
以上是关于当从HTTPS协议发出请求时,IIS URL重写规则(Pattern)无法识别{HTTP_HOST}的主要内容,如果未能解决你的问题,请参考以下文章
CORS 使用带有 ARR 和 URL 重写的 IIS 作为反向代理