
${http.request.uri.path}, ${http.request.method}, used to extract specific information from the request.[ ] according to the operator, such as ['POST'] or [100, 200].Name | Keyword | Supported Data Types | Example | Supported Feature Modules |
Value in the collection | in | String,Number Note: Number supports integer, floating point. Collections support constants and variables. | ${http.request.file_extension} in ["jpg", "png"] | Site acceleration, edge function, Web protection |
Regular expression match | matches | only supports String Note: Only supports regular expressions defined through value strings. | ${http.request.uri.path} matches "^/admin/" | Site acceleration, edge function, Web protection |
Exist | exists | Unlimited data types Note: The operator checks the existence of a field (key/attribute) but not its value. | ${http.request.uri.args["status"]} exists | Site acceleration, edge function, Web protection |
Wildcard match | like | only supports String | ${http.request.uri.path} like "/prod*" | Web Protection |
Inclusion match | contain | only supports String | ${http.request.uri.path} contain ["api", "login"] | Web Protection |
Greater than | > | only supports Number | length(${http.request.headers["user-agent"]}) > 30 | Web Protection |
Less than | < | Only supports Number | length(${http.request.headers["user-agent"]}) < 10 | Web Protection |
A and B). A or B). not A).//Means "satisfy both condition A and (condition B or not condition C) at the same time."${A} and (${B} or not ${C})
${}, supporting dot notation and index access inside, such as ${http.request.headers['User-Agent']}, ${security.ip_group['123'@'zone-xyz']}. in ['value1','value2']; numeric values can be written directly like > 100; empty values use the special keyword null (see special variables). in ['POST'] or in [200]. @, .), no need to escape them. and, or, not, in, like, contain). Field names are case-sensitive (for example, User-Agent and user-agent are different).lower(${http.request.uri.args['Test']}) in ['a', 'b']./api/v3/test or /api/v3/submit, and the HTTP request method is POST, it will trigger.${http.request.uri.path} in ['/api/v3/test','/api/v3/submit'] and ${http.request.method} in ['POST']
1.1.1.1, belonging to subnet 10.10.10.0/24, or with autonomous system number (ASN) 132203.${http.request.ip} in ['1.1.1.1','10.10.10.0/24'] or ${http.request.ip.asn} in ['132203']
one.example.com.${http.request.headers['referer']} in ['one.example.com']
length(${http.request.body}) < 30
/a/wildcard/path/ or /another/wildcard/path/.${http.request.uri.path} like ['/a/wildcard/path/*','/another/wildcard/path/*']
${http.request.uri.path} contain ['api','test']
not ${http.request.headers['Accepts']} exists and ${http.request.headers['CustomHeader']} in ['']
Feedback