asp.net - 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 到 http 部分工作? (主机名部分工作正常)

最佳答案

云耀斑

您无法从 SSL 重定向的原因似乎是因为您使用的是 CloudFlare。 CloudFlare 至少使用灵活的 SSL。这意味着最终用户浏览器显示 SSL 锁定,但您的服务器不需要 SSL。请参阅此处的文档:Cloudflare Free SSL/TLS | Get SSL Certificates | Cloudflare

如果没有 CloudFlare,以下示例应该可以工作。

没有 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>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文地址:https://stackoverflow.com/questions/30493752/                                                                                                                                                                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值