问题:
需要代理仅与模式匹配的传递请求:mywebsite.com/two-letter-country-code,例如 mywebsite.com/es / 到 mywebsite.vendor.com/es 第二个网址是第三方供应商,它将返回已翻译的内容。
正在进行的工作:
IIS本身并不支持ProxyPass,因此我安装了#34;应用程序请求路由(ARR)"按照本文https://www.iis.net/learn/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing中的说明配置转发代理,在步骤14中配置重写规则,它说要添加:
Rewrite URL: http://{C:1}/{R:0}
如果我的理解在我的情况下是正确的,我会想要做类似
的事情Rewrite URL: http://mywebsite.sl.vendor.com/{C:#}
{C:#}将返回" es"或者URL的语言。
我的问题
1。我的重写理解是否正确?
2。我是否必须配置服务器场?
我注意到通过安装ARR," Server Farm"现在可用于配置,但不确定我是否需要做任何事情。
答案 0 :(得分:0)
<强> 1。我的重写理解是否正确?
不,因为我想匹配两个字母的国家代码,所以应该是:
^([a-z]{2}/(.*)|/[a-z]{2}$)
操作属性下的重写网址应为:
https://mywebsite.sl.vendor.com/{R:0}
{R:0}将是指定模式的反向引用,因此mywebsite.com/es/的传入请求将作为代理传递,因为mywebsite.vendor.com/es {R:0} = es / 符合预期
<强> 2。我是否必须配置服务器场?
不需要在服务器场中进行任何特殊配置以使正向代理工作。
我转发请求的第三方服务,要求将主机头作为服务器转发请求,在这种情况下mywebsite.com但最终他们收到了mywebsite.vendor.com,为了实现这一目标必须将属性preserveHostHeader设置为true,这可以在配置编辑器
中找到