規則集動作

Azure Front Door 規則集 是由規則所組成,其中包含符合條件和動作的組合。 本文提供您可以在規則集中使用的動作詳細描述。 動作會定義套用至符合條件所識別之要求類型的行為。 在規則集中,規則最多可以有五個動作。 Front Door 也支援 規則集動作中的伺服器變數

下列動作可用於規則集:

路由組態覆寫

路由 組態覆寫 動作可用來覆寫來源群組或要求的快取組態。 您可以選擇覆寫或接受路由中指定的原始群組組態。 不過,當您覆寫路由設定時,您必須設定快取。 否則,快取會針對要求停用。

您也可以覆寫檔案針對特定要求快取的方式,包括:

  • 覆寫原始來源所指定的快取行為。
  • 查詢字串參數如何用來產生要求的快取索引鍵。
  • 存留時間 (TTL) 值,可控制內容在快取中停留的時間長度。

屬性

屬性 支援值
覆寫原始群組
  • 是: 覆寫用於要求的源群組。
  • 否: 使用路由中指定的原始群組。
快取功能
  • 已啟用: 強制為要求啟用快取。
  • 已停用: 強制停用要求的快取。

當 [覆寫原始群組] 設定為 [是] 時,請設定下列屬性:

屬性 支援值
原始群組 要求應路由傳送至的來源群組。 此設定會覆寫 Front Door 端點路由中指定的組態。
轉寄通訊協定 Front Door 在將要求轉送至來源時要使用的通訊協定。 支援的值為僅限 HTTP、僅限 HTTPS、符合連入要求。 此設定會覆寫 Front Door 端點路由中指定的組態。

當 [快取] 設定為 [已啟用] 時,請設定下列屬性:

屬性 支援值
查詢字串快取行為
  • 忽略查詢字串: 產生快取索引鍵時,不會考慮查詢字串。 在 ARM 樣本中,將 queryStringCachingBehavior 屬性設定為 IgnoreQueryString
  • 使用查詢字串: 每個唯一 URL 都有自己的快取索引鍵。 在 ARM 樣本中,使用 queryStringCachingBehaviorUseQueryString
  • 忽略指定的查詢字串: 產生快取索引鍵時,會排除參數中指定的查詢字串。 在 ARM 樣本中,將 queryStringCachingBehavior 屬性設定為 IgnoreSpecifiedQueryStrings
  • 包含指定的查詢字串: 產生快取索引鍵時,會包含參數中指定的查詢字串。 在 ARM 樣本中,將 queryStringCachingBehavior 屬性設定為 IncludeSpecifiedQueryStrings
查詢參數 查詢字串參數名稱的清單,以逗號分隔。 只有當查詢字串快取行為設定為 [忽略指定的查詢字串] 或 [包含指定的查詢字串] 時,才會設定此屬性。
壓縮
  • 已啟用: Front Door 會動態壓縮邊緣的內容,進而產生更小且更快的回應。 如需詳細資訊,請參閱 檔案壓縮。 在 ARM 樣本中,將 isCompressionEnabled 屬性設定為 Enabled
  • Disabled。 Front Door 不會執行壓縮。 在 ARM 樣本中,將 isCompressionEnabled 屬性設定為 Disabled
快取行為
  • 榮譽來源: Front Door 一律接受原始響應標頭指示詞。 如果來源指示詞遺失,Front Door 會在 1 到 3 天的任何位置快取內容。 在 ARM 樣本中,將 cacheBehavior 屬性設定為 HonorOrigin
  • 覆寫一律: 從原始來源傳回的 TTL 值會以動作中指定的值覆寫。 只有在回應可快取時,才會套用此行為。 在 ARM 樣本中,將 cacheBehavior 屬性設定為 OverrideAlways
  • 如果來源遺失,請覆寫: 如果來源未傳回任何 TTL 值,規則會將 TTL 設定為動作中指定的值。 只有在回應可快取時,才會套用此行為。 在 ARM 樣本中,將 cacheBehavior 屬性設定為 OverrideIfOriginMissing
快取持續時間 當快取行為設定為 Override alwaysOverride if origin missing,這些字段必須指定要使用的快取持續時間。 持續時間上限為366天。 對於 0 秒的值,CDN 會快取內容,但必須使用源伺服器重新驗證每個要求。 只有當快取行為設定為 [一律覆寫] 時,才會設定這個屬性,如果原始來源遺失,則此屬性才會設定為 [覆寫]。
  • 在 Azure 入口網站 中:指定天、小時、分和秒。
  • 在 ARM 範本中:使用 cacheDuration 來指定 格式 d.hh:mm:ss的持續時間。

範例

在此範例中,我們會將所有相符的要求路由傳送至名為 MyOriginGroup的來源群組,而不論 Front Door 端點路由中的設定為何。

顯示原始群組覆寫動作的入口網站螢幕快照。

