Skip to main content

Darba sākšana

Šajā lapā aprakstīti bieži sastopami lietošanas gadījumi noteikumu izveidei lietotnē Redirect Web.

(Jūs varat arī uzzināt sīkāku informāciju par noteikumu iestatījumiem lapā Noteikumu iestatījumi.)

1. gadījums: Atvērt citu vietni

Pieņemsim, ka esat atkarīgs no Twitter, un jūs nolemjat meditēt Insight Timer, kad nejauši atverat Twitter. Izveidosim tam noteikumu!

1. solis. Iestatiet "Novirzīt no"

Vispirms lietotnē Rediģēt noteikumu ekrānā jāiestata sadaļa Novirzīt no. Mērķi ir URL, kas sākas ar https://twitter.com/.

Šajā gadījumā varat norādīt šādu modeli ar Aizstājējzīmes režīmu:

https://twitter.com/*

Aizstājējzīmes režīmā * nozīmē, ka tas atbilst jebkam (= nullei vai vairākām rakstzīmēm).

Tomēr pagaidiet. twitter.com tika pārdēvēts par x.com. Jūs varat vienkārši aizstāt twitter.com ar x.com, taču neviens nezina, kad jaunais īpašnieks atkal mainīs savas domas, lai to atgrieztu. Tāpēc mērķēsim gan twitter.com, gan x.com.

Lai to izdarītu, pārslēdzieties no Aizstājējzīmes uz Regulāro izteiksmi un iestatiet šo kā modeli:

https://(twitter|x).com/.*
  • (twitter|x): tas mērķē gan twitter, gan x. (| sauc par cauruli.)
  • .*: Tas ir tas pats, kas Aizstājējzīmes *. Precīzāk, . nozīmē jebkuru rakstzīmi un * nozīmē jebko pirms šī simbola, kas atkārtojas jebkuru reižu skaitu, kā rezultātā tas atbilst jebkam.

Regulārā izteiksme ir nedaudz sarežģīta, taču, tiklīdz jūs pie tās pieradīsiet, tā kļūs par spēcīgu rīku. Mēs iesakām izmantot RegExr kā rotaļu laukumu, lai analizētu, kā darbojas jūsu regulārās izteiksmes modelis.

note

Regulārajās izteiksmēs . (twitter|x).com tiek uzskatīts arī par jebkuru rakstzīmi. Tāpēc (twitter|x).com/.* atbilst arī, piemēram, twitter1com/ vai x_com/.

Lai to izvairītos, varat to mainīt uz (twitter|x)\.com/.*. \ tiek izmantots, lai izvairītos no speciālās rakstzīmes.

Tomēr vispārējā interneta vidē nav šādu URL. Tāpēc, ja vēlaties, varat atstāt . kā speciālo rakstzīmi. Jūsu noteikums ir paredzēts jūsu pašu lietošanai, tāpēc ieviesiet to, kā uzskatāt par piemērotu.

2. solis: Iestatiet "Novirzīt uz"

Vienkārši norādiet URL šādi:

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

Tagad Redirect Web jūs aizvedīs uz meditāciju, kad piekļūstat Twitter!

⬇️ Lejupielādēt noteikumu

2. gadījums: Noņemt vaicājuma parametrus no URL

Pieņemsim, ka example.com URL ir vaicājuma parametrs source=twitter, un jūs nolēmāt to noņemt, lai anonimizētu sevi.

Šajā gadījumā Uztveršanas grupas apstrādes opcija ir vienkāršākais veids:

  • Novirzīt no: https://example.com/* (Aizstājējzīme)
  • Novirzīt uz: $0
  • Uztveršanas grupas apstrāde:
    • Grupa: $0
    • Process: Aizstāt gadījumus
      • Mērķis: &?source=[^&]*
      • Aizstāšana: (nav)
      • Teksta modelis: Regulārā izteiksme

⬇️ Lejupielādēt noteikumu

Šis noteikums darbojas šādi:

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

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

Ja vēlaties noņemt vairāk parametru, pievienojiet vairāk procesu.

3. gadījums: Pievienot vaicājuma parametrus URL

