Воспользуйтесь редактором подвыражений для создания сложных условий правил на основе подвыражения с помощью AND, OR, NOT и скобочной группировки. Компоновщик правил проверяет правило при применении изменений и предупреждает о наличии несоответствующих скобок и неподдерживаемых логических операторов.
Для того чтобы открыть эту страницу, выберите
.В приведенном ниже списке перечислены варианты выбора логического оператора:
Оператор | Описание |
---|---|
OR | Логический оператор OR. |
AND | Логический оператор AND. |
NOT | Логический оператор NOT. |
Операндом называется часть правила классификации, используемая средой выполнения для сопоставления правила с заданием. Например, если указать, что типом протокола будет HTTP, то среда выполнения будет искать задание с типом протокола HTTP. В приведенном ниже списке перечислены варианты операндов:
Операнд | Синтаксис | Описание |
---|---|---|
Виртуальный хост |
virtualhost | Целевое значение виртуального хоста запроса для связи веб-приложений с определенным хостом. |
Виртуальный порт |
numeric | Целевое значение виртуального порта запроса для связи веб-приложений с определенным портом. |
URI |
uri | Унифицированный идентификатор ресурсов Помогает определить путь запроса: если URL равен http://host:port/path?p1=v1, то путь равен path. |
ИД пользователя |
userid | Возвращает ИД пользователя для идентифицированного пользователя, отправившего запрос. |
ИД группы |
groupingid | Возвращает список имен групп для идентифицированного пользователя, отправившего запрос. |
Имя параметра запроса разрешения |
queryparm$<имя> | Имя и значение заголовка. Например, выражение queryparm$timezone='EST' проверяет, содержится ли в запросе параметр запроса HTTP с именем timezone и значением EST. Для проверки на предмет отсутствия или наличия параметра запроса используется один из следующих форматов:
|
Имя заголовка запроса |
header $<имя> | Имя и значение заголовка. Например, выражение header$Host='localhost' проверяет, содержится ли в запросе заголовок хоста HTTP со значением localhost.
Для проверки на предмет отсутствия или наличия заголовка хоста используется одно из следующих выражений:
|
Имя заголовка Cookie |
cookie$<имя> | Имя cookie. Например, выражение cookie$My_Cookie_Name='My_Cookie_Value' проверяет, содержится ли в запросе cookie с именем My_Cookie_Name и значением My_Cookie_Value. Для проверки на предмет отсутствия или наличия определенной записи cookie используется одно из следующих выражений:
|
Метод HTTP |
HTTPMethod | Метод HTTP для запроса. Возможные значения: POST, GET, PUT и DELETE. |
Хост клиента |
clienthost | Полное имя хоста клиента. Это значение представляет имя хоста в IP-команде. Этот операнд не поддерживает числовые операторы, такие как >, >=, <, <=. |
Клиент IPV4 |
clientipv4 | IP-адрес клиента, использующего тип адреса IPv4 в виде четырех чисел, разделенных точками, - n.n.n.n. |
Клиент IPV6 |
clientipv6 | 28-битовый тип адреса IPv6 в формате x:x:x:x:x:x:x:x, согласно RFC 1924 компьютера клиента. |
Хост сервера |
serverhost | Полное имя хоста сервера. Этот операнд не поддерживает числовые операторы, такие как >, >=, <, <=. |
Сервер IPV4 |
serveripv4 | IP-адрес компьютера сервера, использующего тип адреса IPv4 в виде четырех чисел, разделенных точками - n.n.n.n. |
Сервер IPV6 |
serveripv6 | 28-битовый тип адреса IPv6 в формате x:x:x:x:x:x:x:x, согласно RFC 1924 компьютера сервера. |
Порт |
port | Порт приема, на который был получен запрос. |
Протокол |
protocol | Протокол связи, передающий запрос. В настоящее время поддерживаются протоколы: HTTP, HTTPS, SOAP и SOAPS. |
Время |
time | Используется для определения даты и времени суток, когда необходимо удовлетворить конкретный запрос. Два необязательных поля - это StartTime и EndTime. Запрос, полученный вне указанного интервала, не обрабатывается. Формат заполнения полей Время начала и Время окончания следующий: день-недели/число/месяц/год::час:мин:сек. Например, четверг, 11 апреля 2007 года, 1:03:45 дня обозначается так: Thu/11/Apr/2007::13:03:45 В любом поле допускается использование * в качестве символа подстановки. Например, 1-е число каждого месяца можно обозначить как */1. Значениями для дня-недели являются: Sun, Mon, Tue, Wed, Thu, Fri, Sat. Значения числа задаются в диапазоне от 1 до 31. Значение месяца является нечисловым и представляет собой один из 12 месяцев: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec. Значение года следует указывать в 4-значном формате. Например, 2007. Значение часа следует указывать в 24-часовом формате времени. Например, 8 ч утра обозначается как ::8. Минуты и секунды представляют собой целые значения в диапазоне от 0 до 59. Символ косой черты (/) используется для разделения параметров даты, два двоеточия (::) - для разделения параметров даты, а двоеточием (:) отделяются параметры времени суток. Булевский результат правила в целом, в котором используется операнд time, определяет выполняемое действие маршрутизации. |
Процентное отношение |
percentage$<значение> | Операнд percentage обрабатывается как true, фиксированное процентное значение времени. Например, percentage$50 соответствует true в среднем 50% времени. |
Увеличение |
rampup$<startTime>$<completionTime>
|
Операнд rampup преобразуется в true переменное процентное значение времени. Он всегда оценивается как false до времени начала -<startTime> и как true после времени окончания -<completionTime>.
В течение промежутка времени от <startTime> до <completionTime>, этот операнд обрабатывается как true, линейно возрастающее процентное значение. Формат значений времени начала и времени окончания (<startTime> и <completionTime>): день/месяц/год::час:мин:сек. Где день соответствует числу месяца, месяц - одному из 12 месяцев: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, год - это год в 4-значном формате, час - значение часа в 2-значном 24-часовом формате, мин и сек - 2-значные значения минут и секунд.Например: rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 начинает периодически обрабатываться как true с 8 ч утра 1 января 2007 г. и всегда оценивается как true до окончания заданного периода, т.е. до 5 ч вечера того же дня. |
В зависимости от выбранного оператора введите значение для подвыражения, которое требуется создать. Все операторы преобразуются в булевские значения. Операторы обрабатываются без учета регистра: AND равнозначен AnD.
Оператор | Описание |
---|---|
Равно без учета регистра (EQUALSIGNORECASE) | Оператор равенства без учета регистра. Регистр строк не учитывается. 'ABC' EQUALSIGNORECASE 'abc' равно true. ('ABC' = 'abc') равно false. |
Не равно (< >) | Оператор не равно означает, что значение операнда не равно введенному значению. |
В (IN) |
|
Подобно (LIKE) | Означает совпадение шаблонов для значений строкового операнда. Это значение должно содержать символ подстановки (%) в той позиции, с которой ожидается совпадение шаблонов. Например, выражение
host LIKE %blancaсопоставляет слово blanca с любым другим словом, оканчивающимся на blanca, а выражение: host LIKE blanca%сопоставляет слово blanca с любым другим словом, начинающимся на blanca. Выражение host LIKE %blanca%сопоставляет слово blanca с любым другим словом, в которое включена лексема blanca. |
Подобно без учета регистра (LIKEIGNORECASE) | Этот оператор означает совпадение шаблонов для значений строкового операнда. Регистр строк не учитывается. |
Не пустой (IS NOT NULL) | Проверка запроса подтверждает существование запрашиваемого параметра. |
Конкатенация (+) | Этот оператор преобразует 'abc'+'def' в 'abcdef'. |
Как в (LIKEIN) | Этот оператор означает, что строка likein (строка-1, строка-2, строка-3,...) преобразуется в true, если строка в левой части выражения с likein совпадает с одной или несколькими строками (строка-N). |
Пустой (IS NULL) | Проверка запроса подтверждает отсутствие запрашиваемого параметра. Проверяет, есть ли операнд со значением NULL. |
Равен (=) | Данный оператор равенства означает совпадение с учетом регистра. |
Больше (>) | Преобразуется в стандартный логический результат. |
Больше или равно (>=) | Преобразуется в стандартный логический результат. |
Меньше (<) | Преобразуется в стандартный логический результат. |
Меньше или равно (<=) | Преобразуется в стандартный логический результат. |
Между (BETWEEN) | Используется с оператором AND для выбора диапазона значений между первым (нижним) значением включительно и последним (верхним) значением включительно. Совместно они применяются к цифровым значениям и датам. |
В зависимости от выбранного оператора, введите значение для подвыражения, которое вы собираетесь создать.
Генерирует подвыражение как результат операнда, оператора и указанных пользователем значений.
Добавить в поле на панели условий.