使用 Azure 應用程式閘道來重寫 HTTP 要求和回應標頭 - Azure 入口網站
本文說明如何使用 Azure 入口網站 來設定 Azure 應用程式閘道 v2 SKU 實例,以重寫要求和回應中的 HTTP 標頭。
如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
開始之前
您需要有 應用程式閘道 v2 SKU 實例,才能完成本文中的步驟。 v1 SKU 不支援重寫標頭。 如果您沒有 v2 SKU,請在開始之前建立應用程式閘道 v2 SKU 執行個體。
建立必要的物件
若要設定 HTTP 標頭重寫,請遵循下列步驟。
建立 HTTP 標頭重寫所需的物件:
重寫動作:用來指定您想要重寫的要求和要求標頭欄位,以及指定標頭的新值。 您可以將一或多個重寫條件與重寫動作產生關聯。
重寫條件:這是選用設定。 重寫條件會評估 HTTP(S) 要求和回應的內容。 如果 HTTP(S) 要求或回應符合重寫條件,就會發生重寫動作。
如果您將多個條件與某個動作產生關聯,則只有在符合所有條件時,才會執行此動作。 換句話說,作業是邏輯
AND
作業。重寫規則:包含多個重寫動作/重寫條件組合。
規則順序:協助判斷重寫規則執行的順序。 當您在重寫集中有多個重寫規則時,此設定可協助您判斷順序。 規則順序值較低的重寫規則優先執行。 如果您將相同的規則順序值指派給兩個重寫規則,則執行順序不具決定性。
重寫集:包含多個與要求路由規則相關聯的重寫規則。
將重寫集連結至路由規則。 重寫設定會透過路由規則連結至來源接聽程式。
- 使用基本路由規則時,標頭重寫設定會與來源接聽程式產生關聯,而且是全域標頭重寫。
- 使用路徑型路由規則時,則是在 URL 路徑對應上定義標頭重寫設定。 在此情況下,僅適用於網站的特定路徑區域。
您可以建立多個 HTTP 標頭重寫集,並將每個重寫集套用至多個接聽程式。 但您只能將一個重寫集套用至一個特定接聽程式。
登入 Azure
使用您的 Azure 帳戶登入 Azure 入口網站 。
設定標頭重寫
在此範例中,我們會重寫後端應用程式所傳送 HTTP 回應中的位置標頭,以修改重新導向 URL。
選取 [所有資源],然後選取您的應用程式閘道。
在服務窗格中,選取 [ 重寫]。
選取 [ 重寫集]。
為重寫集提供名稱,並將其與路由規則產生關聯:
- 在 [ 名稱] 方塊中,輸入重寫集的名稱。
- 在 [ 相關聯的路由規則] 清單中,選取一或多個規則。 只選取尚未與其他重寫集相關聯的規則。 已與其他重寫集相關聯的規則會呈現暗灰色。
- 選取 [下一步]。
建立重寫規則:
選取 [新增重寫規則]。
在 [ 重寫規則名稱 ] 方塊中,輸入重寫規則的名稱。 在 [ 規則順序] 方塊中,輸入數位。
在此範例中,只有當位置標頭包含 的
azurewebsites.net
參考時,我們才會重寫位置標頭。 若要執行此步驟,請新增條件來評估回應中的位置標頭是否包含azurewebsites.net
:選取 [新增條件],然後選取包含 If 指示的方塊加以展開。
在 [要檢查的變數類型] 清單中,選取 [HTTP 標頭]。
在 [標頭類型] 清單中選取 [回應]。
在 [標頭名稱] 底下選取 [一般標頭]。 在此範例中,我們會評估位置標頭,這是常見的標頭。
在 [一般標頭] 清單中選取 [位置]。
在 [區分大小寫] 下方選取 [否]。
在 [運算子] 清單中選取 [等於 (=)]。
輸入一個規則運算式模式。 在這裡範例中,我們使用 模式
(https?):\/\/.*azurewebsites.net(.*)$
。選取 [確定]。
新增動作以重寫位置標頭:
- 在 [動作類型] 清單中選取 [設定]。
- 在 [標頭類型] 清單中選取 [回應]。
- 在 [標頭名稱] 底下選取 [一般標頭]。
- 在 [一般標頭] 清單中選取 [位置]。
- 輸入標頭值。 在此範例中,我們會使用
{http_resp_Location_1}://contoso.com{http_resp_Location_2}
作為標頭值。 這個值會azurewebsites.net
contoso.com
取代 為位置標頭中的 。 - 選取 [確定]。
選取 [建立 ] 以建立重寫集。
[ 重寫] 窗格隨即開啟。 確認您建立的重寫集位於重寫集清單中。
相關內容
若要深入瞭解如何設定一些常見的使用案例,請參閱 常見標頭重寫案例。