← Cloudflare Ruleset Engine / ruleset-engine / rules-language
Выражения
Rules language поддерживает два вида выражений: простые и составные.
Простые выражения
Простые выражения сравнить значение из HTTP-запроса со значением, заданным в выражении. Например, следующее простое выражение соответствует запросам Microsoft Exchange Autodiscover:
http.request.uri.path matches "/autodiscover\.(xml|src)$"Простые выражения имеют следующий синтаксис:
<field> <comparison_operator> <value>Где:
-
Поля определяют свойства, связанные с HTTP-запросом.
-
Операторы сравнения определяют, как значения должны соотноситься с фактическими данными запроса, чтобы выражение вернуло
true. -
Значения представляют данные, связанные с полями. При оценке правила Cloudflare сравнивает эти значения с фактическими данными, полученными из запроса.
Составные выражения
Составные выражения используйте логические операторы например, 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>Составные выражения позволяют создавать сложные, точно нацеленные правила.
Максимальная длина выражения правила
Максимальная длина выражения правила составляет 4096 символов.
Это ограничение действует независимо от того, используете ли вы визуальный Expression Builder чтобы задать выражение, либо напишите его вручную в Expression Editor.
Максимальное количество регулярных выражений на одно правило
Каждое правило может содержать не более 64 регулярных выражений в своём выражении. Это ограничение действует для всех типов правил, использующих Язык правил.
Правила, превышающие этот лимит, невозможно создать или обновить. Уже существующие правила, превышающие лимит, продолжают работать, но их нельзя изменить, пока выражение не будет упрощено.
Дополнительные функции
В выражениях вы также можете использовать следующие возможности языка Rules:
-
Grouping symbols позволяют явно группировать выражения, которые должны вычисляться вместе.
-
Функции позволяют изменять и проверять значения в выражениях.