Premiers pas
Cette page décrit les cas d'utilisation courants pour la création de règles dans l'application Redirect Web.
(Vous pouvez également en savoir plus sur 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écidiez de méditer dans Insight Timer chaque fois que vous ouvrez accidentellement Twitter. Créons une règle pour cela !
Étape 1. Configurer "Rediriger depuis"
Tout d'abord, vous devez configurer la section Rediriger depuis dans l'écran Modifier la règle de l'application. Les cibles sont des URL commençant par https://twitter.com/
.
Dans ce cas, vous pouvez spécifier le modèle suivant avec le mode Joker :
https://twitter.com/*
En mode Joker, *
signifie qu'il correspond à n'importe quoi (= zéro ou plusieurs caractères).
Cependant, attendez. 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 du mode Joker à Expression régulière, et définissez ceci comme modèle :
https://(twitter|x).com/.*
(twitter|x)
: il cible à la foistwitter
etx
. (|
est appelé un pipe.).*
: C'est la même chose que*
du mode Joker. Plus précisément,.
signifie n'importe quel caractère et*
signifie n'importe quoi avant ce symbole répété un nombre quelconque de fois, ce qui fait qu'il correspond à n'importe quoi.
L'expression régulière est un peu compliquée, mais une fois que vous vous y serez habitué, ce sera 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 l'éviter, 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 caractère spécial si vous préférez. Votre règle est pour votre propre usage, alors implémentez-la comme bon vous semble.
Étape 2 : Configurer "Rediriger vers"
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 des groupes de capture est le moyen le plus simple. :
- Rediriger depuis :
https://example.com/*
(Joker) - Rediriger vers :
$0
- Traitement des groupes 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 leur 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 que le site web affiche. Créons une règle qui ajoute layout=desktop
automatiquement.
Peut-être pensez-vous que vous pourriez le définir comme suit :
- Rediriger depuis :
https://example.com/.*
(Expression régulière) - Rediriger vers :
$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 Joker car elle est convertie 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 une expression régulière :
.*[&?]layout=[^&]*.*
.*
: Correspond à n'importe quoi[&?]
: Correspond à&
ou?
[^&]*
: Correspond à n'importe quoi sauf&
Problème 2 : Impossible de 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 ceci :
- Rediriger depuis :
(https://example.com/[^?]*)(\(.*))?
- Rediriger vers :
$1?layout=desktop&$3
Examinons é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 lorsque 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 nécessite pas d'échappement.
Ce n'est pas une solution parfaite, car elle redirige example.com/hello
vers example.com/hello?layout=desktop&
, ce qui inclut un &
inutile à la fin de l'URL. Ce n'est pas un gros problème en général, mais si vous souhaitez le supprimer, vous pouvez utiliser le Traitement des groupes de capture.
En conclusion, voici le résultat final :
- Rediriger depuis :
(https://example.com/[^?]*)((\(.*))?)
(Expression régulière) - Rediriger vers :
$1?layout=desktop$3
- Modèle d'URL exclu :
.*[&?]layout=[^&]*.*
(Expression régulière) - Traitement des groupes 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.