Aan de slag
Deze pagina beschrijft veelvoorkomende gebruiksscenario's voor het maken van regels in de Redirect Web-app.
(U kunt ook de details van de regelinstellingen leren op de pagina Regelinstellingen.)
Case 1: Een andere website openen
Stel dat u verslaafd bent aan Twitter en besluit te mediteren in Insight Timer telkens wanneer u per ongeluk Twitter opent. Laten we daar een regel voor maken!
Stap 1. Stel "Omleiden vanaf" in
Eerst moet u de sectie Omleiden vanaf instellen in het scherm Regel bewerken in de app. De doelwitten zijn URL's die beginnen met https://twitter.com/
.
In dit geval kunt u het volgende patroon specificeren met de Wildcard-modus:
https://twitter.com/*
In de Wildcard-modus betekent *
dat het alles matcht (= nul of meer tekens).
Maar wacht. twitter.com
is hernoemd naar x.com
. U kunt twitter.com
eenvoudig vervangen door x.com
, maar niemand weet wanneer de nieuwe eigenaar van gedachten zal veranderen om het terug te draaien. Laten we daarom zowel twitter.com
als x.com
targeten.
Om dit te doen, schakelt u van Wildcard over naar Reguliere expressie en stelt u dit in als patroon:
https://(twitter|x).com/.*
(twitter|x)
: het target zoweltwitter
alsx
. (|
wordt een pipe genoemd.).*
: Het is hetzelfde als Wildcard's*
. Meer specifiek betekent.
elk teken en*
betekent alles vóór dit symbool herhaald een willekeurig aantal keren, wat resulteert in het matchen van alles.
Reguliere expressies zijn een beetje ingewikkeld, maar zodra u eraan gewend bent, is het een krachtig hulpmiddel. We raden aan RegExr te gebruiken als een speeltuin om te analyseren hoe uw reguliere expressiepatroon werkt.
In reguliere expressies wordt .
in (twitter|x).com
ook behandeld als elk teken. Daarom matcht (twitter|x).com/.*
ook, bijvoorbeeld, twitter1com/
of x_com/
.
Om dit te voorkomen, kunt u het wijzigen in (twitter|x)\.com/.*
. \
wordt gebruikt om een speciaal teken te escapen.
Er zijn echter geen dergelijke URL's in de algemene internetomgeving. Daarom kunt u .
als een speciaal teken laten als u dat wilt. Uw regel is voor eigen gebruik, dus implementeer het zoals u het passend vindt.
Stap 2: Stel "Omleiden naar" in
Specificeer eenvoudig de URL als volgt:
https://insighttimer.com/saraauster/guided-meditations/calm
Nu brengt Redirect Web u naar de meditatie wanneer u Twitter bezoekt!
Case 2: Queryparameters uit URL verwijderen
Stel dat er een queryparameter source=twitter
is in een URL van example.com
, en u hebt besloten deze te verwijderen om uzelf te anonimiseren.
In dit geval is de optie Verwerking van vastleggroep de eenvoudigste manier:
- Omleiden vanaf:
https://example.com/*
(Wildcard) - Omleiden naar:
$0
- Verwerking van vastleggroep:
- Groep:
$0
- Verwerken: Vervang voorkomens
- Doel:
&?source=[^&]*
- Vervanging: (geen)
- Tekstpatroon: Reguliere expressie
- Doel:
- Groep:
Deze regel werkt als volgt:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Als u meer parameters wilt verwijderen, voegt u meer processen toe.
Case 3: Queryparameters aan URL toevoegen
Laten we zeggen dat er een website example.com
is die standaard een mobiele lay-out toont, maar u geeft de voorkeur aan de desktoplay-out. Gelukkig ondersteunt de website een layout
queryparameter om te specificeren welke lay-out de website weergeeft. Laten we een regel maken die layout=desktop
automatisch toevoegt.
Misschien denkt u dat u het als volgt zou kunnen definiëren:
- Omleiden vanaf:
https://example.com/.*
(Reguliere expressie) - Omleiden naar:
$0?layout=desktop
$0
verwijst naar de doel-URL. Als u probeert example.com/hello
te openen, wordt u omgeleid naar example.com/hello?layout=desktop
. Deze functie wordt substitutie genoemd.
Substitutie is ook beschikbaar voor de Wildcard-modus, aangezien deze intern wordt omgezet naar een reguliere expressie.
Er zijn echter een paar problemen met deze instellingen.
Probleem 1: Oneindige lus
De huidige instelling creëert een oneindige omleidingslus, aangezien https://example.com/.*
ook https://example.com/hello?layout=desktop
target.
In dit geval kunt u een uitgesloten URL-patroon specificeren dat u toegang geeft zonder omleiding, zoals dit met Reguliere expressie:
.*[&?]layout=[^&]*.*
.*
: Matcht alles[&?]
: Matcht of&
of?
[^&]*
: Matcht alles behalve&
Probleem 2: Kan bestaande parameters niet correct afhandelen
Als de doel-URL al andere queryparameters heeft, zoals example.com/hello?theme=dark
, wordt de bestemming example.com/hello?theme=dark?layout=desktop
(er zijn twee ?
in de URL), maar u kunt de parameters alleen samenvoegen met &
. ?
als speciaal teken is alleen toegestaan aan het begin van de parameters. Het wordt dus niet behandeld als een geldige parameter.
Wijzig in dit geval de instellingen als volgt:
- Omleiden vanaf:
(https://example.com/[^?]*)(\?(.*))?
- Omleiden naar:
$1?layout=desktop&$3
Laten we stap voor stap kijken.
(https://example.com/[^?]*)
: Matcht het deel tot het vorige teken van?
.[^?]*
matcht alles behalve?
.- Dit is omwikkeld met
()
zodat u ernaar kunt verwijzen met$1
.
(\?(.*))?
: Matcht een string die begint met?
, wat queryparameters betekent.- Dit matcht ook een lege string door de
?
kwantificator aan het einde van het patroon, wat nul of één keer matcht. - De buitenste
()
en de binnenste()
kunnen later worden verwezen met$2
en$3
.
- Dit matcht ook een lege string door de
RegExr kan u helpen de details te begrijpen.
RegExr toont een fout wanneer u /
niet escaped met \
. Hoewel u het kunt escapen, is het niet vereist aangezien Redirect Web een andere engine van Apple gebruikt die geen escaping vereist.
Dit is geen perfecte oplossing, aangezien het example.com/hello
omleidt naar example.com/hello?layout=desktop&
, wat een onnodige &
aan het einde van de URL bevat. Over het algemeen is dit geen groot probleem, maar als u het wilt verwijderen, kunt u Verwerking van vastleggroep gebruiken.
Concluderend is dit de uiteindelijke uitvoer:
- Omleiden vanaf:
(https://example.com/[^?]*)((\?(.*))?)
(Reguliere expressie) - Omleiden naar:
$1?layout=desktop$3
- Uitgesloten URL-patroon:
.*[&?]layout=[^&]*.*
(Reguliere expressie) - Verwerking van vastleggroep:
- Groep:
$3
- Verwerken: Vervang voorkomens
- Doel:
\?(.*)
- Vervanging:
&$1
- Doel:
- Groep:
Dit is slechts een voorbeeld. U kunt ook meerdere regels maken om elk probleem af te handelen. Dit kan veel eenvoudiger zijn.