跳转到内容
搜索文档

表达式

最后更新 查看 MarkdownAgent 设置

Rules language 支持两种表达式:简单表达式和复合表达式。

简单表达式

简单表达式 (Simple expressions) 将 HTTP 请求中的值与表达式中定义的值进行比较。例如,此简单表达式匹配 Microsoft Exchange Autodiscover 请求:

http.request.uri.path matches "/autodiscover\.(xml|src)$"

简单表达式具有以下语法:

<field> <comparison_operator> <value>

其中:

复合表达式

复合表达式 (Compound expressions) 使用逻辑运算符 (logical operators)(如 and)将两个或多个表达式组合成一个表达式。

例如,此表达式使用 and 运算符定位到目标为 www.example.com 且不在端口 80 或 443 上的请求:

http.host eq "www.example.com" and not cf.edge.server_port in {80 443}

复合表达式具有以下通用语法:

<expression> <logical_operator> <expression>

复合表达式允许您生成复杂的、高度针对性的规则。

最大规则表达式长度

规则表达式的最大长度为 4,096 个字符。

无论您是使用可视化 Expression Builder 定义表达式,还是在 Expression Editor 中手动编写表达式,此限制都适用。

每个规则的最大正则表达式数

每个规则在其表达式中最多可以包含 64 个正则表达式。此限制适用于所有使用 Rules language 的规则类型。

超过此限制的规则无法被创建或更新。超出此限制的现有规则将继续起作用,但在简化表达式之前无法进行修改。

附加功能

您还可以在表达式中使用以下 Rules language 功能:

这篇文档对您有帮助吗?