Skip to main content

Začíname

Táto stránka popisuje bežné prípady použitia pre vytváranie pravidiel v aplikácii Redirect Web.

(Podrobnosti o nastaveniach pravidiel sa dozviete aj na stránke Nastavenia pravidiel.)

Prípad 1: Otvorenie inej webovej stránky

Predpokladajme, že ste závislí na Twitteri a rozhodnete sa meditovať v Insight Timer vždy, keď náhodou otvoríte Twitter. Vytvorme pre to pravidlo!

Krok 1. Nastavte "Presmerovať z"

Najprv by ste mali nastaviť sekciu Presmerovať z na obrazovke Upraviť pravidlo v aplikácii. Cieľmi sú URL adresy začínajúce na https://twitter.com/.

V tomto prípade môžete zadať nasledujúci vzor s režimom Zástupný znak:

https://twitter.com/*

V režime Zástupný znak znamená *, že sa zhoduje s čímkoľvek (= nula alebo viac znakov).

Avšak, počkajte. twitter.com bol premenovaný na x.com. Môžete jednoducho nahradiť twitter.com za x.com ale nikto nevie, kedy si nový majiteľ opäť rozmyslí a vráti to späť. Preto sa zamerajme na twitter.com aj x.com.

Ak to chcete urobiť, prepnite zo Zástupného znaku na Regulárny výraz a nastavte tento vzor:

https://(twitter|x).com/.*
  • (twitter|x): zameriava sa na twitter aj x. (| sa nazýva rúrka.)
  • .*: Je to to isté ako * v Zástupnom znaku. Konkrétnejšie, . znamená akýkoľvek znak a * znamená čokoľvek pred týmto symbolom opakované ľubovoľný počet krát, čo vedie k tomu, že sa zhoduje s čímkoľvek.

Regulárny výraz je trochu komplikovaný, ale akonáhle si naň zvyknete, bude to silný nástroj. Odporúčame použiť RegExr ako ihrisko na analýzu toho, ako funguje váš vzor regulárneho výrazu.

note

V regulárnych výrazoch sa . v (twitter|x).com tiež považuje za akýkoľvek znak. Preto (twitter|x).com/.* sa zhoduje napríklad aj s twitter1com/ alebo x_com/.

Aby ste sa tomu vyhli, môžete to zmeniť na (twitter|x)\.com/.*. \ sa používa na únik špeciálneho znaku.

Avšak, v bežnom internetovom prostredí takéto URL adresy neexistujú. Preto môžete nechať . ako špeciálny znak, ak to uprednostňujete. Vaše pravidlo je pre vaše vlastné použitie, takže ho implementujte tak, ako to považujete za vhodné.

Krok 2: Nastavte "Presmerovať na"

Jednoducho zadajte URL adresu nasledovne:

https://insighttimer.com/saraauster/guided-meditations/calm

Teraz vás Redirect Web presmeruje na meditáciu, keď pristupujete k Twitteru!

⬇️ Stiahnuť pravidlo

Prípad 2: Odstránenie parametrov dotazu z URL

Predpokladajme, že v URL adrese example.com je parameter dotazu source=twitter a vy ste sa rozhodli ho odstrániť, aby ste sa anonymizovali.

V tomto prípade je najjednoduchší spôsob možnosť Spracovanie zachytávacej skupiny.:

  • Presmerovať z: https://example.com/* (Zástupný znak)
  • Presmerovať na: $0
  • Spracovanie zachytávacej skupiny:
    • Skupina: $0
    • Proces: Nahradiť výskyty
      • Cieľ: &?source=[^&]*
      • Náhrada: (žiadna)
      • Textový vzor: Regulárny výraz

⬇️ Stiahnuť pravidlo

Toto pravidlo funguje nasledovne:

https://example.com/?source=twitter
↪ https://example.com/?

https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar

Ak chcete odstrániť viac parametrov, pridajte ďalšie procesy.

Prípad 3: Pridanie parametrov dotazu do URL

