【问题标题】:IIS URL rewrite rule for https and containing pathhttps 和包含路径的 IIS URL 重写规则
【发布时间】:2015-08-17 23:59:22
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: iis url-rewrite-module


    【解决方案1】:

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

    或添加一个新的&lt;condition&gt;

    <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>
    

    【讨论】:

    • 感谢您。我选择了第二个选项。我唯一需要添加的是这一行中模式后的等号
    • &lt;add input="{HTTPS}" pattern="off" /&gt; 是什么意思?我不知道 iis 重写规则,这就是我在这里问的原因
    猜你喜欢
    • 2015-08-26
    • 1970-01-01
    • 2020-10-22
    • 2020-09-30
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2014-10-27
    相关资源
    最近更新 更多