https的IIS URL重写规则并包含路径

时间:2015-06-03 16:31:58

标签: iis url-rewrite-module

我正在尝试找出一个url重写规则,只有在访问特定路径时才能将http请求重写为https。我已经尝试了很多在测试模式中似乎应该工作的东西,但它从来没有。

访问的网址:http://example.com/books/test.css

我需要检查http://和/ books /以形成下面的正确网址。

需要网址:https://example.com/books/test.css

应忽略http://example.com/book/test.css的请求。

1 个答案:

答案 0 :(得分:4)

您可以在<match>元素中指定模式:

<rule name="Force HTTPS for /books/" enabled="true">
    <match url="^/books/.*$" ignoreCase="false" />
    <conditions>
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" redirectType="Permanent"
            url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true"  />
</rule>

或添加新的<condition>

<rule name="Force HTTPS for /books/" enabled="true">
    <match url="(.*)" ignoreCase="false" />
    <conditions>
        <add input="{HTTPS}" pattern="off" />
        <add input="{REQUEST_URI}" pattern="^/books/.*$" />
    </conditions>
    <action type="Redirect" redirectType="Permanent"
            url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="true"  />
</rule>