IIS URL重写规则以替换部分URL

问题描述 投票:0回答:1

我是IIS重写规则的新手,并尝试创建一个规则来替换部分网址

哦.个.呜呜呜.ABC.com/assets/global/下一站.jpg

应该重定向到www.abc.com ** / en / globalassets / ** assets / global / xyz.jpg

我摆弄了以下规则,但没有成功

<rule name="url replace">
<match url="^(.com/assets/global/)" />
<action type="Rewrite" url=".com/en/globalassets/assets/global/{R:2}" />
</rule>
iis url-rewriting url-rewrite-module
1个回答
1
投票

根据你的描述,我已经在我身边测试过,你可以使用url重写规则如下:

<rule name="rule1" enabled="true" stopProcessing="true">
                    <match url="assets/global/(.*)" />
                    <conditions>
                        <add input="{REQUEST_URI}" pattern="en/globalassets" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://{domain}/en/globalassets/assets/global/{R:1}" />
                </rule>

首先,我们无法在匹配网址中添加**。com等值,因为此部分只能捕获网址的路径。

你可以看到这是一个url结构:

http(s)://httphost/path?querystring.

你只能在条件标签中获得它而不是模式。

然后你应该添加条件来检查请求URL是否与“en / globalassets”匹配,以避免一次又一次地运行重定向规则。

© www.soinside.com 2019 - 2024. All rights reserved.