有没有办法捕获出站规则中的部分网址以用作重写的值?
现在,我正在使用一个前提条件,其中我有一个带有{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}将是前提条件下的捕获组&#34; myapp(。*)&#34;
所以,它来自 http://myapp40.com 在响应中重写链接类似于 40 / originalrelativelink
谢谢!
答案 0 :(得分:1)
我刚刚发现您可以在出站规则本身添加条件。只是回答这里,以防有任何其他无知的人在努力改写重写规则:)
规则看起来像:
<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>