Tous les produits
Search
Centre de documentation

:Rules engine

Dernière mise à jour :Aug 12, 2026

Le moteur de règles permet de créer et de déployer diverses règles (cache, redirection, compression, origine, protection Web Application Firewall (WAF), etc.) en suivant une syntaxe et une logique communes.

Présentation

Le moteur de règles d'Edge Security Acceleration (ESA) permet de créer des règles via une interface graphique. ESA vérifie si une configuration spécifique s'applique aux requêtes entrantes selon les paramètres définis dans ces règles. Ce mécanisme offre un contrôle plus flexible et précis de la distribution du contenu.

Priorités des règles

  • Les règles ciblant un aspect spécifique (comme le TTL du cache navigateur) priment sur la configuration globale correspondante.

  • Lorsqu'une liste de règles régit un aspect particulier (tel que la mise en cache), celles-ci s'appliquent séquentiellement, de haut en bas. Pour modifier la priorité d'une règle donnée, ajustez sa position dans la liste.

Remarques d'utilisation

  • La taille d'une condition de règle unique ne peut excéder 4 Ko. Par ailleurs, la taille totale des informations de configuration d'un site web, hors configuration de sécurité, est plafonnée à 512 Ko.

  • Une condition de règle admet une structure imbriquée comportant deux niveaux de profondeur au maximum. Chaque niveau accepte des paramètres d'opérations logiques distincts.

  • Chaque condition de règle peut contenir jusqu'à 20 champs de correspondance.

Description du paramètre Apply to

Lors de la création d'une règle, les options suivantes sont disponibles pour le paramètre Apply to :

  • All Requests : la règle créée s'applique à l'ensemble du trafic du site web.

  • Filtered Requests : la règle créée ne concerne que le trafic correspondant à l'expression personnalisée. Cette option permet de filtrer les requêtes avec précision.

Syntaxe des règles

Une condition de règle se compose d'expressions et d'un opérateur logique.

  • Expression : sert à filtrer les requêtes présentant des caractéristiques spécifiques.

  • Opérateur logique : permet de combiner plusieurs expressions.

Vous pouvez définir plusieurs expressions et les associer afin de filtrer les requêtes selon vos besoins métier.

Opérateurs logiques

Un opérateur logique relie les expressions d'une condition de règle pour exécuter une opération logique. Les opérateurs suivants sont pris en charge :

  • and : la condition de règle n'est satisfaite que si toutes les expressions qu'elle contient sont vraies.

  • or : la condition de règle est satisfaite dès qu'au moins l'une des expressions est vraie.

Expressions

Une expression simple comprend les paramètres décrits dans le tableau ci-dessous.

Paramètre

Paramètre de syntaxe correspondant

Description

Obligatoire

Champ de correspondance

Field

Le champ de correspondance.

Oui

Valeur de correspondance

Value

La valeur de correspondance.

Oui

Opérateur de comparaison

Comparison_operator

L'opérateur de comparaison.

Oui

Syntaxe des expressions

  • Expressions simples

    • Syntaxe : <field><comparison_operator><value>

    • Exemple : http.request.uri.path matches"/image\.(jpg|png)$"

  • Expressions composées

    • Définition : plusieurs expressions reliées par des opérateurs logiques

    • Syntaxe : <expreesion><logical_operator><expression>

    • Exemple : http.host eq "www.example.com" and http.request.uri.path eq "/content"

Champs de correspondance

Remarque
  • Le champ de correspondance du nom d'hôte (http.host) s'applique aux règles de chiffrement SSL/TLS et n'accepte que les opérateurs equals et does not equal.

  • Certains fournisseurs d'accès Internet (FAI) peuvent attribuer des adresses IP privées aux clients de régions spécifiques. Dans ce cas, les POP ne peuvent pas déterminer avec précision le pays ou la région, l'adresse IP source, la province ou le FAI du client, car les requêtes reçues proviennent d'une adresse IP privée. Pour plus d'informations, consultez Identifier un bloc CIDR privé

Champ de correspondance

Description

Nom de variable dans l'expression

Opérateur de comparaison pris en charge

Valeur de correspondance

Request Method

Méthode employée par la requête.

http.request.method

  • equals

  • does not equal

  • is in

  • is not in

Valeurs valides :

  • GET

  • POST

  • PURGE

  • PUT

  • HEAD

  • OPTIONS

  • DELETE

  • PATCH

