Ga naar hoofdinhoud

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 zowel twitter als x. (| 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.

notitie

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!

⬇️ Download de regel

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

⬇️ Download de regel

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.

tip

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.

RegExr may help you understand the details.

notitie

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

⬇️ Download de regel

This is merely an example. You can also create multiple rules to handle each problem. It can be much simpler.