使用 Azure 應用程式閘道重寫 URL - Azure 入口網站

本文說明如何使用 Azure 入口網站來設定應用程式閘道 v2 SKU 執行個體以重寫 URL。

注意

URL 重寫功能僅適用於應用程式閘道的 Standard_v2 和 WAF_v2 SKU。 若對啟用了 WAF 的閘道設定 URL 重寫,將會對重寫的要求與 URL 執行 WAF 評估。 深入了解

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

開始之前

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

登入 Azure

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

設定 URL 重寫

在下列範例中,每當要求 URL 中包含 /article 時,就會重寫 URL 路徑和 URL 查詢字串

contoso.com/article/123/fabrikam ->contoso.com/article.aspx?id=123&title=fabrikam

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

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

  3. 選取 [重寫集]

    Add rewrite set

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

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

    b. 選取 [相關聯的路由規則] 清單中所列的一或多個規則。 這麼做可以透過路由規則將重寫設定與來源接聽程式產生關聯。 您只能選取尚未與其他重寫集產生關聯的路由規則。 已經與其他重寫集產生關聯的規則會呈現灰色。

    c. 選取 [下一步]。

    Associate to a rule

  5. 建立重寫規則:

    a. 選取 [新增重寫規則]

    Screenshot that highlights Add rewrite rule.

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

  6. 在此範例中,我們只會在路徑中包含「/article」時重寫 URL 路徑和 URL 查詢字串。 若要這樣做,請新增條件以評估 URL 路徑是否包含「/article」

    a. 選取 [新增條件],然後選取包含 [如果] 指示的方塊以展開它。

    b. 由於在此範例中,我們想要檢查 URL 路徑中的「/article」模式,請在 [待檢查變數類型] 清單中選取 [伺服器變數]

    c. 在 [伺服器變數] 清單中選取 [uri_path]

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

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

    f. 輸入一個規則運算式模式。 在此範例中,我們會使用模式 .*article/(.*)/(.*)

    ( ) 可用來擷取子字串,以便稍後拿來撰寫運算式以重寫 URL 路徑。 如需詳細資訊,請參閱此處

    .g 選取 [確定]。

    Condition

  7. 新增動作以重寫 URL 和 URL 路徑

    a. 在 [重寫類型] 清單中,選取 [URL]

    b. 在 [動作類型] 清單中,選取 [設定]

    c. 在 [元件] 下方選取 [URL 路徑和 URL 查詢字串]

    d. 在 [URL 路徑值] 中輸入路徑的新值。 在此範例中,我們會使用 /article.aspx

    e. 在 URL 查詢字串值中,輸入 URL 查詢字串的新值。 在此範例中,我們會使用 id={var_uri_path_1}&title={var_uri_path_2}

    {var_uri_path_1}{var_uri_path_2} 可用來擷取在評估此運算式 .*article/(.*)/(.*) 中的條件時擷取的子字串

    f. 選取 [確定]。

    Action

  8. 按一下 [建立] 以建立重寫集。

  9. 確認新的重寫集會出現在重寫集清單中

    Add rewrite rule

透過存取記錄確認重寫 URL

請觀察以下存取記錄欄位以確認 URL 重寫是否如預期般發生。

  • originalRequestUriWithArgs:此欄位包含原本的要求 URL
  • requestUri:此欄位包含應用程式閘道重寫作業後的 URL

如需存取記錄中所有欄位的詳細資訊,請參閱這裡

下一步

若要深入了解在某些常見使用案例中設定重寫的方式,請參閱常見的重寫案例