HTTP Version

Version HTTP utilisée par la requête.

http.request.version

Valeurs valides :

  • HTTP/1.0

  • HTTP/1.1

  • HTTP/2.0

  • HTTP/3.0

Country/Region

Pays ou région auquel appartient l'adresse IP du client.

ip.geoip.country

  • Sélectionnez une valeur dans la liste déroulante.

  • Insensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

File Name

Nom du fichier demandé par le client.

http.request.uri.path.file_name

  • La valeur ne doit pas inclure l'extension du fichier réel. Exemples :

    • /a/b : spécifiez b comme valeur.

    • /a/b/ : spécifiez une chaîne vide comme valeur.

    • /foo.tar.bz2 : spécifiez foo.tar comme valeur.

    • 128_128.jpg : spécifiez 128_128 comme valeur.

  • Sensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

File Extension

Extension du nom de fichier demandé par le client.

http.request.uri.path.extension

  • Cette valeur correspond à la chaîne débutant après le dernier point (.) du nom de fichier. Ne l'incluez pas lors de la saisie. Par exemple, pour un fichier nommé foo.tar.bz2, indiquez bz2.

  • Sensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

IP Source Address

Adresse IP du client.

ip.src

  • Adresses IPv4 prises en charge. Exemple : 192.168.X.X.

  • Adresses IPv6 prises en charge. Exemple : 240e:95c:3004:2:3:0:0:XXX.

  • Blocs CIDR pris en charge. Exemple : 192.168.XXX.XXX/31.

  • Insensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

SSL/HTTPS

Type de protocole utilisé par la requête.

http.request.scheme

  • equals

  • does not equal

Valeurs valides :

  • http

  • https

Hostname

Nom d'hôte présent dans la requête.

Ordre de correspondance : si des noms d'hôte figurent à la fois dans l'URL et dans l'en-tête HOST, celui de l'URL de requête prévaut.

http.host

  • equals

  • does not equal

  • contains

  • does not contain

  • starts with

  • ends with

  • does not start with

  • does not end with

  • matches regex

  • does not match regex

  • is in

  • is not in

  • Exemple : ["www1.alibaba.com","www2.alibaba.com"].

  • Insensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

URI

Chemin dans l'URL de la requête, incluant les paramètres de requête.

http.request.uri

  • Exemple : /articles/index?section=330688&expand=comments.

  • Sensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

URI Full

URI (Uniform Resource Identifier) complète de la requête.

http.request.full_uri

  • Exemple : htt­ps://www.example.org/articles/index?section=330688&expand=comments.

  • Sensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

URI Path

Chemin dans l'URL de la requête, excluant les paramètres de requête.

http.request.uri.path

  • Exemple : /articles/index.

  • Sensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

URI Query String

Ensemble des paramètres de requête présents dans l'URL.

http.request.uri.query

  • Exemple : section=330688&expand=comments.

  • Sensible à la casse.

  • Chaîne vide interdite dans la valeur de correspondance.

URI Query String Parameter

Paramètres de requête spécifiques dans l'URL de la requête.

http.request.uri.args["session"]

  • Indiquez un nom et une valeur de paramètre pour cibler les requêtes souhaitées. Par exemple, saisissez le nom de paramètre session et la valeur 330688.

  • Sensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

    Remarque

    Une valeur nulle ne peut être spécifiée qu'avec l'un des opérateurs suivants :

    • equals

    • does not equal

    • contains

    • matches regex

Cookie

Cookie inclus dans la requête.

http.cookie

  • equals

  • does not equal

  • contains

  • does not contain

  • matches regex

  • does not match regex

  • Exemple : session=330688;background=light.

  • Sensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

User Agent

Informations sur le client contenues dans la requête.

http.user_agent

  • Exemple : curl/7.29.0.

  • Sensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

Referer

URL de la page web d'origine d'où la ressource a été demandée.

http.referer

  • Exemple : http://refer.com.cn.

  • Insensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

X-Forwarded-For

Valeur de l'en-tête X-Forwarded-For dans la requête.

http.x_forwarded_for

  • Exemples : 192.168.1.X et 192.168.2.X.

  • Sensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

Header

En-tête spécifique dans la requête.

http.request.headers["session"]

  • Indiquez un nom et une valeur d'en-tête pour cibler les requêtes souhaitées. Par exemple, saisissez le nom d'en-tête session et la valeur 330688.

  • Sensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

