ESA使用規則運算式作為特定請求的過濾器,您可以使用通用的文法規則來配置規則運算式,以實現各個規則功能精細化管控配置。
注意事項
同一個功能,如果在全域配置和規則上都添加了配置,那麼使用者請求命中規則條件的時候,規則上的配置優先生效。
單條規則配置(規則條件+功能配置)的長度限制為4k字元。
網站維度上所有的配置資訊(包含全域配置和規則配置)限制總大小不超過512K位元組(安全防護中的規則配置除外)。
規則名稱的長度限制為128字元。
單個過濾條件
在應對簡單的業務情境時,單條規則運算式即可覆蓋。單條規則運算式由匹配欄位、匹配運算子以及匹配值組成。在控制台中,如果請求匹配以下規則...的配置地區即對應著規則運算式,預設會為您選擇方便您進行過濾條件的配置。
當然您也可以選擇來應用於所有請求,實現全域配置的效果。

除了使用控制台的圖形化控制項來建立規則運算式,您還可以直接通過編輯運算式來建立。
多個過濾條件
條件的邏輯組合
在部分情況下,僅通過一個過濾條件可能無法滿足業務需求,因此ESA的規則為您提供了多條子過濾條件的組合功能,其中包括兩種邏輯關係:
並且關係:單擊
按鈕來建立邏輯中的並且關係,例如設定過濾條件為主機名稱等於example-1.com並且省/地區等於中國內地的規則運算式可以參考下圖。
或關係:單擊
按鈕來建立邏輯關係中的或關係,例如設定過濾條件為“主機名稱等於example-1.com或者主機名稱等於example-2.com”的規則運算式可以參考下圖。
單條規則中的內嵌子條件數量與您的套餐類型相關,企業版最多可以支援20條,具體請參見規則內嵌子條件數量。
嵌套層級
ESA的規則支援您在或關係中再嵌套並且關係,即支援最大嵌套深度為2層。例如同時設定過濾條件為:
主機名稱等於
example-1.com的請求。或者主機名稱等於
example-2.com並且省/地區不在中國內地的請求。或者主機名稱等於
example-3.com的請求。

附加功能
您還可以在規則運算式中使用以下規則語言:
分組符號允許您明確地將需要一起求值的運算式分組。
函數允許您操作和驗證運算式中的值。
運算式產生器
除了圖形化方式,ESA還提供運算式產生器,您可以通過代碼來配置規則運算式。
運算式產生預覽
當您使用控制台的圖形控制項配置了規則運算式後,ESA將為您自動產生完全對應的代碼形式的運算式。

單條的運算式符合以下格式:
單條運算式 = (<匹配欄位> <匹配運算子> <匹配值>),如(http.host eq "example-1.com")
嵌套的運算式符合以下格式:
巢狀表格達式 = (<單條運算式1> <嵌套邏輯符> <單條運算式2>),如(http.host eq "example-1.com" and http.host eq "example-2.com")
編輯運算式
您也可以直接通過單擊編輯運算式來進行規則運算式的配置,有關不同子功能的可以支援的類型請參見匹配欄位、匹配運算子以及匹配值。