您的正则表达式可能是问题所在。
如果您想在之后重定向所有内容,请some/url
使用:
<rule name="Reverse Proxy" stopProcessing="true">
<match url="^some/url(.+)$" />
<action type="Rewrite" url="http://some.other.com/some/url/{R:1}" />
</rule>
如果您想在之后重定向所有内容some/url/
并保留路径,那么您可以使用:
<rule name="Reverse Proxy" stopProcessing="true">
<match url="^some/url/(.+)$" />
<action type="Rewrite" url="http://some.other.com/{R:0}" />
</rule>
您可以使用 IIS 测试模式工具轻松测试您的模式。
http://www.iis.net/learn/extensions/url-rewrite-module/testing-rewrite-rule-patterns
编辑
我为测试第二条规则所做的工作:
- 设置
test.com
域以重定向到我的服务器(使用主机文件)
- 使用 IIS 设置规则如下:
在文件中给出以下配置web.config
:
<rule name="test" stopProcessing="true">
<match url="^some/url/(.+)$" />
<action type="Rewrite" url="http://www.google.com/{R:0}" />
</rule>
- 使用
http://test.com/some/url/google
浏览器访问:
它表明 URL 是使用 Google 作为目标重写的,并将首先请求的路径作为参数。