Erste Schritte
Diese Seite beschreibt häufige Anwendungsfälle zum Erstellen von Regeln in der Redirect Web App.
(Details zu den Regelseinstellungen finden Sie auf der Seite Regel-Einstellungen.)
Fall 1: Eine andere Website öffnen
Angenommen, Sie sind süchtig nach Twitter und beschließen, in Insight Timer zu meditieren, wann immer Sie Twitter versehentlich öffnen. Erstellen wir eine Regel dafür!
Schritt 1: „Weiterleiten von“ einrichten
Zuerst sollten Sie den Bereich Weiterleiten von im Bildschirm Regel bearbeiten in der App einrichten. Die Ziele sind URLs, die mit https://twitter.com/
beginnen.
In diesem Fall können Sie das folgende Muster im Platzhalter-Modus angeben:
https://twitter.com/*
Im Platzhalter-Modus bedeutet *
, dass es alles Übereinstimmende bedeutet (= null oder mehr Zeichen).
Moment mal. twitter.com
wurde in x.com
umbenannt. Sie könnten einfach twitter.com
durch x.com
ersetzen, aber niemand weiß, wann der neue Eigentümer seine Meinung wieder ändern und es rückgängig machen wird. Daher zielen wir auf beide, twitter.com
und x.com
.
Dazu wechseln Sie vom Platzhalter-Modus zum Modus für reguläre Ausdrücke und legen dies als Muster fest:
https://(twitter|x).com/.*
(twitter|x)
: es zielt auftwitter
undx
. (|
wird Pipe genannt.).*
: Es ist dasselbe wie der Platzhalter*
. Genauer gesagt bedeutet.
beliebiges Zeichen und*
bedeutet alles vor diesem Symbol, das beliebig oft wiederholt wird, wodurch es alles Übereinstimmende bedeutet.
Reguläre Ausdrücke sind etwas kompliziert, aber sobald man sich daran gewöhnt hat, werden sie zu einem mächtigen Werkzeug. Wir empfehlen die Verwendung von RegExr als Spielwiese, um zu analysieren, wie Ihr Muster für reguläre Ausdrücke funktioniert.
[!HINWEIS] In regulären Ausdrücken wird
.
in(twitter|x).com
ebenfalls als beliebiges Zeichen behandelt. Daher passt(twitter|x).com/.*
auch auf beispielsweisetwitter1com/
oderx_com/
.Um dies zu vermeiden, können Sie es in
(twitter|x)\.com/.*
ändern.\
wird verwendet, um ein Sonderzeichen zu escapen.Solche URLs gibt es jedoch im allgemeinen Internet nicht. Daher können Sie
.
als Sonderzeichen belassen, wenn Sie dies bevorzugen. Ihre Regel ist für Ihren eigenen Gebrauch bestimmt, implementieren Sie sie also nach eigenem Ermessen.
Schritt 2: „Weiterleiten an“ einrichten
Geben Sie die URL einfach wie folgt an:
https://insighttimer.com/saraauster/guided-meditations/calm
Jetzt bringt Sie Redirect Web zur Meditation, wenn Sie auf Twitter zugreifen!
Fall 2: Abfrageparameter aus der URL entfernen
Angenommen, es gibt einen Abfrageparameter source=twitter
in einer URL von example.com
, und Sie haben beschlossen, diesen zu entfernen, um sich zu anonymisieren.
In diesem Fall ist die Option Verarbeitung von Erfassungsgruppen der einfachste Weg:
- Weiterleiten von:
https://example.com/*
(Platzhalter) - Weiterleiten an:
$0
- Verarbeitung von Erfassungsgruppen:
- Gruppe:
$0
- Prozess: Vorkommen ersetzen
- Ziel:
&?source=[^&]*
- Ersetzung: (keine)
- Textmuster: Regulärer Ausdruck
- Ziel:
- Gruppe:
Diese Regel funktioniert wie folgt:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Wenn Sie weitere Parameter entfernen möchten, fügen Sie weitere Prozesse hinzu.
Fall 3: Abfrageparameter zur URL hinzufügen
Nehmen wir an, es gibt eine Website namens example.com
, die standardmäßig ein mobiles Layout anzeigt, Sie aber ihr Desktop-Layout bevorzugen. Glücklicherweise unterstützt die Website einen layout
-Abfrageparameter, um anzugeben, welches Layout die Website anzeigt. Erstellen wir eine Regel, die layout=desktop
automatisch hinzufügt.
Vielleicht denken Sie, Sie könnten es wie folgt definieren:
- Weiterleiten von:
https://example.com/.*
(Regulärer Ausdruck) - Weiterleiten an:
$0?layout=desktop
$0
verweist auf die Ziel-URL. Wenn Sie versuchen, auf example.com/hello
zuzugreifen, werden Sie zu example.com/hello?layout=desktop
weitergeleitet. Diese Funktion wird als Substitution bezeichnet.
[!TIPP] Die Substitution ist auch für den Platzhalter-Modus verfügbar, da sie intern in einen regulären Ausdruck umgewandelt wird.
Diese Einstellungen bringen jedoch einige Probleme mit sich.
Problem 1: Endlosschleife
Die aktuelle Einstellung erzeugt eine unendliche Weiterleitungsschleife, da https://example.com/.*
auch auf https://example.com/hello?layout=desktop
zielt.
In diesem Fall können Sie ein ausgeschlossenes URL-Muster angeben, das Ihnen den Zugriff ohne Weiterleitung ermöglicht, wie dieses mit regulärem Ausdruck:
.*[&?]layout=[^&]*.*
.*
: Entspricht allem[&?]
: Entspricht entweder&
oder?
[^&]*
: Entspricht allem außer&
Problem 2: Bestehende Parameter können nicht richtig verarbeitet werden
Wenn die Ziel-URL bereits andere Abfrageparameter wie example.com/hello?theme=dark
enthält, wird das Ziel example.com/hello?theme=dark?layout=desktop
sein (Es gibt zwei ?
in der URL), aber Sie können die Parameter nur mit &
verbinden. ?
als Sonderzeichen ist nur am Anfang der Parameter erlaubt. Daher wird es nicht als gültiger Parameter behandelt.
In diesem Fall ändern Sie die Einstellungen wie folgt:
- Weiterleiten von:
(https://example.com/[^?]*)(\?(.*))?
- Weiterleiten an:
$1?layout=desktop&$3
Schauen wir uns das Schritt für Schritt an.
(https://example.com/[^?]*)
: Entspricht dem Teil bis zum vorherigen Zeichen von?
.[^?]*
entspricht allem außer?
.- Dies ist in
()
eingeschlossen, damit Sie es später mit$1
referenzieren können.
(\?(.*))?
: Entspricht einer Zeichenfolge, die mit?
beginnt, was Abfrageparameter bedeutet.- Dies entspricht auch einem leeren String durch den
?
-Quantor am Ende des Musters, der null- oder einmal übereinstimmt. - Die äußeren
()
und die inneren()
können später mit$2
und$3
referenziert werden.
- Dies entspricht auch einem leeren String durch den
RegExr kann Ihnen helfen, die Details zu verstehen.
[!HINWEIS] RegExr zeigt einen Fehler an, wenn Sie
/
nicht mit\
escapen. Obwohl Sie es escapen können, ist es nicht erforderlich, da Redirect Web eine andere Engine von Apple verwendet, die kein Escaping erfordert.
Dies ist keine perfekte Lösung, da example.com/hello
zu example.com/hello?layout=desktop&
weitergeleitet wird, was ein unnötiges &
am Ende der URL enthält. Das ist im Allgemeinen kein großes Problem, aber wenn Sie es entfernen möchten, können Sie die Verarbeitung von Erfassungsgruppen verwenden.
Zusammenfassend ist dies das Endergebnis:
- Weiterleiten von:
(https://example.com/[^?]*)((\?(.*))?)
(Regulärer Ausdruck) - Weiterleiten an:
$1?layout=desktop$3
- Ausgeschlossenes URL-Muster:
.*[&?]layout=[^&]*.*
(Regulärer Ausdruck) - Verarbeitung von Erfassungsgruppen:
- Gruppe:
$3
- Prozess: Vorkommen ersetzen
- Ziel:
\?(.*)
- Ersetzung:
&$1
- Ziel:
- Gruppe:
Dies ist lediglich ein Beispiel. Sie können auch mehrere Regeln erstellen, um jedes Problem zu lösen. Das kann viel einfacher sein.