Erste Schritte
Diese Seite beschreibt gängige Anwendungsfälle zum Erstellen von Regeln in der Redirect Web App.
(Details zu den Regeleinstellungen finden Sie auch auf der Seite Regeleinstellungen.)
Fall 1: Eine andere Webseite öffnen
Angenommen, Sie sind Twitter-süchtig und beschließen, in Insight Timer zu meditieren, wann immer Sie versehentlich Twitter öffnen. Erstellen wir dafür eine Regel!
Schritt 1: "Umleiten von" einrichten
Zuerst sollten Sie den Abschnitt Umleiten 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 mit dem Wildcard-Modus angeben:
https://twitter.com/*
Im Wildcard-Modus bedeutet *
, dass es alles Übereinstimmt (= null oder mehr Zeichen).
Aber Moment mal. twitter.com
wurde in x.com
umbenannt. Sie können twitter.com
einfach durch x.com
ersetzen, aber niemand weiß, wann der neue Besitzer seine Meinung wieder ändern wird, um es rückgängig zu machen. Daher zielen wir auf twitter.com
und x.com
.
Um dies zu tun, wechseln Sie von Wildcard zu Regulärer Ausdruck und legen Sie dies als Muster fest:
https://(twitter|x).com/.*
(twitter|x)
: Es zielt sowohl auftwitter
als auch aufx
. (|
wird ein Pipe genannt.).*
: Es ist dasselbe wie Wildcard's*
. Genauer gesagt bedeutet.
jedes Zeichen und*
bedeutet alles vor diesem Symbol, das beliebig oft wiederholt wird, was dazu führt, dass es alles übereinstimmt.
Reguläre Ausdrücke sind etwas kompliziert, aber sobald Sie sich daran gewöhnt haben, werden sie ein mächtiges Werkzeug sein. Wir empfehlen die Verwendung von RegExr als Spielplatz, um zu analysieren, wie Ihr reguläres Ausdrucksmuster funktioniert.
In regulären Ausdrücken wird .
in (twitter|x).com
auch als jedes Zeichen behandelt. Daher stimmt (twitter|x).com/.*
auch mit beispielsweise twitter1com/
oder x_com/
überein.
Um dies zu vermeiden, können Sie es in (twitter|x)\.com/.*
ändern. \
wird verwendet, um ein Sonderzeichen zu escapen.
Es gibt jedoch keine solchen URLs in der allgemeinen Internetumgebung. Daher können Sie .
als Sonderzeichen belassen, wenn Sie dies bevorzugen. Ihre Regel ist für Ihren eigenen Gebrauch, also implementieren Sie sie nach Belieben.
Schritt 2: "Umleiten nach" einrichten
Geben Sie einfach die URL 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, ihn zu entfernen, um sich zu anonymisieren.
In diesem Fall ist die Option Erfassungsgruppenverarbeitung der einfachste Weg:
- Umleiten von:
https://example.com/*
(Wildcard) - Umleiten nach:
$0
- Erfassungsgruppenverarbeitung:
- 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 Webseite namens example.com
, die standardmäßig ein mobiles Layout anzeigt, Sie aber ihr Desktop-Layout bevorzugen. Glücklicherweise unterstützt die Webseite einen Abfrageparameter layout
, um anzugeben, welches Layout die Webseite anzeigt. Erstellen wir eine Regel, die layout=desktop
automatisch hinzufügt.
Vielleicht denken Sie, Sie könnten es wie folgt definieren:
- Umleiten von:
https://example.com/.*
(Regulärer Ausdruck) - Umleiten nach:
$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
umgeleitet. Diese Funktion wird Substitution genannt.
Substitution ist auch für den Wildcard-Modus verfügbar, da er intern in einen regulären Ausdruck umgewandelt wird.
Es gibt jedoch einige Probleme mit diesen Einstellungen.
Problem 1: Endlosschleife
Die aktuelle Einstellung erzeugt eine unendliche Umleitungsschleife, da https://example.com/.*
auch auf https://example.com/hello?layout=desktop
abzielt.
In diesem Fall können Sie ein ausgeschlossenes URL-Muster angeben, das Ihnen den Zugriff ohne Umleitung ermöglicht, wie hier mit regulärem Ausdruck:
.*[&?]layout=[^&]*.*
.*
: Passt zu allem[&?]
: Passt zu&
oder?
[^&]*
: Passt zu allem außer&
Problem 2: Vorhandene Parameter können nicht richtig verarbeitet werden
Wenn die Ziel-URL bereits andere Abfrageparameter wie example.com/hello?theme=dark
enthält, lautet das Ziel example.com/hello?theme=dark?layout=desktop
(Es gibt zwei ?
in der URL), aber Sie können die Parameter nur mit &
verbinden. ?
als Sonderzeichen ist nur am Anfang der Parameter erlaubt. Es wird also nicht als gültiger Parameter behandelt.
In diesem Fall ändern Sie die Einstellungen wie folgt:
- Umleiten von:
(https://example.com/[^?]*)(\\?(.*))?
- Umleiten nach:
$1?layout=desktop&$3
Schauen wir uns das Schritt für Schritt an.
(https://example.com/[^?]*)
: Passt zum Teil bis zum vorherigen Zeichen von?
.[^?]*
passt zu allem außer?
.- Dies ist mit
()
umschlossen, sodass Sie später mit$1
darauf verweisen können.
(\\?(.*))?
: Passt zu einer Zeichenfolge, die mit?
beginnt, was Abfrageparameter bedeutet.- Dies passt auch zu einer leeren Zeichenfolge durch den
?
-Quantifizierer am Ende des Musters, der null oder einmal passt. - Die äußeren
()
und die inneren()
können später mit$2
und$3
referenziert werden.
- Dies passt auch zu einer leeren Zeichenfolge durch den
RegExr kann Ihnen helfen, die Details zu verstehen.
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 sie example.com/hello
zu example.com/hello?layout=desktop&
umleitet, 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 Erfassungsgruppenverarbeitung verwenden.
In Schlussfolgerung, dies ist die endgültige Ausgabe:
- Umleiten von:
(https://example.com/[^?]*)((\\?(.*))?)
(Regulärer Ausdruck) - Umleiten nach:
$1?layout=desktop$3
- Ausgeschlossenes URL-Muster:
.*[&?]layout=[^&]*.*
(Regulärer Ausdruck) - Erfassungsgruppenverarbeitung:
- 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. Es kann viel einfacher sein.