← Cloudflare Ruleset Engine / ruleset-engine / about
Правила
Правило определяет фильтр и действие, выполняемое для входящих запросов, соответствующих этому фильтру.
- Правило выражение, также называемое выражением фильтра, определяет область действия правила.
- Правило действие определяет, что происходит при совпадении с выражением.
Выражения правил определяются с помощью Язык правил.
Например, рассмотрим следующий набор правил с четырьмя правилами (R1, R2, R3 и R4). Для данного входящего запроса свойствам запроса соответствуют выражения первых двух правил. Поэтому для этих правил выполняется действие (Выполнить и Log, соответственно). Действие первого правила выполняет управляемый набор правил, то есть выполняется каждое правило из этого набора. Действие второго правила регистрирует событие, связанное с текущей фазой. Выражения правил 3 и 4 не совпадают, поэтому их действия не выполняются. Поскольку ни одно правило не блокирует запрос, он переходит к следующей фазе.
Отдельные продукты Cloudflare добавляют правилам дополнительные возможности. Благодаря им вам могут быть доступны дополнительные поля для выражений правил, другие действия или дополнительные настройки поведения в конкретной фазе.
Обработка правила
При вычислении правила Cloudflare сравнивает значения свойств запроса/ответа или производные значения (полученные с помощью поля) с теми, что заданы в выражении фильтра правила.
Если всё выражение принимает значение true, происходит совпадение правила, и Cloudflare запускает действие заданное в правиле. Если выражение принимает значение false, правило не совпадает, и заданное для него действие не применяется.
Как правило, для нетерминирующие действия последнее изменение, внесённое правилами в той же фаза будет иметь приоритет (более поздние правила могут перезаписывать изменения, внесённые предыдущими правилами). Однако для завершающих действий (Block, Перенаправление, или одно из действий проверки), обработка правил остановится, и действие будет выполнено немедленно.
Например, если несколько правил с Перенаправление совпадение действия, Cloudflare всегда будет использовать URL redirect первого совпавшего правила. Кроме того, если вы настраиваете URL redirect с помощью разных продуктов Cloudflare (Single Redirects и Bulk Redirects), применяется продукт, который выполняется первым при совпадении правила (в данном случае Single Redirects).
См. Список фаз с порядком выполнения продуктов.
Если вы используете true в качестве выражения фильтра правила означает, что правило «применяется к каждому входящему запросу» на текущем фаза уровне, которым может быть зона или аккаунт.
Значения полей при оценке правила
При оценке правил для конкретного запроса или ответа значения всех полей запроса и ответа поля остаются неизменными в пределах каждой фазы. Однако значения полей могут меняться между фазами.
Например:
- Если Правило перезаписи URL #1 обновляет путь URI или строку запроса, правило перезаписи URL #2 не будет учитывать эти более ранние изменения.
- Если правило преобразования заголовка запроса #1 задает значение заголовка HTTP-запроса, правило преобразования заголовка запроса #2 не сможет прочитать это новое значение или оценить его.
- Если правило перезаписи URL обновляет путь URI или строку запроса,
http.request.uri,http.request.uri.*, а такжеhttp.request.full_uriполя будут иметь другое значение на фазах, следующих заhttp_request_transformфазы (в которой выполняются URL Rewrite Rules).