IIS使用子文件夹将http重写为https

时间:2015-08-22 02:53:41

标签: http redirect iis rewrite subdirectory

听起来很简单,就像我搜索过的那样,我无法得到

使用IIS重写

http://example.com/subfolder重定向到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_HOST}{REQUEST_URI}" redirectType="Found" />enter code here

谢谢!

1 个答案:

答案 0 :(得分:0)

您的规则存在的问题是,重定向操作中的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>