在此範例中,我們將快取索引鍵設定為包含名為的 customerId查詢字串參數。 已啟用壓縮,並接受原始來源的快取原則。

顯示快取金鑰查詢字串動作的入口網站螢幕快照。

在此範例中,我們會針對尚未指定快取持續時間的相符要求,覆寫快取到期至 6 小時。 Front Door 會在判斷快取索引鍵並啟用壓縮時忽略查詢字串。

顯示快取到期動作的入口網站螢幕快照。

修改要求標頭

使用修改要求標頭動作,在傳送至來源時修改要求中的標頭。

屬性

屬性 支援值
運算子
  • Append: 指定的標頭會新增至具有指定值的要求。 如果標頭已經存在,則會使用字串串連將值附加至現有的標頭值。 未新增分隔符。 在 ARM 樣本中,使用 headerActionAppend
  • 覆寫: 指定的標頭會新增至具有指定值的要求。 如果標頭已經存在,則指定的值會覆寫現有的值。 在 ARM 樣本中,使用 headerActionOverwrite
  • 刪除: 如果規則中指定的標頭存在,標頭就會從要求中刪除。 在 ARM 樣本中,使用 headerActionDelete
標頭名稱 要修改的標頭名稱。
標頭值 要附加或覆寫的值。

範例

在此範例中,我們會將 值 AdditionalValue 附加至 MyRequestHeader 要求標頭。 如果原點會回應標頭設定為的值 ValueSetByClient,則套用此動作之後,要求標頭的值會是 ValueSetByClientAdditionalValue

顯示修改要求標頭動作的入口網站螢幕快照。

修改回應標頭

使用修改響應標頭動作來修改回應中存在的標頭,再傳回您的用戶端。

屬性

屬性 支援值
運算子
  • Append: 指定的標頭會新增至具有指定值的回應。 如果標頭已經存在,則會使用字串串連將值附加至現有的標頭值。 未新增分隔符。 在 ARM 樣本中,使用 headerActionAppend
  • 覆寫: 指定的標頭會新增至具有指定值的回應。 如果標頭已經存在,則指定的值會覆寫現有的值。 在 ARM 樣本中,使用 headerActionOverwrite
  • 刪除: 如果規則中指定的標頭存在,標頭就會從響應中刪除。 在 ARM 樣本中,使用 headerActionDelete
標頭名稱 要修改的標頭名稱。
標頭值 要附加或覆寫的值。

範例

在此範例中,我們會先刪除具有回應名稱 X-Powered-By 的標頭,再將其傳回給用戶端。

顯示修改響應標頭動作的入口網站螢幕快照。

URL 重新導向

使用URL重新 導向 動作,將用戶端重新導向至新的URL。 用戶端會從 Front Door 傳送重新導向回應。

屬性

屬性 支援值
重新導向類型 要傳回給要求者的回應類型。
  • 在 Azure 入口網站:發現(302),移動(301),臨時重新導向(307),永久重新導向(308)。
  • 在 ARM 樣本中:Found、、MovedTemporaryRedirectPermanentRedirect
重新導向通訊協定
  • 在 Azure 入口網站:Match Request、、 HTTPHTTPS
  • 在 ARM 樣本中:MatchRequest、、 HttpHttps
目的地主機 您想要將要求重新導向至的主機名。 保留空白以保留傳入主機。
目的地路徑 重新導向中使用的路徑。 包含前置 /。 保留空白以保留傳入路徑。
查詢字串 重新導向中使用的查詢字串。 請勿包含前置 ?。 保留空白以保留傳入查詢字串。
目的地片段 要用於重新導向的片段。 保留空白以保留傳入片段。

範例

在此範例中,我們會將要求重新導向至 https://contoso.com/exampleredirection?clientIp={client_ip},同時保留片段。 使用 HTTP 暫存重新導向 (307)。 用戶端的IP位址是用來取代 {client_ip} URL內的令牌,方法是使用 client_ip伺服器變數

顯示 URL 重新導向動作的入口網站螢幕快照。

URL 重寫

使用 URL 重寫動作來重寫路由至您來源的要求路徑。

屬性

屬性 支援值
來源模式 在 URL 路徑中定義要取代的來源模式。 目前,來源模式使用基於前置詞的比對。 若要符合所有 URL 路徑,請使用正斜線 (/) 作為來源模式值。
Destination 定義重寫中使用的目的地路徑。 目的地路徑會覆寫來源模式。
保留未比對的路徑 如果設定為 [是],來源模式之後的剩餘路徑會附加至新的目的地路徑。

範例

在此範例中,我們會將所有要求重寫至路徑 /redirection,而且不會保留路徑的其餘部分。

顯示 URL 重寫動作的入口網站螢幕快照。

重要

Azure Front Door(傳統版)將於 2027 年 3 月 31 日淘汰。 為了避免任何服務中斷,請務必在 2027 年 3 月之前將 Azure Front Door (傳統) 配置檔移轉至 Azure Front Door Standard 或 進階版 層。 如需詳細資訊,請參閱 Azure Front Door(傳統版)淘汰

