使用 Azure 應用程式閘道來重寫 HTTP 要求和回應標頭 - Azure 入口網站

本文說明如何使用 Azure 入口網站來設定應用程式閘道 v2 SKU 執行個體,以重寫要求和回應中的 HTTP 標頭。

如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶

開始之前

您必須具有應用程式閘道 v2 SKU 執行個體才能完成本文中的步驟。 v1 SKU 不支援重寫標頭。 如果您沒有 v2 SKU,請在開始之前建立應用程式閘道 v2 SKU 執行個體。

建立必要的物件

若要設定 HTTP 標頭重寫,您需要完成以下步驟。

  1. 建立 HTTP 標頭重寫程序所需的物件:

    • 重寫動作:用來指定您想要重寫的要求和要求標頭欄位,以及指定標頭的新值。 您可以將一或多個重寫條件與重寫動作產生關聯。

    • 重寫條件:這是選用設定。 重寫條件會評估 HTTP(S) 要求和回應的內容。 如果 HTTP(S) 要求或回應符合重寫條件,將會執行重寫動作。

      如果您將多個條件與某個動作產生關聯,則只有在符合所有條件時,才會執行此動作。 換句話說,這是一種邏輯 AND 運算。

    • 重寫規則:包含多個重寫動作/重寫條件組合。

    • 規則順序:協助判斷重寫規則執行的順序。 當您在重寫集中有多個重寫規則時,此設定可協助您判斷順序。 規則順序值較低的重寫規則優先執行。 如果將相同的規則順序值指派給兩個重寫規則,系統就不會決定執行的順序。

    • 重寫集:包含多個與要求路由規則相關聯的重寫規則。

  2. 將重寫集連結至路由規則。 重寫設定會透過路由規則連結至來源接聽程式。 使用基本路由規則時,標頭重寫設定會與來源接聽程式產生關聯,而且是全域標頭重寫。 使用路徑型路由規則時,則是在 URL 路徑對應上定義標頭重寫設定。 在此情況下,僅適用於網站的特定路徑區域。

您可以建立多個 HTTP 標頭重寫集,並將每個重寫集套用至多個接聽程式。 但您只能將一個重寫集套用至一個特定接聽程式。

登入 Azure

使用您的 Azure 帳戶登入 Azure 入口網站

設定標頭重寫程序

在此範例中,我們會在後端應用程式所傳送的 HTTP 回應中重寫位置標頭,藉此修改重新導向 URL。

  1. 選取 [所有資源],然後選取您的應用程式閘道。

  2. 在左窗格中選取 [重寫]

  3. 選取 [重寫集]

    Add rewrite set

  4. 為重寫集提供名稱,並將其與路由規則產生關聯:

    • 在 [名稱] 方塊中輸入重寫集的名稱。

    • 在 [相關聯的路由規則] 清單中選取所列的一或多個規則。 您只能選取尚未與其他重寫集產生關聯的規則。 已經與其他重寫集產生關聯的規則會呈現灰色。

    • 選取 [下一步]。

      Add name and association

  5. 建立重寫規則:

    • 選取 [新增重寫規則]

      Add rewrite rule

    • 在 [重寫規則名稱] 方塊中輸入重寫規則的名稱。 在 [規則順序] 方塊中輸入數字。

      Add rewrite rule name

  6. 在此範例中,只有當位置標頭包含 azurewebsites.net 的參考時,才會重寫位置標頭。 若要重寫位置標頭,請新增條件來評估回應中的位置標頭是否包含 azurewebsites.net:

    • 選取 [新增條件],然後選取並展開包含 [如果] 指示的方塊。

      Add a condition

    • 在 [要檢查的變數類型] 清單中,選取 [HTTP 標頭]

    • 在 [標頭類型] 清單中選取 [回應]

    • 因為在此範例中,我們會評估位置標頭 (這是一般標頭),請在 [標頭名稱] 底下選取 [一般標頭]

    • 在 [一般標頭] 清單中選取 [位置]

    • 在 [區分大小寫] 下方選取 [否]

    • 在 [運算子] 清單中選取 [等於 (=)]

    • 輸入一個規則運算式模式。 在此範例中,我們會使用模式 (https?):\/\/.*azurewebsites.net(.*)$

    • 選取 [確定]。

      Configure an If condition

  7. 新增動作以重寫位置標頭:

    • 在 [動作類型] 清單中選取 [設定]

    • 在 [標頭類型] 清單中選取 [回應]

    • 在 [標頭名稱] 底下選取 [一般標頭]

    • 在 [一般標頭] 清單中選取 [位置]

    • 輸入標頭值。 在此範例中,我們會使用 {http_resp_Location_1}://contoso.com{http_resp_Location_2} 作為標頭值。 此值會以位置標頭中的「contoso.com」來取代「azurewebsites.net」

    • 選取 [確定]。

      Add an action

  8. 選取 [建立] 以建立重寫集:

    Select Create

  9. [重寫集] 檢視會隨即開啟。 確認您所建立的重寫集位於重寫集清單中:

    Rewrite set view

下一步

若要深入了解如何設定一些常見的使用案例,請參閱常見的標頭重寫案例