Aan de slag
Deze pagina beschrijft veelvoorkomende gebruiksscenario's voor het maken van regels in de Redirect Web-app.
(Je kunt ook de details van regelinstellingen leren op de pagina Regelinstellingen.)
Geval 1: Een andere website openen
Stel dat je verslaafd bent aan Twitter, en je besluit te mediteren in Insight Timer wanneer je per ongeluk Twitter opent. Laten we daar een regel voor maken!
Stap 1. "Omleiden van" instellen
Eerst moet je de sectie Omleiden van instellen in het scherm Regel bewerken in de app. De doelen zijn URL's die beginnen met https://twitter.com/
.
In dit geval kun je het volgende patroon specificeren met de Wildcard modus:
https://twitter.com/*
In de Wildcard-modus betekent *
dat het alles overeenkomt (= nul of meer tekens).
Maar wacht even. twitter.com
is hernoemd naar x.com
. Je 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 dat te doen, schakel je over van Wildcard naar Reguliere expressie en stel je dit in als patroon:
https://(twitter|x).com/.*
(twitter|x)
: het richt zich op zoweltwitter
alsx
. (|
wordt een pipe genoemd.).*
: Het is hetzelfde als de*
van Wildcard. Meer specifiek betekent.
elk teken en*
betekent alles vóór dit symbool herhaaldelijk, wat resulteert in het overeenkomen met alles.
Reguliere expressie is een beetje ingewikkeld, maar als je er eenmaal aan gewend bent, zal het een krachtig hulpmiddel zijn. We raden aan RegExr te gebruiken als een speeltuin om te analyseren hoe je reguliere expressiepatroon werkt.
In reguliere expressies wordt .
in (twitter|x).com
ook behandeld als elk teken. Daarom komt (twitter|x).com/.*
ook overeen met bijvoorbeeld twitter1com/
of x_com/
.
Om dit te voorkomen, kun je 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 kun je .
als een speciaal teken laten als je dat wilt. Je regel is voor eigen gebruik, dus implementeer het zoals jij het passend vindt.
Stap 2: "Omleiden naar" instellen
Specificeer eenvoudig de URL als volgt:
https://insighttimer.com/saraauster/guided-meditations/calm
Nu brengt Redirect Web je naar de meditatie wanneer je Twitter bezoekt!
Geval 2: Queryparameters uit URL verwijderen
Stel dat er een queryparameter source=twitter
in een URL van example.com
staat, en je besluit deze te verwijderen om jezelf te anonimiseren.
In dit geval is de optie Verwerking van opnamegroepen de eenvoudigste manier.:
- Omleiden van:
https://example.com/*
(Wildcard) - Omleiden naar:
$0
- Verwerking van opnamegroepen:
- Groep:
$0
- Proces: Voorkomens vervangen
- 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
If you want to remove more parameters, add more processes.
Geval 3: Queryparameters aan URL toevoegen
Let's say there is a website called example.com
that shows a mobile layout by default, but you prefer their desktop layout. Fortunately, the website supports a layout
query parameter to specify which layout the website displays. Let's create a rule that adds layout=desktop
automatically.
Perhaps you think you could define it as follows:
- Omleiden van:
https://example.com/.*
(Reguliere expressie) - Omleiden naar:
$0?layout=desktop
$0
references the target URL. If you try to access example.com/hello
, you're redirected to example.com/hello?layout=desktop
. This feature is called substitution.
Substitution is also available for the Wildcard mode since it's internally converted to Regular Expression.
However, there are a few problems with these settings.
Probleem 1: Oneindige lus
The current setting creates an infinite redirect loop since https://example.com/.*
also targets https://example.com/hello?layout=desktop
.
In this case, you can specify an excluded URL pattern that allows you to access without redirection, like this with Regular Expression:
.*[&?]layout=[^&]*.*
.*
: Komt overeen met alles[&?]
: Komt overeen met&
of?
[^&]*
: Komt overeen met alles behalve&
Probleem 2: Kan bestaande parameters niet correct verwerken
If the target URL already has other query parameters like example.com/hello?theme=dark
, the destination will be example.com/hello?theme=dark?layout=desktop
(there are two ?
in the URL) but you can only join the parameters with &
. ?
as a special character is only allowed at the beginning of the parameters. So it's not treated as a valid parameter.
In this case, change the settings like this:
- Omleiden van:
(https://example.com/[^?]*)(\(.*))?
- Omleiden naar:
$1?layout=desktop&$3
Laten we stap voor stap kijken.
(https://example.com/[^?]*)
: Komt overeen met het deel tot het vorige teken van?
.[^?]*
komt overeen met alles behalve?
.- This is wrapped with
()
so you can reference it with$1
later.
(\(.*))?
: Komt overeen met een string die begint met?
, wat queryparameters betekent.- This also matches empty string by the
?
quantifier at the end of the pattern, which matches zero or one time. - The outer
()
and the inner()
can be referenced with$2
and$3
later.
- This also matches empty string by the
RegExr may help you understand the details.
RegExr shows an error when you don't escape /
with \
. Although you can escape it, it's not required since Redirect Web uses a different engine by Apple that doesn't require escaping.
This is not a perfect solution, as it redirects example.com/hello
to example.com/hello?layout=desktop&
, which includes an unnecessary &
at the end of the URL. It's not a big deal in general, but if you wish to remove it, you can use Capturing Group Processing.
In conclusion, this is the final output:
- Omleiden van:
(https://example.com/[^?]*)((\(.*))?)
(Reguliere expressie) - Omleiden naar:
$1?layout=desktop$3
- Uitgesloten URL-patroon:
.*[&?]layout=[^&]*.*
(Reguliere expressie) - Verwerking van opnamegroepen:
- Groep:
$3
- Proces: Voorkomens vervangen
- Doel:
\?(.*)
- Vervanging:
&$1
- Doel:
- Groep:
This is merely an example. You can also create multiple rules to handle each problem. It can be much simpler.