Skip to main content

Darbo pradžia

Šiame puslapyje aprašomi dažni naudojimo atvejai kuriant taisykles „Redirect Web“ programėlėje.

(Išsamią informaciją apie taisyklių nustatymus taip pat galite sužinoti Taisyklių nustatymų puslapyje.)

1 atvejis: atidaryti kitą svetainę

Tarkime, esate priklausomas nuo „Twitter“ ir nusprendžiate medituoti „Insight Timer“ programėlėje kiekvieną kartą, kai netyčia atidarote „Twitter“. Sukurkime tam taisyklę!

1 žingsnis. Nustatykite „Nukreipti iš“ (Redirect From)

Pirmiausia, programėlėje, ekrane „Redaguoti taisyklę“ (Edit Rule), turėtumėte nustatyti Nukreipti iš (Redirect From) skyrių. Tikslai yra URL, prasidedantys https://twitter.com/.

Šiuo atveju galite nurodyti šį šabloną, naudodami Pakaitos simbolio (Wildcard) režimą:

https://twitter.com/*

Pakaitos simbolio režime * reiškia, kad jis atitinka bet ką (= nulį ar daugiau simbolių).

Tačiau palaukite. twitter.com buvo pervadintas į x.com. Galite tiesiog pakeisti twitter.com į x.com, bet niekas nežino, kada naujasis savininkas vėl persigalvos ir grąžins seną pavadinimą. Todėl taikykime abu: twitter.com ir x.com.

Norėdami tai padaryti, perjunkite iš Pakaitos simbolio režimo į Reguliariąją išraišką ir nustatykite tokį šabloną:

https://(twitter|x).com/.*
  • (twitter|x): jis taiko tiek twitter, tiek x. (| vadinamas vertikaliuoju brūkšniu.)
  • .*: Tai tas pats, kas Pakaitos simbolio *. Tiksliau, . reiškia bet kurį simbolį, o * reiškia bet ką prieš šį simbolį, pakartotą bet kiek kartų, dėl ko jis atitinka bet ką.

Reguliarioji išraiška yra šiek tiek sudėtinga, bet kai prie jos priprasite, ji taps galingu įrankiu. Rekomenduojame naudoti RegExr kaip „žaidimų aikštelę“ analizuoti, kaip veikia jūsų Reguliariosios išraiškos šablonas.

note

Reguliariosiose išraiškose . (twitter|x).com taip pat traktuojamas kaip bet kuris simbolis. Todėl (twitter|x).com/.* taip pat atitinka, pavyzdžiui, twitter1com/ arba x_com/.

Kad to išvengtumėte, galite pakeisti jį į (twitter|x)\.com/.*. \ naudojamas specialiajam simboliui išvengti.

Tačiau bendroje interneto aplinkoje tokių URL nėra. Todėl, jei pageidaujate, galite palikti . kaip specialų simbolį. Jūsų taisyklė skirta jūsų pačių naudojimui, todėl įdiekite ją taip, kaip jums atrodo tinkama.

2 žingsnis: Nustatykite „Nukreipti į“ (Redirect To)

Tiesiog nurodykite URL taip:

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

Dabar, kai pasiekiate „Twitter“, „Redirect Web“ nukreipia jus į meditaciją!

⬇️ Atsisiųsti taisyklę

2 atvejis: pašalinti užklausos parametrus iš URL

Tarkime, kad example.com URL yra užklausos parametras source=twitter ir jūs nusprendėte jį pašalinti, kad taptumėte anonimiškas.

Šiuo atveju lengviausias būdas yra Grupės fiksavimo apdorojimo (Capturing Group Processing) parinktis:

  • Nukreipti iš: https://example.com/* (Pakaitos simbolis)
  • Nukreipti į: $0
  • Grupės fiksavimo apdorojimas:
    • Grupė: $0
    • Procesas: Pakeisti atsiradimus
      • Tikslas: &?source=[^&]*
      • Pakeitimas: (niekas)
      • Teksto šablonas: Reguliarioji išraiška

⬇️ Atsisiųsti taisyklę

Ši taisyklė veikia taip:

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

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

Jei norite pašalinti daugiau parametrų, pridėkite daugiau procesų.

3 atvejis: pridėti užklausos parametrus prie URL

