0

有没有办法在出站规则中捕获部分 url 以用作重写的值?

现在,我正在使用先决条件,其中我有一个针对 {REQUEST_URI} 的模式的输入。我想在使用此前提条件的出站规则中使用请求 URI 中的捕获组。我试过 {C:1} 但这没有用。

前提:

<preCondition name="Html Response" logicalGrouping="MatchAll">
    <add input="{REQUEST_URI}" pattern="myapp(.*)" />
    <add input="{RESPONSE_CONTENT_TYPE}" pattern="^(text/html)" />
</preCondition>

出站规则:

<rule name="ResponseRewriteRelative" preCondition="Html Response" stopProcessing="true">
    <match filterByTags="A, Link" pattern="^/(.*)" />
    <action type="Rewrite" value="{C:1}/{R:1}" />
</rule>

其中 {C:1} 将是前置条件“myapp(.*)”中的捕获组

因此,它会从 http://myapp40.com 重写响应中的链接,以类似于 40/originalrelativelink

谢谢!

4

1 回答 1

2

我刚刚发现您可以向出站规则本身添加条件。只是在这里回答,以防有任何其他无知的人在重写规则中苦苦挣扎:)

规则看起来像:

<rule name="ResponseRewriteRelative" preCondition="Html Response" stopProcessing="true">
    <match filterByTags="A, Link" pattern="^/(.*)" />
    <action type="Rewrite" value="{C:1}/{R:1}" />
    <conditions>
        <add input="{REQUEST_URI}" pattern="myapp(.*)" />
    </conditions>
</rule>
于 2015-06-10T17:41:18.610 回答