规则表达式的组成

更新时间:2025-04-22 08:07:11

ESA以规则为内核,运用至所有的功能规则中,所以您可以通过通用的语法规则来结合不同的子功能来完成规则的配置。

注意事项

  • 同一个功能,如果在全局配置和规则上都添加了配置,那么用户请求命中规则条件的时候,规则上的配置优先生效。

  • 单条规则配置(规则条件+功能配置)的长度限制为4k字符。

  • 站点维度上所有的配置信息(包含全局配置和规则配置)限制总大小不超过512K字节(安全防护中的规则配置除外)。

  • 规则名称的长度限制为128字符。

规则组成

一条ESA的规则通常由规则表达式规则执行动作两个部分组成。单条规则条件的大小不超过4K字节,站点维度上所有的配置信息限制总大小不超过512K字节(安全防护中的规则配置除外)。

规则表达式

表示您对请求的过滤条件。由匹配字段匹配运算符以及匹配值组成。在控制台中,如果请求匹配以下规则...的配置区域即对应着规则表达式,默认会为您选择传入请求类型 > 自定义规则方便您进行过滤条件的配置。

当然您也可以选择传入请求类型 > 所有传入请求来应用于所有请求,实现全局配置的效果。

image

说明

除了使用控制台的图形化控件来创建规则表达式,您还可以直接通过编辑表达式来创建。

规则执行动作

表示您想要对满足过滤条件的请求执行的动作。在控制台中,则执行...的配置区域,您可以使用规则按照不同的功能来进行配置。

image

多个条件的组合

条件的逻辑组合

在部分情况下,仅通过一个过滤条件可能无法满足业务需求,因此ESA的规则为您提供了多条子条件的组合功能,其中包括两种逻辑关系:

  • 并且关系:单击image按钮来创建逻辑中的并且关系,例如设置过滤条件为主机名等于example-1.com并且国家/地区等于中国内地的规则表达式可以参考下图。image

  • 或关系:单击image按钮来创建逻辑关系中的关系,例如设置过滤条件为“主机名等于example-1.com或者主机名等于example-2.com”的规则表达式可以参考下图。image

说明

单条规则中的内嵌子条件数量与您的套餐类型相关,企业版最多可以支持20条,具体请参见规则内嵌子条件数量

嵌套层级

ESA的规则支持您在或关系中再嵌套并且关系,即支持最大嵌套深度为2层。例如同时设置过滤条件为:

  • 主机名等于example-1.com的请求。

  • 或者主机名等于example-2.com并且国家/地区不在中国内地的请求。

  • 或者主机名等于example-3.com的请求。

image

表达式生成器

除了图形化方式,ESA还提供表达式生成器,您可以通过代码来配置规则表达式。

表达式生成预览

当您使用控制台的图形控件配置了规则表达式后,ESA将为您自动生成完全对应的代码形式的表达式。

image

  • 单条的表达式符合以下格式:

    单条表达式 = (<匹配字段> <匹配运算符> <匹配值>),如(http.host eq "example-1.com")
  • 嵌套的表达式符合以下格式:

    嵌套表达式 = (<单条表达式1> <嵌套逻辑符> <单条表达式2>),如(http.host eq "example-1.com" and http.host eq "example-2.com")

编辑表达式

您也可以直接通过单击编辑表达式来进行规则表达式的配置,有关不同子功能的可以支持的类型请参见匹配字段匹配运算符以及匹配值image

  • 本页导读
  • 注意事项
  • 规则组成
  • 规则表达式
  • 规则执行动作
  • 多个条件的组合
  • 条件的逻辑组合
  • 嵌套层级
  • 表达式生成器
  • 表达式生成预览
  • 编辑表达式