将所有流量从 URL1 重定向到 URL2,特定目录除外
Redirect all traffic from URL1 to URL2 except certain directory
我需要做的是将所有流量从 URL1 重定向到 URL2,除非请求 URI 是 /certain-directory。除此之外,我还需要将 URL1/certain-directory 中的所有内容重定向到 URL2/certain 目录。
以下是我在排查问题时提出的 2 条规则。
<rule name="Redirect to certain-directory" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/certain-directory$" />
<add input="{HTTP_HOST}" pattern="^URL1$" />
</conditions>
<action type="Redirect" url="http://URL2/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="Redirect from certain-directory" stopProcessing="false">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/certain-directory$" negate="true" />
<add input="{HTTP_HOST}" pattern="^URL2$" />
</conditions>
<action type="Redirect" url="http://URL1/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
原来我刚刚 request_uri 的结尾错了。而不是
<add input="{REQUEST_URI}" pattern="^/certain-directory$" negate="true" />
我刚好需要
<add input="{REQUEST_URI}" pattern="^/certain-directory" negate="true" />
我需要做的是将所有流量从 URL1 重定向到 URL2,除非请求 URI 是 /certain-directory。除此之外,我还需要将 URL1/certain-directory 中的所有内容重定向到 URL2/certain 目录。
以下是我在排查问题时提出的 2 条规则。
<rule name="Redirect to certain-directory" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/certain-directory$" />
<add input="{HTTP_HOST}" pattern="^URL1$" />
</conditions>
<action type="Redirect" url="http://URL2/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<rule name="Redirect from certain-directory" stopProcessing="false">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/$" negate="true" />
<add input="{REQUEST_URI}" pattern="^/certain-directory$" negate="true" />
<add input="{HTTP_HOST}" pattern="^URL2$" />
</conditions>
<action type="Redirect" url="http://URL1/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
原来我刚刚 request_uri 的结尾错了。而不是
<add input="{REQUEST_URI}" pattern="^/certain-directory$" negate="true" />
我刚好需要
<add input="{REQUEST_URI}" pattern="^/certain-directory" negate="true" />