IIS URL 重写规则以替换部分 URL
IIS URL Rewrite rule to replace part of the URL
我是 IIS 重写规则的新手,正在尝试创建一个规则来替换 url
的一部分
e.g.www.abc.com/assets/global/xyz.jpg
应该重定向到 www.abc.com**/en/globalassets/**assets/global/xyz.jpg
我fiddle遵循以下规则但没有成功
<rule name="url replace">
<match url="^(.com/assets/global/)" />
<action type="Rewrite" url=".com/en/globalassets/assets/global/{R:2}" />
</rule>
根据你的描述,我这边测试过,你可以使用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>
首先,我们不能在匹配url中添加像**.com这样的值,因为这部分只能捕获url的路径。
你可以看到这是一个 url 结构:
http(s)://httphost/path?querystring.
只能在conditions标签中获取,不能在pattern中获取。
那么你应该添加条件来检查请求 URL 是否匹配 "en/globalassets" 以避免一次又一次地避免 运行 重定向规则。
我是 IIS 重写规则的新手,正在尝试创建一个规则来替换 url
的一部分e.g.www.abc.com/assets/global/xyz.jpg
应该重定向到 www.abc.com**/en/globalassets/**assets/global/xyz.jpg
我fiddle遵循以下规则但没有成功
<rule name="url replace">
<match url="^(.com/assets/global/)" />
<action type="Rewrite" url=".com/en/globalassets/assets/global/{R:2}" />
</rule>
根据你的描述,我这边测试过,你可以使用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>
首先,我们不能在匹配url中添加像**.com这样的值,因为这部分只能捕获url的路径。
你可以看到这是一个 url 结构:
http(s)://httphost/path?querystring.
只能在conditions标签中获取,不能在pattern中获取。
那么你应该添加条件来检查请求 URL 是否匹配 "en/globalassets" 以避免一次又一次地避免 运行 重定向规则。