Povedzme, že existuje webová stránka s názvom example.com, ktorá predvolene zobrazuje mobilné rozloženie, ale vy uprednostňujete jej desktopové rozloženie. Našťastie webová stránka podporuje parameter dotazu layout na určenie, ktoré rozloženie webová stránka zobrazuje. Vytvorme pravidlo, ktoré automaticky pridá layout=desktop.

Možno si myslíte, že by ste to mohli definovať nasledovne:

  • Presmerovať z: https://example.com/.* (Regulárny výraz)
  • Presmerovať na: $0?layout=desktop

$0 odkazuje na cieľovú URL. Ak sa pokúsite pristupovať k example.com/hello, budete presmerovaní na example.com/hello?layout=desktop. Táto funkcia sa nazýva substitúcia.

tip

Substitúcia je k dispozícii aj pre režim Zástupný znak, pretože sa interne konvertuje na regulárny výraz.

Avšak, s týmito nastaveniami je niekoľko problémov.

Problém 1: Nekonečná slučka

Aktuálne nastavenie vytvára nekonečnú slučku presmerovania, pretože https://example.com/.* sa zameriava aj na https://example.com/hello?layout=desktop.

V tomto prípade môžete zadať vylúčený vzor URL, ktorý vám umožní prístup bez presmerovania, napríklad takto s regulárnym výrazom:

.*[&?]layout=[^&]*.*
  • .*: Zhoduje sa s čímkoľvek
  • [&?]: Zhoduje sa buď s & alebo ?
  • [^&]*: Zhoduje sa s čímkoľvek okrem &

Problém 2: Nedokáže správne spracovať existujúce parametre

Ak cieľová URL už má iné parametre dotazu ako example.com/hello?theme=dark, cieľ bude example.com/hello?theme=dark?layout=desktop (v URL sú dva ?), ale parametre môžete spojiť iba s &. ? ako špeciálny znak je povolený iba na začiatku parametrov. Takže sa nepovažuje za platný parameter.

V tomto prípade zmeňte nastavenia takto:

  • Presmerovať z: (https://example.com/[^?]*)(\(.*))?
  • Presmerovať na: $1?layout=desktop&$3

Pozrime sa krok za krokom.

  • (https://example.com/[^?]*): Zhoduje sa s časťou až po predchádzajúci znak ?.
    • [^?]* sa zhoduje s čímkoľvek okrem ?.
    • Toto je zabalené do (), takže naň môžete neskôr odkazovať pomocou $1.
  • (\(.*))?: Zhoduje sa s reťazcom začínajúcim na ?, čo znamená parametre dotazu.
    • Toto sa zhoduje aj s prázdnym reťazcom pomocou kvantifikátora ? na konci vzoru, ktorý sa zhoduje nula alebo jedenkrát.
    • Vonkajšie () a vnútorné () môžu byť neskôr odkazované pomocou $2 a $3.

RegExr vám môže pomôcť pochopiť podrobnosti.

note

RegExr zobrazí chybu, ak neuniknete / pomocou \. Hoci to môžete uniknúť, nie je to potrebné, pretože Redirect Web používa iný engine od Apple, ktorý nevyžaduje únik.

Toto nie je dokonalé riešenie, pretože presmeruje example.com/hello na example.com/hello?layout=desktop&, čo obsahuje zbytočný & na konci URL. Vo všeobecnosti to nie je veľký problém, ale ak ho chcete odstrániť, môžete použiť Spracovanie zachytávacej skupiny.

Na záver, toto je konečný výstup:

  • Presmerovať z: (https://example.com/[^?]*)((\(.*))?) (Regulárny výraz)
  • Presmerovať na: $1?layout=desktop$3
  • Vylúčený vzor URL: .*[&?]layout=[^&]*.* (Regulárny výraz)
  • Spracovanie zachytávacej skupiny:
    • Skupina: $3
    • Proces: Nahradiť výskyty
      • Cieľ: \?(.*)
      • Náhrada: &$1

⬇️ Stiahnuť pravidlo

Toto je len príklad. Môžete tiež vytvoriť viacero pravidiel na riešenie každého problému. Môže to byť oveľa jednoduchšie.