Tarkime, kad yra svetainė example.com, kuri pagal nutylėjimą rodo mobilųjį išdėstymą, bet jūs pageidaujate jos darbalaukio išdėstymo. Laimei, svetainė palaiko layout užklausos parametrą, kad nurodytų, kokį išdėstymą svetainė rodo. Sukurkime taisyklę, kuri automatiškai pridėtų layout=desktop.

Galbūt manote, kad galėtumėte apibrėžti taip:

  • Nukreipti iš: https://example.com/.* (Reguliarioji išraiška)
  • Nukreipti į: $0?layout=desktop

$0 nurodo tikslinį URL. Jei bandysite pasiekti example.com/hello, būsite nukreipti į example.com/hello?layout=desktop. Ši funkcija vadinama pakeitimu.

tip

Pakeitimas taip pat galimas Pakaitos simbolio (Wildcard) režimu, nes jis viduje konvertuojamas į Reguliariąją išraišką.

Tačiau yra keletas problemų su šiais nustatymais.

1 problema: begalinis ciklas

Dabartinis nustatymas sukuria begalinį nukreipimo ciklą, nes https://example.com/.* taip pat taikomas https://example.com/hello?layout=desktop.

Šiuo atveju galite nurodyti išskirtą URL šabloną, kuris leidžia pasiekti be nukreipimo, pavyzdžiui, taip, naudojant Reguliariąją išraišką:

.*[&?]layout=[^&]*.*
  • .*: Atitinka bet ką
  • [&?]: Atitinka & arba ?
  • [^&]*: Atitinka bet ką, išskyrus &

2 problema: negali tinkamai tvarkyti esamų parametrų

Jei tikslinis URL jau turi kitų užklausos parametrų, pvz., example.com/hello?theme=dark, paskirties vieta bus example.com/hello?theme=dark?layout=desktop (URL yra du ?), bet parametrus galima sujungti tik su &. ? kaip specialus simbolis leidžiamas tik parametrų pradžioje. Taigi jis nėra traktuojamas kaip galiojantis parametras.

Šiuo atveju pakeiskite nustatymus taip:

  • Nukreipti iš: (https://example.com/[^?]*)(\?(.*))?
  • Nukreipti į: $1?layout=desktop&$3

Pažvelkime žingsnis po žingsnio.

  • (https://example.com/[^?]*): Atitinka dalį iki ankstesnio ? simbolio.
    • [^?]* atitinka bet ką, išskyrus ?.
    • Tai apgaubta () simboliais, kad vėliau galėtumėte nurodyti su $1.
  • (\?(.*))?: Atitinka eilutę, prasidedančią ?, o tai reiškia užklausos parametrus.
    • Tai taip pat atitinka tuščią eilutę dėl ? kiekybinio nustatymo šablono pabaigoje, kuris atitinka nulį arba vieną kartą.
    • Išorinė () ir vidinė () vėliau gali būti nurodomos su $2 ir $3.

RegExr gali padėti suprasti detales.

note

RegExr rodo klaidą, kai nepašalinate / su \. Nors galite jį pašalinti, tai nėra būtina, nes „Redirect Web“ naudoja kitokią „Apple“ variklį, kuriam nereikia pašalinimo.

Tai nėra tobulas sprendimas, nes jis nukreipia example.com/hello į example.com/hello?layout=desktop&, kuriame yra nereikalingas & URL pabaigoje. Apskritai tai nėra didelė problema, bet jei norite jį pašalinti, galite naudoti Grupės fiksavimo apdorojimą.

Apibendrinant, tai yra galutinis rezultatas:

  • Nukreipti iš: (https://example.com/[^?]*)((\?(.*))?) (Reguliarioji išraiška)
  • Nukreipti į: $1?layout=desktop$3
  • Išskirtas URL šablonas: .*[&?]layout=[^&]*.* (Reguliarioji išraiška)
  • Grupės fiksavimo apdorojimas:
    • Grupė: $3
    • Procesas: Pakeisti atsiradimus
      • Tikslas: \?(.*)
      • Pakeitimas: &$1

⬇️ Atsisiųsti taisyklę

Tai tik pavyzdys. Taip pat galite sukurti kelias taisykles kiekvienai problemai spręsti. Tai gali būti daug paprasčiau.