Cookie Value Of

Paramètre de cookie spécifique dans la requête.

http.request.cookies["session"]

  • Indiquez un paramètre de cookie et sa valeur pour cibler les requêtes souhaitées. Par exemple, saisissez le nom de paramètre session et la valeur 330688.

  • Sensible à la casse.

  • Chaîne vide autorisée dans la valeur de correspondance.

ISP

FAI auquel appartient l'adresse IP du client.

ip.src.isp

  • equals

  • does not equal

  • contains

  • does not contain

Valeurs valides :

  • China Telecom

  • China Mobile

  • China Unicom

IP Protocol Version

Version du protocole de l'adresse IP du client.

ip.src.version

  • equals

  • does not equal

Valeurs valides :

  • IPv4

  • IPv6

Province

Subdivision administrative de premier niveau d'un pays.

ip.src.subdivision_1_iso_code

  • equals

  • does not equal

  • contains

  • does not contain

  • Exemple : CN-ZJ (Zhejiang, Chine)

  • Sensible à la casse.

Load Balancer Region

Région où réside l'équilibreur de charge.

ip.src.region_code

  • equals

  • does not equal

  • contains

  • does not contain

  • Exemple : EAS (Asie de l'Est)

  • Sensible à la casse.

Request Timestamp

Horodatage Unix indiquant l'heure d'arrivée de la requête au POP.

http.request.timestamp.sec

  • equals

  • does not equal

  • greater than

  • smaller than

  • greater than or equal to

  • smaller than or equal to

  • Exemple : 1735019278 (24 décembre 2024 à 13:47:58)

Opérateurs de comparaison

Nom de l'opérateur

Opérateur

Négable

Type de valeur

Remarques

equals

eq

Non

string

/

does not equal

ne

Non

string

/

contains

contains

Oui

string

Vérifie si la chaîne spécifiée est contenue.

matches regex

matches

Oui

string

Effectue une correspondance par expression régulière.

Réservé aux forfaits Business et Enterprise.

is in

in

Oui

array

L'expression est vraie si l'un des éléments spécifiés correspond.

  • Les caractères génériques ne sont pas pris en charge dans la valeur.

  • Le tableau de valeurs accepte jusqu'à 32 éléments.

starts with

starts_with

Oui

string

/

ends with

ends_with

Oui

string

/

length less than

len-lt

Non

integer

Correspondance trouvée si la longueur de la chaîne est inférieure à la valeur spécifiée.

length equal to

len-eq

Non

integer

Correspondance trouvée si la longueur de la chaîne est égale à la valeur spécifiée.

length greater than

len-gt

Non

integer

Correspondance trouvée si la longueur de la chaîne est supérieure à la valeur spécifiée.

in list

in_list

Oui

integer

Cet opérateur s'applique aux listes globales créées au niveau du compte.

exists

exists

Oui

bool

Vérifie l'existence de la clé spécifiée dans les paires clé-valeur. Utile notamment pour les règles fondées sur les en-têtes, les cookies ou les chaînes de requête.

greater than

gt

Non

integer

Applicable aux règles dont les valeurs sont des entiers.

smaller than

lt

Non

integer

Applicable aux règles dont les valeurs sont des entiers.

greater than or equal to

ge

Non

integer

Applicable aux règles dont les valeurs sont des entiers.

smaller than or equal to

le

Non

integer

Applicable aux règles dont les valeurs sont des entiers.

Caractères génériques

Caractère générique

Description

?

Correspond à un seul caractère.

*

Correspond à un nombre quelconque de caractères.

Créer des expressions

Remarque

Par défaut, le générateur d'expressions s'affiche pour vous assister dans la création d'expressions.

Utiliser le générateur d'expressions

Le générateur d'expressions permet de concevoir rapidement des expressions de manière interactive. Toutefois, pour les expressions complexes, il peut être nécessaire de basculer vers l'éditeur d'expressions.

Par exemple, pour créer une expression basée sur la méthode de requête, sélectionnez les composants appropriés dans les listes déroulantes afin que le générateur construise automatiquement l'expression.

image

Utiliser l'éditeur d'expressions

L'éditeur d'expressions offre une flexibilité accrue pour élaborer des expressions plus complexes.

  1. Cliquez sur Edit Expression.

    image

  2. Saisissez les expressions dans l'éditeur.

    image