Référence des triggers et des marqueurs

Les triggers définissent la manière dont les agents redirection.io vont faire correspondre les requêtes entrantes avant d'effectuer une action.

Dans une Règle, les triggers sont les conditions que les requêtes HTTP entrantes doivent remplir pour que la règle soit appliquée. Pour une requête HTTP entrante donnée, plusieurs règles peuvent correspondre, si tous leurs triggers sont remplis.

redirection.io implémente différents types de triggers :

  • l'URL de la requête
  • la présence, l'absence ou la valeur d'un en-tête de requête HTTP
  • la méthode HTTP de la requête
  • le code de statut de la réponse du backend qui est sur le point d'être renvoyé à l'utilisateur
  • la date et l'heure de la requête
  • l'adresse IP qui a effectué la requête

Si vous avez besoin d'un autre type de trigger, n'hésitez pas à nous contacter, nous sommes ouverts à toutes les bonnes idées !

Le trigger URL

Le trigger URL est basé sur l'URL entrante et peut être défini comme une URL simple (par exemple /some/page.html) ou un motif (par exemple "faire correspondre toutes les URL de la forme /shop/products.php?id=<INTEGER>).

Le trigger URL source est requis pour toutes les Règles, dans la première étape du formulaire de création de Règle :

URL trigger

La valeur "URL source" doit commencer par /, ://, http:// ou https:// :

  • / : ceci s'appliquera à toutes les requêtes pour lesquelles le chemin de l'URL correspond à l'URL source, quels que soient le schéma et le nom de domaine utilisés. Par exemple, l'URL source /test sera déclenchée pour les requêtes entrantes sur http://example.com/test ou https://example.com/test ou https://subdomain.example.org/test
  • :// : ceci s'appliquera à toutes les requêtes pour lesquelles le domaine et le chemin de l'URL correspondent à l'URL source, quel que soit le schéma utilisé. Par exemple, l'URL source ://example.com/test sera déclenchée pour les requêtes entrantes sur http://example.com/test ou https://example.com/test, mais pas sur https://subdomain.example.org/test ou http://example.org/test
  • http:// : ceci s'appliquera à toutes les requêtes pour lesquelles le domaine et le chemin de l'URL correspondent à l'URL source, et effectuées avec le protocole http. Par exemple, l'URL source http://example.com/test sera déclenchée pour les requêtes entrantes sur http://example.com/test, mais pas sur https://example.com/test ou http://example.org/test
  • https:// : ceci s'appliquera à toutes les requêtes pour lesquelles le domaine et le chemin de l'URL correspondent à l'URL source, et effectuées avec le protocole https. Par exemple, l'URL source https://example.com/test sera déclenchée pour les requêtes entrantes sur https://example.com/test, mais pas sur http://example.com/test ou https://example.org/test

Le trigger URL peut utiliser des marqueurs, qui sont un moyen puissant de faire correspondre plusieurs URL à la fois, basés sur des motifs. Par exemple, une Règle peut être créée pour rediriger toutes les URL de la forme /shop/products.php?id=<INTEGER> vers /shop/clothes/product-<INTEGER>.html, avec le code de statut de votre choix. Bien sûr, les règles peuvent intégrer beaucoup plus de complexité, basée sur les exigences que vous choisissez d'appliquer aux marqueurs.

En coulisses, nous utilisons des expressions régulières pour faire correspondre les URL entrantes, mais vous n'aurez pas à écrire manuellement ces expressions régulières. Vous pouvez plutôt utiliser notre constructeur d'expressions graphiques, qui permet d'exprimer des exigences complexes de manière simple. Lisez le chapitre sur les marqueurs pour comprendre comment ils fonctionnent.

Si vous souhaitez qu'une Règle soit exécutée pour chaque requête vers votre site web, veuillez utiliser un marqueur de type anything. Vous pouvez combiner ce trigger URL très permissif avec des triggers plus restrictifs d'autres types : A source URL trigger that will apply to all the requests

Une fois ajouté, un marqueur peut être modifié en cliquant dessus :

The marker edition panel

Le trigger d'en-tête HTTP

Le trigger d'en-tête permet de sélectionner des requêtes en fonction de la présence, de l'absence ou de la valeur d'un en-tête HTTP dans la requête. Il existe de nombreux cas d'utilisation pour cet en-tête : rediriger l'utilisateur en fonction de sa langue préférée (en-tête Accept-Language), exécuter une action spécifique pour un User-Agent particulier, etc.

Header trigger

La Règle ci-dessus sera déclenchée pour chaque requête arrivant sur votre site web avec un en-tête de requête Accept-Language commençant par fr- (donc, par exemple, fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7,de;q=0.6, mais pas en-US;q=0.9).

Le trigger de méthode HTTP

Le trigger de méthode filtre les requêtes en fonction de la méthode HTTP utilisée pour effectuer la requête. Vous pouvez sélectionner une ou plusieurs méthodes HTTP, et la Règle ne sera déclenchée que si la méthode HTTP utilisée pour la requête correspond à l'une des méthodes sélectionnées :

Method trigger

Ce trigger peut également être nié, afin de déclencher la règle uniquement lorsque la méthode HTTP de la requête ne correspond pas à l'une des méthodes HTTP sélectionnées :

Method trigger with excluded values

Le trigger de code de statut de réponse du backend

Le trigger de code de statut de réponse du backend permet de restreindre le déclenchement d'une Règle en fonction du code de statut généré par votre application backend. Lorsqu'une règle utilise le trigger de code de statut de réponse du backend, elle laissera d'abord la requête passer vers votre application backend, puis elle inspectera le code de statut HTTP de la réponse que votre application a généré.

C'est utile, par exemple, si vous souhaitez exécuter une action spécifique lorsqu'un code de statut donné est sur le point d'être renvoyé à l'utilisateur.

Backend status code trigger

Ce trigger peut également être nié, afin de déclencher la règle uniquement lorsque le code de statut qui va être renvoyé à l'utilisateur ne correspond pas à l'un des codes de statut sélectionnés :

Backend status code trigger with excluded values

Les triggers de date, d'heure et de date et heure

Ce trigger est uniquement disponible pour les projets du plan "Pro" et nécessite l'utilisation d'au moins l'agent 2.6.0.

Cette famille de triggers liés au temps est conçue pour permettre de filtrer les requêtes en fonction de la date ou de l'heure auxquelles elles ont été effectuées. En d'autres termes, ils permettent d'exécuter une règle uniquement un jour donné, après ou avant une date, pendant une période spécifique, etc.

Date trigger

Par exemple, on peut filtrer en fonction de la date de la requête :

  • Égal à : la règle ne sera déclenchée que si la date de la requête est égale à la valeur configurée.
  • N'est pas égal à : la règle ne sera déclenchée que si la date de la requête est différente de la valeur configurée.
  • Est après : la règle ne sera déclenchée que si la requête est effectuée après la date fournie.
  • Est avant : la règle ne sera déclenchée que si la requête est effectuée avant la date fournie.
  • Est entre : la règle ne sera déclenchée que si la date de la requête est comprise entre les deux dates fournies.
  • N'est pas entre : la règle ne sera déclenchée que si la date de la requête n'est pas comprise entre les deux dates fournies.

Un critère supplémentaire est Est l'un de, qui permet de choisir les jours de la semaine où une règle doit être exécutée.

Regardez l'exemple suivant :

Date trigger, configured to execute a traffic rule only during weekends

Avec un tel trigger, cette règle sera exécutée pour toutes les requêtes sur /live-meeting effectuées pendant les week-ends. Pendant les jours de semaine, la règle sera ignorée.

Le trigger Heure est similaire au trigger Date, sauf qu'il permet de définir la plage horaire de la journée qui doit déclencher l'exécution de la règle :

Date trigger

Les triggers Date, Date et heure et Heure peuvent être combinés :

  • un trigger DateTime qui restreindrait la règle à s'appliquer uniquement après une date et une heure données ;
  • un trigger Date pour limiter la règle aux week-ends uniquement ;
  • un trigger Time pour limiter la règle uniquement pendant une plage horaire donnée de la journée.

Le trigger d'adresse IP

Ce trigger est uniquement disponible pour les projets du plan "Pro" et nécessite l'utilisation d'au moins l'agent 2.3.0.

IP address trigger

Le trigger d'adresse IP permet d'exécuter une Règle uniquement si l'adresse IP du client correspond à certaines restrictions :

  • Égal à : la règle ne sera déclenchée que si l'adresse IP du client est égale à la valeur configurée.
  • N'est pas égal à : la règle ne sera déclenchée que si l'adresse IP du client est différente de la valeur configurée.
  • Supérieur à : la règle ne sera déclenchée que si l'adresse IP du client est supérieure à la valeur configurée.
  • Supérieur ou égal à : la règle ne sera déclenchée que si l'adresse IP du client est supérieure ou égale à la valeur configurée.
  • Inférieur à : la règle ne sera déclenchée que si l'adresse IP du client est inférieure à la valeur configurée.
  • Inférieur ou égal à : la règle ne sera déclenchée que si l'adresse IP du client est inférieure ou égale à la valeur configurée.
  • Dans la plage : la règle ne sera déclenchée que si l'adresse IP du client est comprise entre les deux adresses IP fournies.
  • Hors de la plage : la règle ne sera déclenchée que si l'adresse IP du client n'est pas comprise entre les deux adresses IP fournies.

