Démarrage rapide
Cette page décrit les cas d'utilisation courants pour la création de règles dans l'application web Redirect.
(Vous pouvez également consulter les détails des paramètres de règle sur la page Paramètres de règle.)
Cas 1 : Ouvrir un autre site web
Supposons que vous soyez accro à Twitter, et que vous décidez de méditer avec Insight Timer chaque fois que vous ouvrez Twitter par accident. Créons une règle pour cela !
Étape 1. Configurer "Redirect From"
Tout d'abord, vous devez configurer la section Redirect From dans l'écran Modifier la règle de l'application. Les cibles sont les URL commençant par https://twitter.com/
.
Dans ce cas, vous pouvez spécifier le modèle suivant avec le mode Wildcard :
https://twitter.com/*
En mode Wildcard, *
signifie qu'il correspond à n'importe quoi (= zéro ou plusieurs caractères).
Cependant, attention. twitter.com
a été renommé x.com
. Vous pouvez simplement remplacer twitter.com
par x.com
, mais personne ne sait quand le nouveau propriétaire changera d'avis pour revenir en arrière. Par conséquent, ciblons à la fois twitter.com
et x.com
.
Pour ce faire, passez de Wildcard à Regular Expression et définissez ceci comme modèle :
https://(twitter|x).com/.*
(twitter|x)
: il cible à la foistwitter
etx
. (|
est appelé une barre verticale.).*
: C'est la même chose que le*
de Wildcard. Plus précisément,.
signifie n'importe quel caractère et*
signifie n'importe quoi avant ce symbole répété n'importe quel nombre de fois, ce qui fait qu'il correspond à n'importe quoi.
Les expressions régulières sont un peu compliquées, mais une fois que vous vous y êtes habitué, elles deviendront un outil puissant. Nous vous recommandons d'utiliser RegExr comme terrain de jeu pour analyser le fonctionnement de votre modèle d'expression régulière.
Dans les expressions régulières, .
dans (twitter|x).com
est également traité comme n'importe quel caractère. Par conséquent, (twitter|x).com/.*
correspond également, par exemple, à twitter1com/
ou x_com/
.
Pour éviter cela, vous pouvez le changer en (twitter|x)\.com/.*
. \
est utilisé pour échapper un caractère spécial.
Cependant, il n'existe pas de telles URL dans l'environnement Internet général. Par conséquent, vous pouvez laisser .
comme un caractère spécial si vous préférez. Votre règle est pour votre usage personnel, alors implémentez-la comme bon vous semble.
Étape 2 : Configurer "Redirect To"
Spécifiez simplement l'URL comme suit :
https://insighttimer.com/saraauster/guided-meditations/calm
Maintenant, Redirect Web vous amène à la méditation lorsque vous accédez à Twitter !
Cas 2 : Supprimer les paramètres de requête de l'URL
Supposons qu'il y ait un paramètre de requête source=twitter
dans une URL de example.com
, et que vous ayez décidé de le supprimer pour vous anonymiser.
Dans ce cas, l'option Traitement de groupe de capture est la plus simple :
- Redirect From :
https://example.com/*
(Wildcard) - Redirect To :
$0
- Traitement de groupe de capture :
- Groupe :
$0
- Processus : Remplacer les occurrences
- Cible :
&?source=[^&]*
- Remplacement : (aucun)
- Modèle de texte : Expression régulière
- Cible :
- Groupe :
Cette règle fonctionne comme suit :
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Si vous souhaitez supprimer plus de paramètres, ajoutez plus de processus.
Cas 3 : Ajouter des paramètres de requête à l'URL
Disons qu'il existe un site web appelé example.com
qui affiche une mise en page mobile par défaut, mais vous préférez sa mise en page de bureau. Heureusement, le site web prend en charge un paramètre de requête layout
pour spécifier la mise en page affichée. Créons une règle qui ajoute layout=desktop
automatiquement.
Vous pensez peut-être que vous pourriez le définir comme suit :
- Redirect From :
https://example.com/.*
(Expression régulière) - Redirect To :
$0?layout=desktop
$0
fait référence à l'URL cible. Si vous essayez d'accéder à example.com/hello
, vous êtes redirigé vers example.com/hello?layout=desktop
. Cette fonctionnalité est appelée substitution.
La substitution est également disponible pour le mode Wildcard car il est converti en interne en expression régulière.
Cependant, il y a quelques problèmes avec ces paramètres.
Problème 1 : Boucle infinie
Le paramètre actuel crée une boucle de redirection infinie car https://example.com/.*
cible également https://example.com/hello?layout=desktop
.
Dans ce cas, vous pouvez spécifier un modèle d'URL exclu qui vous permet d'accéder sans redirection, comme ceci avec l'expression régulière :
.*[&?]layout=[^&]*.*
.*
: Correspond à n'importe quoi[&?]
: Correspond à&
ou?
[^&]*
: Correspond à n'importe quoi sauf&
Problème 2 : Ne peut pas gérer correctement les paramètres existants
Si l'URL cible a déjà d'autres paramètres de requête comme example.com/hello?theme=dark
, la destination sera example.com/hello?theme=dark?layout=desktop
(il y a deux ?
dans l'URL) mais vous ne pouvez joindre les paramètres qu'avec &
. ?
en tant que caractère spécial n'est autorisé qu'au début des paramètres. Il n'est donc pas traité comme un paramètre valide.
Dans ce cas, modifiez les paramètres comme suit :
- Redirect From :
(https://example.com/[^?]*)(\?(.*))?
- Redirect To :
$1?layout=desktop&$3
Examinons cela étape par étape.
(https://example.com/[^?]*)
: Correspond à la partie jusqu'au caractère précédent de?
.[^?]*
correspond à n'importe quoi sauf?
.- Ceci est enveloppé de
()
afin que vous puissiez y faire référence avec$1
plus tard.
(\?(.*))?
: Correspond à une chaîne commençant par?
, ce qui signifie des paramètres de requête.- Cela correspond également à une chaîne vide par le quantificateur
?
à la fin du modèle, qui correspond zéro ou une fois. - Le
()
extérieur et le()
intérieur peuvent être référencés avec$2
et$3
plus tard.
- Cela correspond également à une chaîne vide par le quantificateur
RegExr peut vous aider à comprendre les détails.
RegExr affiche une erreur si vous n'échappez pas /
avec \
. Bien que vous puissiez l'échapper, ce n'est pas obligatoire car Redirect Web utilise un moteur différent d'Apple qui ne l'exige pas.
Ce n'est pas une solution parfaite, car elle redirige example.com/hello
vers example.com/hello?layout=desktop&
, qui inclut un &
inutile à la fin de l'URL. Ce n'est généralement pas un problème majeur, mais si vous souhaitez le supprimer, vous pouvez utiliser le Traitement de groupe de capture.
En conclusion, voici le résultat final :
- Redirect From :
(https://example.com/[^?]*)((\?(.*))?)
(Expression régulière) - Redirect To :
$1?layout=desktop$3
- Modèle d'URL exclu :
.*[&?]layout=[^&]*.*
(Expression régulière) - Traitement de groupe de capture :
- Groupe :
$3
- Processus : Remplacer les occurrences
- Cible :
\?(.*)
- Remplacement :
&$1
- Cible :
- Groupe :
Ceci n'est qu'un exemple. Vous pouvez également créer plusieurs règles pour gérer chaque problème. Cela peut être beaucoup plus simple.