在 Azure Front Door(傳統版)中,規則引擎最多可以包含 25 個規則,其中包含相符的條件和相關聯的動作。 本文提供您可以在規則中定義之每個動作的詳細描述。

動作會定義套用至符合條件或一組比對條件的要求類型的行為。 在規則引擎設定中,規則最多可以有10個比對條件和5個動作。 在單一規則中,您只能有一個 覆寫路由 設定動作。

下列動作可用於規則引擎組態。

修改要求標頭

使用這些動作來修改傳送至後端的要求中存在的標頭。

必填欄位

動作 HTTP 標頭名稱
附加 選取此選項且規則相符時,標頭名稱中指定的標頭會新增至具有指定值的要求。 如果標頭已存在,則會將值附加至現有的值。 String
覆寫 選取此選項且規則相符時,標頭名稱中指定的標頭會新增至具有指定值的要求。 如果標頭已經存在,則指定的值會覆寫現有的值。 String
刪除 當選取此選項時,具有相符的規則,且規則中指定的標頭存在,標頭就會從要求中刪除。 String

修改回應標頭

使用這些動作來修改回應中傳回給客戶端的標頭。

必填欄位

動作 HTTP 標頭名稱
附加 選取此選項且規則相符時,標頭名稱中指定的標頭會使用指定的 Value 新增至回應。 如果標頭已存在, Value 會附加至現有的值。 String
覆寫 選取此選項且規則相符時,標頭名稱中指定的標頭會使用指定的 Value 新增至回應。 如果標頭已經存在, Value 會覆寫現有的值。 String
刪除 當選取此選項時,具有相符規則,且規則中指定的標頭存在,則標頭會從回應中刪除。 String

路由組態覆寫

路由類型:重新導向

使用這些動作將用戶端重新導向至新的URL。

必填欄位

欄位 描述
重新導向類型 重新導向是將使用者/用戶端從一個URL傳送到另一個URL的方式。 重新導向類型會設定用戶端用來瞭解重新導向用途的狀態代碼。

您可以選取下列重新導向狀態代碼:找到 (302)、已移動 (301)、暫時重新導向 (307) 和永久重新導向 (308)。
重新導向通訊協定 根據傳入要求保留通訊協定,或定義重新導向的新通訊協定。 例如,針對 HTTP 至 HTTPS 重新導向選取 [HTTPS]。
目的地主機 將此值設定為變更重新導向 URL 中的主機名,或從傳入要求保留主機名。
目的地路徑 請根據傳入要求保留路徑,或更新重新導向URL中的路徑。
查詢字串 設定此值以取代傳入要求 URL 中的任何現有查詢字串,否則會保留原始的查詢字串集。
目的地片段 目的地片段是 URL 之後的一部分,通常供瀏覽器用來登陸頁面上的特定區段。 將此值設定為將片段新增至重新導向URL。

路由類型:轉寄

使用這些動作將用戶端轉送至新的URL。 這些動作也包含 URL 重寫和快取的子動作。

欄位 描述
後端集區 選取要覆寫並處理要求的後端集區,您會在 Front Door 配置檔中看到目前所有預先設定的後端集區。
轉寄通訊協定 用來將要求轉送至後端的通訊協定,或比對來自傳入要求的通訊協定。
URL 重寫 建構 URL 重寫要求以轉送至後端時要使用的路徑。
快取功能 啟用此路由規則的快取。 啟用時,Azure Front Door 會快取靜態內容。

URL 重寫

使用此設定可設定選擇性 的自定義轉送路徑 ,以在建構要轉送至後端的要求時使用。

欄位 描述
自訂轉送路徑 定義要轉送要求的路徑。

快取功能

使用這些設定來控制檔案如何快取包含查詢字串的要求。 是要根據所有參數或選取的參數來快取內容。 您可以使用這些設定來覆寫存留時間 (TTL) 值,以控制內容保留在快取中的時間長度。 若要強制快取作為動作,請將快取欄位設定為 「已啟用」。當您強制快取時,會出現下列選項:

快取行為 描述
忽略查詢字串 快取資產之後,所有之後的要求都會忽略查詢字串,直到快取的資產到期為止。
使用查詢字串 每個具有唯一 URL 的要求,包括查詢字串,都會被視為具有其本身快取的唯一資產。
忽略指定的查詢字串 快取會忽略「查詢參數」設定中列出的要求 URL 查詢字串。
包含指定的查詢字串 「查詢參數」設定中列出的要求 URL 查詢字串會用於快取。
其他欄位 描述
動態壓縮 Front Door 可以動態壓縮邊緣的內容,進而產生更小且更快的回應。
查詢參數 允許或不允許參數的逗號分隔清單,做為快取的基礎。
使用預設快取持續時間 設定為使用 Azure Front Door 預設快取持續時間,或定義忽略原始回應指示詞的快取持續時間。

下一步