繁体   English   中英

捕获部分URL以在出站规则中使用以重写IIS中的模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM