这里有很多关于将 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>
-
asp.net - IIS 重写规则将 https 重定向到 http 不起作用-程序变量
-
asp.net - 带有Google OAuth 登录的 ASP.NET MVC 白名单-程序变量
-
asp.net - 重定向到登录页面 asp.net-程序变量
-
每组 ASP.Net 中继器 header (即月)-程序变量
-
asp.net - ASP.NET,VB:检查选中了CheckBoxList的哪些项目-程序变量
-
asp.net - MVC 5 更改主页-程序变量
-
asp.net - 没有 URL 的节点在 ASP.NET 菜单中缺少弹出类-程序变量
-
asp.net - Azure 上的 SignalR - 握手时出现 502 错误-程序变量
-
asp.net - 在ASP.NET中定义缓存 list 文件-程序变量
-
asp.net - 什么是动态数据应用程序的好示例?-程序变量
-
asp.net - 扩展ObjectCache以创建基于文件的缓存替代方案-程序变量
-
asp.net -session 变量在开发过程中的工作方式不同吗?-程序变量
-
asp.net - 为每个模型 CRUD 操作单独的 ASP.NET MVCView 对象?-程序变量
-
asp.net - 如何使用ajax请求重置ASP.Net session 状态超时-程序变量
-
asp.net - OpenIdConnect 错误 - 租户标识符可能不是空的 GUID-程序变量
-
asp.net - NLB 和 Web 部署-程序变量
-
asp.net - 您可以根据请求变量确定时区吗?-程序变量
-
asp.net - 谷歌地图使用多边形突出显示有边界的国家-程序变量
-
asp.net - 拒绝应用内联样式,因为它违反了以下内容安全策略指令 :"style-src ' self'"modernizr-程序变量
-
asp.net -Razor 未自动创建 View 共享文件夹?为什么不?-程序变量