Pieņemsim, ka ir vietne example.com, kas pēc noklusējuma rāda mobilo izkārtojumu, bet jūs dodat priekšroku tās darbvirsmas izkārtojumam. Par laimi, vietne atbalsta layout vaicājuma parametru, lai norādītu, kādu izkārtojumu vietne rāda. Izveidosim noteikumu, kas automātiski pievieno layout=desktop.

Varbūt jūs domājat, ka to varētu definēt šādi:

  • Novirzīt no: https://example.com/.* (Regulārā izteiksme)
  • Novirzīt uz: $0?layout=desktop

$0 atsaucas uz mērķa URL. Ja mēģināt piekļūt example.com/hello, jūs tiekat novirzīts uz example.com/hello?layout=desktop. Šī funkcija tiek saukta par aizstāšanu.

tip

Aizstāšana ir pieejama arī Aizstājējzīmes režīmam, jo tā iekšēji tiek pārveidota par regulāro izteiksmi.

Tomēr ar šiem iestatījumiem ir dažas problēmas.

1. problēma: Bezgalīga cilpa

Pašreizējais iestatījums rada bezgalīgu novirzīšanas cilpu, jo https://example.com/.* mērķē arī https://example.com/hello?layout=desktop.

Šajā gadījumā varat norādīt izslēgto URL modeli, kas ļauj piekļūt bez novirzīšanas, piemēram, šādi ar regulāro izteiksmi:

.*[&?]layout=[^&]*.*
  • .*: Atbilst jebkam
  • [&?]: Atbilst & vai ?
  • [^&]*: Atbilst jebkam, izņemot &

2. problēma: Nevar pareizi apstrādāt esošos parametrus

Ja mērķa URL jau ir citi vaicājuma parametri, piemēram, example.com/hello?theme=dark, galamērķis būs example.com/hello?theme=dark?layout=desktop (URL ir divi ?), bet parametrus var pievienot tikai ar &. ? kā speciālā rakstzīme ir atļauta tikai parametru sākumā. Tāpēc tā netiek uzskatīta par derīgu parametru.

Šajā gadījumā mainiet iestatījumus šādi:

  • Novirzīt no: (https://example.com/[^?]*)(\(?(.*))?
  • Novirzīt uz: $1?layout=desktop&$3

Apskatīsim soli pa solim.

  • (https://example.com/[^?]*): Atbilst daļai līdz iepriekšējai rakstzīmei ?.
    • [^?]* atbilst jebkam, izņemot ?.
    • Tas ir ietverts (), lai vēlāk varētu uz to atsaukties ar $1.
  • (\(?(.*))?: Atbilst virknei, kas sākas ar ?, kas nozīmē vaicājuma parametrus.
    • Tas atbilst arī tukšai virknei ar ? kvantifikatoru modeļa beigās, kas atbilst nullei vai vienai reizei.
    • Ārējais () un iekšējais () var tikt atsaukti ar $2 un $3 vēlāk.

RegExr var palīdzēt jums saprast sīkāku informāciju.

note

RegExr rāda kļūdu, ja jūs neizvairāties no / ar \. Lai gan jūs varat no tā izvairīties, tas nav nepieciešams, jo Redirect Web izmanto citu Apple dzinēju, kas neprasa izvairīšanos.

Šis nav ideāls risinājums, jo tas novirza example.com/hello uz example.com/hello?layout=desktop&, kas ietver nevajadzīgu & URL beigās. Tas parasti nav liels darījums, bet, ja vēlaties to noņemt, varat izmantot Uztveršanas grupas apstrādi.

Noslēgumā, šis ir galīgais rezultāts:

  • Novirzīt no: (https://example.com/[^?]*)((\(?(.*))?)) (Regulārā izteiksme)
  • Novirzīt uz: $1?layout=desktop$3
  • Izslēgtais URL modelis: .*[&?]layout=[^&]*.* (Regulārā izteiksme)
  • Uztveršanas grupas apstrāde:
    • Grupa: $3
    • Process: Aizstāt gadījumus
      • Mērķis: \?(.*)
      • Aizstāšana: &$1

⬇️ Lejupielādēt noteikumu

Šis ir tikai piemērs. Jūs varat arī izveidot vairākus noteikumus, lai risinātu katru problēmu. Tas var būt daudz vienkāršāk.