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ķē gantwitter
, ganx
. (|
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.
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!
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
- Mērķis:
- Grupa:
Š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.
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.
- Tas atbilst arī tukšai virknei ar
RegExr var palīdzēt jums saprast sīkāku informāciju.
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
- Mērķis:
- Grupa:
Š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.