捕获 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>
有没有办法在出站规则中捕获部分 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>