获取要在IIS中用于重写模块的出站规则中使用的URL的一部分

问题描述:

有没有办法在出站规则中捕获部分URL以用作重写的值?获取要在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(*)。”

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

谢谢!

+0

你可以编辑你的问题,包括重写应该如何工作的例子吗? –

+0

@CyrilDurand完成 – aggFTW

我刚刚发现可以向出站规则本身添加一个条件。只是回答这里万一有任何其他人的无能与重写规则:)挣扎

规则看起来是这样的:

<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> 
+0

只是一个请求。我是iis重写规则中的新成员。所以我有一些问题,并张贴在这里。请你看看我的问题。 url是https://stackoverflow.com/questions/47474674/iis-rewrite-rule-change-my-current-aspx-page-hyperlink-href-wrong-way – Thomas