繁体   English   中英

IIS URL重写主条目站点重定向到蓝色/绿色条目

[英]IIS URL Rewrite main entry site redirect to blue / green entry

首先,我不太擅长写正则表达式,为此我深表歉意。

我正在尝试设置IIS,以将URL从一个主条目重写为第二个蓝色/绿色条目站点。 作为多租户设置的一部分,用户将通过美国州缩写来重定向。 目前,我们只会在域名后寻找2个字母。 所有流量都将进入主入口站点https://dev.app.com并重定向到欣赏状态的URL

例如: http://dev.app.com/ca : http://dev.app.com/cahttp://dev.app.com/ny

默认情况下,进入网站http://dev.app.com根目录的用户将自动重定向到http://dev.app.com/ca CA是我们的默认状态。

每个州都有自己的蓝色/绿色入口站点。 例如: http://ca.app.entry 蓝色/绿色条目站点具有反向代理重写规则,可将流量重定向到当前正在运行的任何站点。 部署期间会更新蓝色/绿色重写规则。

此外,每个州都有自己的API。 例如: http://ca.api.com : http://ca.api.com 主条目URL如下所示: https://dev.app.com/ca/ext : https://dev.app.com/ca/ext ,它将流量转发到正确状态的API。

我一直在尝试设置重写规则以捕获状态缩写,并且还查找该ext如果存在)并将其转发到适当的AI站点。

对于默认URL,我首先创建一个重定向规则,该规则位于重写规则之前

 <httpRedirect enabled="true">
      <add wildcard="/" destination="/ca" />
 </httpRedirect>

我尝试捕获状态缩写的下一条规则:

<rule name="StateRewrite" stopProcessing="true">
   <match url="/([a-z]{2})/$" />
   <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
   <action type="Rewrite" url="http://{R:1}.app.entry" logRewrittenUrl="true" />
</rule>

测试表达式,只要在[state] /之后没有任何内容,我将得到正确的2字母状态缩写。 因此http://dev.app.com/ca/someOtherqueryString不会产生匹配项。 转到http://dev.app.com/ca/似乎不会将流量转发到[state] .app.entry / [state]。 如果我直接进入该州的入境站点,它将起作用。 因此,转到ca.app.entry / ca路由到正确的蓝色/绿色站点。 查看日志似乎并没有构造整个URL。 我只在日志中看到/[state]/2018-12-27 16:57:25 127.0.0.1 GET /ca/

对于API网站,我尝试了一个类似(.*)/ext/(.*)的模式规则。 该规则位于状态缩写规则之后,但仍未路由到正确的状态API站点。

我可以使用一些帮助来构建规则以及如何对其进行排序。

下面的正则表达式将从字符串[az]{2}$的末尾返回2个字符,如果后面可以有一个/,则它将像这样[az]{2}/?$

这是正则表达式,因为它应该适用于重写规则,但我不确定确切如何使用替换进行重写,因此希望这会有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM