IIS 使用子文件夹将 http 重写为 https
Posted
技术标签:
【中文标题】IIS 使用子文件夹将 http 重写为 https【英文标题】:IIS Re-write http to https with subfolders 【发布时间】:2015-11-16 01:48:42 【问题描述】:尽管听起来很简单,而且我搜索过很多,但我无法得到
http://example.com/subfolder 使用 IIS 重写重定向到 https://example.com/subfolder。
注意:这仅适用于浏览器中明确声明“http”的情况。
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="HTTPS" pattern="off" />
</conditions>
<action type="Redirect" url="https://HTTP_HOSTREQUEST_URI" redirectType="Found" />enter code here
谢谢!
【问题讨论】:
asp.net c# redirecting from http to https的可能重复 【参考方案1】:您的规则的问题是重定向操作中的 REQUEST_URI
是请求的整个 URI。你想要的是规则匹配的结果。 R1
会给你这个。 This answer gives a good explanation of the rule back-references。可以这样构造一个工作规则:
<rewrite>
<rules>
<rule name="HTTP to HTTPS Redirect" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="HTTPS" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="https://HTTP_HOST/R:1" />
</rule>
</rules>
</rewrite>
【讨论】:
以上是关于IIS 使用子文件夹将 http 重写为 https的主要内容,如果未能解决你的问题,请参考以下文章
IIS7.5 URL 重写:不要将 POST 转换为 GET
将规则重写为IIS以将HTTPS重定向到HTTP会导致null HttpContext.Request.ContentType
在 IIS7 中将 URL 从 https:// 重写为 http://