[英]Capture part of URL to use in Outbound rule for rewrite module in IIS
有没有一种方法可以捕获出站规则中的部分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
谢谢!
我刚刚发现您可以向出站规则本身添加条件。 如果有其他笨拙的人为重写规则而苦苦挣扎,请在这里回答:)
规则如下所示:
<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.