簡體   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