La comparaison est effectuée en utilisant la notation d'adresse IP. Par exemple, 10.100.1.1 est supérieur à 10.9.1.1 (même si ce n'est pas vrai du point de vue d'une comparaison de chaînes de caractères).

Le trigger d'échantillonnage

Ce trigger est uniquement disponible pour les projets du plan "Pro" et nécessite l'utilisation d'au moins l'agent 2.3.0.

Le trigger d'échantillonnage peut être utilisé pour exécuter une Règle uniquement sur une portion donnée de votre trafic. Par exemple, si vous choisissez la valeur 22, alors 22% des requêtes correspondantes produiront une réponse contenant les actions de cette règle.

IP address trigger

Créer un marqueur

Comme expliqué ci-dessus, les marqueurs sont utiles pour appliquer une règle à plusieurs URL à la fois, sans avoir besoin de créer plusieurs règles. Définir un marqueur est assez simple :

  1. Add marker buttoncliquez sur le bouton "Ajouter un marqueur". Une fenêtre modale apparaît, avec trois onglets.
  2. Marker metadata tabSpécifiez les informations du marqueur dans l'onglet "Métadonnées" (nom et description du marqueur) - cela vous permettra de vous rappeler l'objectif du marqueur ;
  3. Marker restrictions tabL'onglet "Restrictions" permet de définir le type et les caractéristiques du marqueur. Vous pouvez par exemple définir des marqueurs de type string, ne contenant que des lettres majuscules et commençant par la chaîne FOO.
  4. Marker transformations tabLes "Transformations" sont un moyen simple de transformer les valeurs correspondantes pour les réutiliser plus tard dans les actions.

Une fois le marqueur créé, vous pouvez l'utiliser dans la partie "Actions" de la règle. Vous pouvez également simplement utiliser ce marqueur pour faire correspondre de nombreuses URL entrantes, sans utiliser la valeur du marqueur (par exemple, vous pourriez vouloir créer une action "Page non disponible" pour toutes les requêtes de la forme /wp-admin/<WHATEVER>).

Survoler le marqueur affiche les détails du marqueur, ce qui est utile pour comprendre ce que ce marqueur fait : A redirection trigger containing a marker

Types de marqueurs

redirection.io prend en charge une grande variété de marqueurs d'URL :

anything

Le marqueur anything correspondra à tous les caractères. Il est équivalent à l'expression régulière .*.

date

Le type date représente une date complète, conformément à la rfc3339.

  • Exemple : 2018-07-15
  • Options : aucune

datetime

Le type datetime représente une date et heure, conformément à la rfc3339.

  • Exemples :
    • 2018-07-15T14:59:12Z
    • 2018-07-15T14:59:12+02:00
    • 2018-07-15T14:59:12.52Z
  • Options : aucune

enum

Le type enum permet de lister les valeurs exactes acceptées.

  • Exemples :
    • cat
    • dog
    • fish
    • it can be multiple words
  • Options :
    • Valeurs (obligatoire) : Tapez simplement le caractère ou le mot que le marqueur doit faire correspondre, puis appuyez sur "entrée".

integer

