Zum Hauptinhalt springen

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 auf twitter und x. (| 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 beispielsweise twitter1com/ oder x_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!

⬇️ Regel herunterladen

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

⬇️ Regel herunterladen

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.

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

⬇️ Regel herunterladen

Dies ist lediglich ein Beispiel. Sie können auch mehrere Regeln erstellen, um jedes Problem zu lösen. Das kann viel einfacher sein.