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

IIS URL rewrite rule for https and containing path

我正在尝试找出一个 url 重写规则,仅当访问特定路径时才将 http 请求重写为 https,如下所示。我已经尝试了很多在测试模式中似乎应该起作用但从未起作用的东西。

url 访问:http://example.com/books/test.css

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

url 需要:https://example.com/books/test.css

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

您可以在 <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>