Le type integer correspond aux valeurs entières positives (aussi appelées nombres naturels).

  • Exemples :
    • 1
    • 42
    • 67638
  • Options :
    • Minimum (facultatif) : Vous pouvez définir une valeur minimale pour que le marqueur corresponde. Par exemple, si vous tapez 404 dans le champ "minimum", les valeurs 405 et 1234 correspondront, mais pas 88 ni 403. Cette limite est inclusive (ce qui signifie, avec l'exemple précédent, que 404 correspondra).
    • Maximum (facultatif) : Vous pouvez définir une valeur maximale pour que le marqueur corresponde. Par exemple, si vous tapez 404 dans le champ "maximum", les valeurs 88 et 403 correspondront, mais pas 405 ou 1234. Cette limite est inclusive (ce qui signifie, avec l'exemple précédent, que 404 correspondra).

regex

Ce type permet de définir des expressions de correspondance avancées basées sur des expressions régulières. C'est bien sûr le moyen le plus polyvalent de créer des marqueurs, car il peut aider à créer des expressions de correspondance très complexes.

  • Exemples :
    • [a-z0-9_-]{3,16}
    • (\d)+
  • Options :
    • Regex (obligatoire) : Tapez ici l'expression régulière que vous souhaitez utiliser pendant la correspondance.

Dans la mesure du possible, veuillez essayer d'utiliser d'autres types de marqueurs natifs, afin de bénéficier de la flexibilité maximale du système de marqueurs.

Nous ne prenons délibérément pas en charge les expressions régulières telles que "look-ahead" ou "look-behind". Lorsqu'elles sont utilisées de manière incorrecte, ce type d'expression régulière peut gravement dégrader les performances d'analyse et peut même être utilisé pour des attaques par déni de service par expression régulière (ReDoS).

Si vous avez besoin de créer une exception, il est fort probable que vous puissiez obtenir le comportement attendu en créant deux règles :

  • une règle "générale", qui s'appliquera dans tous les cas ;
  • et une deuxième règle, pour le cas spécifique qui doit faire l'objet d'une exception, avec une priorité plus élevée.

Par exemple, supposez que vous vouliez rediriger toutes les URL de la forme /redirect-country/<COUNTRY-CODE>, avec <COUNTRY-CODE> étant un code à 2 lettres, à l'exception de la chaîne "en".

Deux stratégies sont possibles :

  • soit lister toutes les valeurs possibles (de, uk, us, it, nl, etc.) avec un marqueur de type "enum".
  • soit créer deux règles :
    • une première règle générique avec la priorité 0, avec un trigger d'URL de la forme /redirect-country/<COUNTRY-CODE> dans laquelle <COUNTRY-CODE> est défini comme un marqueur regex avec la valeur d'expression régulière [a-zA-Z]{2}.
    • une deuxième règle, avec une priorité plus élevée (par exemple, 10), déclenchée par l'URL /redirect-country/fr, qui utilise l'action "configuration" pour empêcher l'exécution de la première règle dans ce cas spécifique.

En d'autres termes, l'action "configuration" peut "annuler" l'application d'autres règles de priorité inférieure pour gérer les cas exceptionnels. Un exemple d'utilisation de l'application "configuration" est fourni dans la recette "Redirection sauf un chemin".

string

Le type string permet de définir des marqueurs textuels, ce qui est le cas le plus courant pour définir des marqueurs. Ce type devrait couvrir la plupart des cas de correspondance, c'est la raison pour laquelle il est automatiquement sélectionné lorsque vous créez un nouveau marqueur.

Nous prenons en charge la plage UTF-8 complète, ce qui signifie que vous pouvez faire correspondre les caractères ASCII réguliers, mais aussi les émojis ou les caractères alphabétiques spécifiques.

  • Exemples :
    • string
    • h3llo
    • with-specific.chars
    • nón-asçii-chars-Ě-Dž
  • Options :
    • lettres minuscules (facultatif) : Cochez cette case pour faire correspondre les chaînes contenant des lettres minuscules, telles que définies dans la catégorie générale Unicode Ll.
    • lettres majuscules (facultatif) : Cochez cette case pour faire correspondre les chaînes contenant des lettres majuscules, telles que définies dans les catégories générales Unicode Lu et Lt.
    • chiffres (facultatif) : Cochez cette case pour faire correspondre les chaînes contenant des chiffres (0, 1, 2, ... 9).
    • caractères encodés en pourcentage (facultatif) : Cochez cette case pour faire correspondre les chaînes contenant des caractères encodés en pourcentage, conformément à la rfc3986.
    • Caractères spécifiques (facultatif) : Vous pouvez ajouter ici plusieurs caractères spécifiques - il peut s'agir par exemple du caractère de soulignement (_), d'un tiret (-), d'un point (.), etc.
    • Commence par (facultatif) : En combinaison avec d'autres restrictions, cette restriction ne fera correspondre que les chaînes commençant par cette valeur.
    • Se termine par (facultatif) : En combinaison avec d'autres restrictions, cette restriction ne fera correspondre que les chaînes se terminant par cette valeur.
    • Contient (facultatif) : En combinaison avec d'autres restrictions, cette restriction ne fera correspondre que les chaînes contenant cette valeur.

uuid

Le type uuid correspond aux chaînes de caractères au format uuid valides.

  • Exemples :
    • f6883ff9-f163-43d7-8177-bfa24277fd20

Transformations de marqueurs

Introduction

Les valeurs qui ont été mises en correspondance à l'aide de marqueurs peuvent être réutilisées dans les actions. Par exemple, si vous avez défini un trigger d'URL avec un marqueur nommé slug, vous pouvez choisir de créer une action de Redirection vers une URL renseignée avec ce marqueur.

Parfois, cependant, le format de votre URL a changé. Imaginez, par exemple, que vos URL précédentes ressemblaient à :

  • http://example.org/some_category/some_product.63664.html
  • http://example.org/some_other_category/an_other_product.13719.html
  • http://example.org/an_third_category/a_third_product.871.html

Alors que, après la refonte de votre site web, vos nouvelles URL ont été "nettoyées" et ressemblent maintenant à :

  • http://example.org/some-category/some-product
  • http://example.org/some-other-category/an-other-product
  • http://example.org/an-third-category/a-third-product

(Oui, c'est beaucoup plus lisible)

Vous avez peut-être défini un trigger d'URL de la forme /<CATEGORY_NAME>/<PRODUCT_NAME>.<PRODUCT_ID>.html, où :

  • <CATEGORY_NAME> est un marqueur string correspondant aux lettres minuscules et au signe _ ;
  • <PRODUCT_NAME> est un marqueur string correspondant aux lettres minuscules et au signe _ ;
  • <PRODUCT_ID> est un marqueur integer.

Activez simplement une transformation Replace sur les marqueurs <CATEGORY_NAME> et <PRODUCT_NAME>, et vous pourrez réutiliser ces valeurs en les injectant dans une action de Redirection de la forme :

  • Code de statut : 302
  • URL cible : /<CATEGORY_NAME>/<PRODUCT_NAME>

Bien que les transformations soient un moyen pratique de modifier les valeurs de marqueurs capturées, gardez à l'esprit que l'exécution de nombreuses transformations peut être coûteuse en termes de performances. Vous devez configurer le moins de transformations possible dans les marqueurs de vos règles. En particulier, le mécanisme de transformations n'est pas conçu pour exécuter en chaîne des centaines de transformations pour un marqueur donné. L'exécution de moins de 5 transformations, cependant, ne devrait toujours produire qu'une surcharge de performance négligeable.

Types de transformation de marqueurs disponibles

Les marqueurs redirection.io prennent en charge plusieurs transformations :

  • Camelize : Transforme les chaînes de caractères de la forme some-string en someString (fonctionne avec les tirets et les underscores).
  • Dasherize : Génère une version "dasherized" de la chaîne, où les mots sont séparés par des tirets, par exemple hello-world.
  • Lowercase : Écrit tous les caractères en minuscules, par exemple helloworld.
  • Replace : Remplace toutes les occurrences d'une chaîne par une autre (par exemple, transforme st-petersburg en saint-petersburg).
  • Slice : Coupe la chaîne d'une position (commençant à 0) à une autre (cela peut être utile, par exemple, si les valeurs de vos marqueurs ont été tronquées).
  • Underscorize : Génère une version "underscorized" de la chaîne, où les mots sont séparés par des underscores, par exemple hello_world.
  • Uppercase : Écrit tous les caractères en majuscules, par exemple HELLO-WORLD.

Chaîner les transformations de marqueurs

Toutes ces transformations peuvent être chaînées et sont exécutées séquentiellement, ce qui signifie que vous pouvez par exemple appliquer successivement une transformation Replace, puis une transformation Camelize :

st-petersburg ➡️ saint-petersburg ➡️ saintPetersburg

Modèles de marqueurs

Il peut arriver que de nombreuses règles de votre ensemble de règles utilisent le même marqueur. Par exemple, imaginez que vous deviez définir une règle qui contient un paramètre country, dont la valeur peut être de, es, fr, it, uk ou us. Vous feriez cela habituellement en utilisant un type de marqueur énuméré avec ces valeurs.

Cependant, si vous devez définir de nombreuses règles contenant le même marqueur, il peut devenir un peu répétitif de recréer ce marqueur dans toutes ces règles. C'est là que les modèles de marqueurs entrent en jeu, vous permettant de définir des marqueurs qui peuvent être réutilisés dans plusieurs règles sans avoir besoin de les redéfinir à chaque fois.

Pour en savoir plus sur les modèles de marqueurs, consultez la section de configuration du projet de notre documentation.

Êtes-vous au point avec les triggers et les marqueurs ? Poursuivez avec la création d'une action.

Cette page a été mise à jour le 30 juin 2025
Vous ne trouvez pas votre réponse ?