Liigu peamise sisu juurde

Alustamine

See leht kirjeldab levinud kasutusjuhtumeid reeglite loomiseks rakenduses Redirect Web.

(Reegliseadete üksikasjadega saate tutvuda ka lehel Reegliseaded.)

Juhtum 1: Ava teine veebisait

Oletame, et olete Twitterist sõltuvuses ja otsustate mediteerida Insight Timeris iga kord, kui kogemata Twitteri avate. Loome selleks reegli!

1. samm. Seadista "Redirect From"

Kõigepealt peaksite rakenduses Edit Rule ekraanil seadistama jaotise Redirect From. Sihtkohad on URL-id, mis algavad https://twitter.com/.

Sel juhul saate Wildcard režiimiga määrata järgmise mustri:

https://twitter.com/*

Wildcard režiimis tähendab * seda, et see sobitub mis tahes (= null või rohkem märki).

Kuid oot-oot. twitter.com nimetati ümber x.com-iks. Saate lihtsalt asendada twitter.com-i x.com-iga, kuid keegi ei tea, millal uus omanik oma meelt uuesti muudab, et see tagasi pöörata. Seetõttu sihtime nii twitter.com-i kui ka x.com-i.

Selleks lülitage Wildcardilt Regular Expression-ile ja määrake see mustriks:

https://(twitter|x).com/.*
  • (twitter|x): see sihib nii twitter-it kui ka x-i. (| nimetatakse toruks.)
  • .*: see on sama mis Wildcardi *. Täpsemalt, . tähendab mis tahes märki ja * tähendab kõike enne seda sümbolit, mis on kordunud mis tahes arv kordi, mistõttu see sobib kõigele.

Regulaaravaldised on pisut keerulised, kuid kui olete nendega harjunud, on see võimas tööriist. Soovitame kasutada RegExr-i kui mänguväljakut, et analüüsida, kuidas teie regulaaravaldise muster töötab.

teade

Regulaaravaldistes käsitletakse .-i (twitter|x).com-is ka kui mis tahes märki. Seega sobib (twitter|x).com/.* ka näiteks twitter1com/ või x_com/.

Selle vältimiseks saate selle muuta (twitter|x)\.com/.*-iks. \-i kasutatakse erimärgi tühistamiseks.

Kuid üldises internetikeskkonnas selliseid URL-e ei ole. Seega võite jätta . erimärgina, kui eelistate. Teie reegel on teie enda tarbeks, seega rakendage seda nii, nagu teile sobib.

2. samm: Seadista "Redirect To"

Määrake URL lihtsalt järgmiselt:

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

Nüüd viib Redirect Web teid Twitterile ligi pääsedes meditatsioonile!

⬇️ Laadi reegel alla

Juhtum 2: Kustuta URL-ist päringuparameetrid

Oletame, et URL-is example.com on päringuparameeter source=twitter ja otsustate selle eemaldada, et ennast anonüümseks muuta.

Sel juhul on Capturing Group Processing valik kõige lihtsam viis:

  • Redirect From: https://example.com/* (Wildcard)
  • Redirect To: $0
  • Capturing Group Processing:
    • Group: $0
    • Process: Replace Occurrences
      • Target: &?source=[^&]*
      • Replacement: (puudub)
      • Text Pattern: Regular Expression

⬇️ Laadi reegel alla

See reegel töötab järgmiselt:

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

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

Kui soovite eemaldada rohkem parameetreid, lisage rohkem protsesse.

Juhtum 3: Lisa URL-ile päringuparameetrid

Oletame, et on veebisait nimega example.com, mis näitab vaikimisi mobiilset paigutust, kuid te eelistate selle töölaua paigutust. Õnneks toetab veebisait päringuparameetrit layout, et määrata, millist paigutust veebisait kuvab. Loome reegli, mis lisab automaatselt layout=desktop.

Võib-olla arvate, et saate selle määratleda järgmiselt:

  • Redirect From: https://example.com/.* (Regular Expression)
  • Redirect To: $0?layout=desktop

$0 viitab siht-URL-ile. Kui proovite avada example.com/hello, suunatakse teid ümber aadressile example.com/hello?layout=desktop. Seda funktsiooni nimetatakse asendamiseks.

nõuanne

Asendamine on saadaval ka Wildcard režiimis, kuna see teisendatakse sisemiselt regulaaravaldiseks.

Kuid nende sätetega on mõned probleemid.

Probleem 1: Lõputu tsükkel

Praegune säte loob lõputu ümbersuunamise tsükli, kuna https://example.com/.* sihib ka https://example.com/hello?layout=desktop.

Sel juhul saate määrata välistatud URL-i mustri, mis võimaldab teil ligi pääseda ilma ümbersuunamiseta, näiteks regulaaravaldisega:

.*[&?]layout=[^&]*.*
  • .*: Sobib kõigele
  • [&?]: Sobib kas &-le või ?-le
  • [^&]*: Sobib kõigele peale &

Probleem 2: Ei saa olemasolevaid parameetreid õigesti käsitleda

Kui siht-URL-il on juba teisi päringuparameetreid nagu example.com/hello?theme=dark, on sihtkohaks example.com/hello?theme=dark?layout=desktop (URL-is on kaks ?), kuid parameetreid saate ühendada ainult &-iga. ? kui erimärk on lubatud ainult parameetrite alguses. Seega seda ei käsitleta kehtiva parameetrina.

Sel juhul muutke sätteid nii:

  • Redirect From: (https://example.com/[^?]*)(\?(.*))?
  • Redirect To: $1?layout=desktop&$3

Vaatame samm-sammult.

  • (https://example.com/[^?]*): Sobib osale kuni ? eelneva märgini.
    • [^?]* sobib kõigele peale ?.
    • See on ümbritsetud ()-ga, nii et saate sellele hiljem viidata $1-ga.
  • (\?(.*))?: Sobib stringile, mis algab ?-ga, mis tähendab päringuparameetreid.
    • See sobib ka tühjale stringile mustri lõpus oleva ? kvantifikaatori abil, mis sobib null või ühe korra.
    • Välistele ()-le ja sisemistele ()-le saab hiljem viidata $2 ja $3-ga.

RegExr võib aidata teil üksikasju mõista.

teade

RegExr näitab viga, kui te /-i \-ga ei tühista. Kuigi saate seda tühistada, ei ole see nõutav, kuna Redirect Web kasutab teist Apple'i mootorit, mis ei nõua tühistamist.

See ei ole täiuslik lahendus, kuna see suunab example.com/hello ümber example.com/hello?layout=desktop&-i, mis sisaldab URL-i lõpus ebavajalikku &. See ei ole üldiselt suur probleem, kuid kui soovite seda eemaldada, saate kasutada Capturing Group Processing-it.

Kokkuvõttes on see lõplik väljund:

  • Redirect From: (https://example.com/[^?]*)((\?(.*))?) (Regular Expression)
  • Redirect To: $1?layout=desktop$3
  • Excluded URL Pattern: .*[&?]layout=[^&]*.* (Regular Expression)
  • Capturing Group Processing:
    • Group: $3
    • Process: Replace Occurrences
      • Target: \?(.*)
      • Replacement: &$1

⬇️ Laadi reegel alla

See on kõigest näide. Võite luua ka mitu reeglit iga probleemi käsitlemiseks. See võib olla palju lihtsam.