分享方式:


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

本文說明如何使用 Azure 入口網站 來設定 Azure 應用程式閘道 v2 SKU 實例來重寫 URL。

注意

URL 重寫功能僅適用於 Standard_v2 和 Web 應用程式防火牆_v2 應用程式閘道 SKU。 在啟用 Web 應用程式防火牆 的閘道上設定 URL 重寫時,Web 應用程式防火牆 重寫的要求標頭和 URL 上進行評估。 如需詳細資訊,請參閱搭配 Web 應用程式防火牆 使用 URL 重寫或主機標頭重寫(WAF_v2 SKU)。

如尚未擁有 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. 選取 [ 重寫集]。

    顯示新增重寫集的螢幕快照。

  4. 輸入重寫集的名稱,並將它與路由規則產生關聯:

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

    2. 在 [ 相關聯的路由規則] 清單中,選取一或多個規則。 此步驟會透過路由規則將重寫組態與來源接聽程式產生關聯。 只選取尚未與其他重寫集相關聯的路由規則。 已經與其他重寫集相關聯的規則會呈現暗灰色。

    3. 選取 [下一步]。

    顯示與規則建立關聯的螢幕快照。

  5. 建立重寫規則:

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

      顯示 [新增重寫規則] 的螢幕快照。

    2. 在 [ 重寫規則名稱 ] 方塊中,輸入重寫規則的名稱。

    3. 在 [ 規則順序] 方塊中,輸入數位。

  6. 在此範例中,我們只會在路徑包含 /article時重寫 URL 路徑和 URL 查詢字串。 若要執行此步驟,請新增條件來評估 URL 路徑是否包含 /article

    1. 選取 [ 新增條件],然後選取包含 [If ] 指示的方塊加以展開。

    2. 在要檢查的變數類型清單中,選取 [伺服器變數]。 在此範例中,我們想要檢查 URL 路徑中的模式 /article

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

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

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

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

      括弧 () 可用來擷取子字串,以供稍後用來撰寫運算式來重寫 URL 路徑。 如需詳細資訊,請參閱 模式比對和擷取。

    7. 選取 [確定]。

    顯示條件的螢幕快照。

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

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

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

    3. 在 [元件] 下,選取 [URL 路徑] 和 [URL 查詢字串]。

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

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

      {var_uri_path_1}{var_uri_path_2} 路徑可用來擷取在評估表達式中條件時擷取的子字串.*article/(.*)/(.*)

    6. 選取 [確定]。

    顯示動作的螢幕快照。

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

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

    顯示新增重寫規則的螢幕快照。

透過存取記錄確認 URL 重寫

觀察存取記錄中的下列欄位,以確認 URL 重寫是否根據您的預期發生:

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

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

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