Első lépések
Ez az oldal a Redirect Web alkalmazásban a szabályok létrehozásának gyakori felhasználási eseteit írja le.
(A szabálybeállítások részleteit a Szabálybeállítások oldalon is megismerheti.)
1. eset: Másik webhely megnyitása
Tegyük fel, hogy Twitter-függő, és úgy dönt, hogy az Insight Timerben meditál, valahányszor véletlenül megnyitja a Twittert. Hozzunk létre erre egy szabályt!
1. lépés: A "Redirect From" beállítása
Először is be kell állítania a Redirect From szakaszt az alkalmazás Szabály szerkesztése képernyőjén. A célok a https://twitter.com/
kezdetű URL-ek.
Ebben az esetben a következő mintát adhatja meg a Wildcard móddal:
https://twitter.com/*
Wildcard módban a *
azt jelenti, hogy bármit illeszt (= nulla vagy több karaktert).
Azonban várjon. A twitter.com
átnevezésre került x.com
-ra. Egyszerűen lecserélheti a twitter.com
-ot x.com
-ra, de senki sem tudja, mikor gondolja meg magát az új tulajdonos, és állítja vissza. Ezért célozzuk meg mind a twitter.com
-ot, mind az x.com
-ot.
Ehhez váltson Wildcardról Reguláris kifejezésre, és állítsa be ezt mintaként:
https://(twitter|x).com/.*
(twitter|x)
: mind atwittert
, mind azx
-et célozza. (|
pipe-nak nevezik.).*
: Ugyanaz, mint a Wildcard*
-a. Pontosabban, a.
bármely karaktert jelent, a*
pedig bármit e szimbólum előtt, tetszőleges számú ismétléssel, ami azt eredményezi, hogy bármit illeszt.
A reguláris kifejezés kissé bonyolult, de ha megszokja, hatékony eszköz lesz. Javasoljuk, hogy használja a RegExr oldalt játszótérként, hogy elemezze, hogyan működik a reguláris kifejezés mintája.
A reguláris kifejezésekben a .
a (twitter|x).com
kifejezésben is bármely karakterként kezelendő. Ezért a (twitter|x).com/.*
illeszkedik például a twitter1com/
vagy az x_com/
kifejezésekre is.
Ennek elkerülése érdekében módosíthatja (twitter|x)\.com/.*
formára. A \
speciális karakterek elkerülésére szolgál.
Azonban nincsenek ilyen URL-ek az általános internetes környezetben. Ezért a .
-t speciális karakterként hagyhatja, ha úgy tetszik. A szabálya saját használatra készült, ezért úgy valósítsa meg, ahogy jónak látja.
2. lépés: A "Redirect To" beállítása
Egyszerűen adja meg az URL-t a következőképpen:
https://insighttimer.com/saraauster/guided-meditations/calm
Mostantól a Redirect Web a meditációhoz viszi, amikor hozzáfér a Twitterhez!
2. eset: Lekérdezési paraméterek eltávolítása az URL-ből
Tegyük fel, hogy az example.com
URL-jében van egy source=twitter
lekérdezési paraméter, és úgy döntött, hogy eltávolítja azt, hogy anonimizálja magát.
Ebben az esetben a Capturing Group Processing opció a legegyszerűbb mód:
- Redirect From:
https://example.com/*
(Wildcard) - Redirect To:
$0
- Capturing Group Processing:
- Group:
$0
- Process: Replace Occurrences
- Target:
&?source=[^&]*
- Replacement: (none)
- Text Pattern: Regular Expression
- Target:
- Group:
Ez a szabály a következőképpen működik:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Ha több paramétert szeretne eltávolítani, adjon hozzá több folyamatot.
3. eset: Lekérdezési paraméterek hozzáadása az URL-hez
Tegyük fel, hogy van egy example.com
nevű webhely, amely alapértelmezés szerint mobil elrendezést mutat, de Ön a desktop elrendezést részesíti előnyben. Szerencsére a webhely támogatja a layout
lekérdezési paramétert, amellyel megadhatja, hogy a webhely melyik elrendezést jelenítse meg. Hozzunk létre egy szabályt, amely automatikusan hozzáadja a layout=desktop
paramétert.
Talán úgy gondolja, hogy a következőképpen definiálhatja:
- Redirect From:
https://example.com/.*
(Reguláris kifejezés) - Redirect To:
$0?layout=desktop
A $0
a cél URL-re hivatkozik. Ha megpróbálja elérni az example.com/hello
címet, akkor átirányításra kerül az example.com/hello?layout=desktop
címre. Ezt a funkciót helyettesítésnek nevezik.
A helyettesítés a Wildcard módban is elérhető, mivel belsőleg reguláris kifejezéssé konvertálódik.
Azonban van néhány probléma ezekkel a beállításokkal.
1. probléma: Végtelen ciklus
A jelenlegi beállítás végtelen átirányítási ciklust hoz létre, mivel a https://example.com/.*
a https://example.com/hello?layout=desktop
címet is célozza.
Ebben az esetben megadhat egy kizárt URL-mintát, amely lehetővé teszi az átirányítás nélküli hozzáférést, például így reguláris kifejezéssel:
.*[&?]layout=[^&]*.*
.*
: Bármit illeszt[&?]
: Illeszt&
-et vagy?
-et[^&]*
: Bármit illeszt, kivéve&
-et
2. probléma: Nem tudja megfelelően kezelni a meglévő paramétereket
Ha a cél URL már tartalmaz más lekérdezési paramétereket, például example.com/hello?theme=dark
, akkor a cél example.com/hello?theme=dark?layout=desktop
lesz (két ?
van az URL-ben), de a paramétereket csak &
-vel lehet összekapcsolni. A ?
speciális karakterként csak a paraméterek elején engedélyezett. Tehát nem érvényes paraméterként kezelik.
Ebben az esetben módosítsa a beállításokat a következőképpen:
- Redirect From:
(https://example.com/[^?]*)(\(.*))?
- Redirect To:
$1?layout=desktop&$3
Nézzük meg lépésről lépésre.
(https://example.com/[^?]*)
: Illeszt a?
előtti karakterig.[^?]*
bármit illeszt, kivéve?
-et.- Ez
()
-vel van körülvéve, így később$1
-gyel hivatkozhat rá.
(\(.*))?
: Illeszt egy?
-vel kezdődő karakterláncot, ami lekérdezési paramétereket jelent.- Ez a minta végén lévő
?
kvantifikátorral üres karakterláncot is illeszt, ami nulla vagy egy alkalommal illeszt. - A külső
()
és a belső()
később$2
-vel és$3
-mal hivatkozható.
- Ez a minta végén lévő
A RegExr segíthet a részletek megértésében.
A RegExr hibát jelez, ha nem menekíti a /
jelet \
-vel. Bár menekítheti, nem kötelező, mivel a Redirect Web egy másik, Apple által használt motort használ, amely nem igényel menekítést.
Ez nem tökéletes megoldás, mivel az example.com/hello
címet example.com/hello?layout=desktop&
címre irányítja át, amely szükségtelen &
-t tartalmaz az URL végén. Általában nem nagy ügy, de ha el szeretné távolítani, használhatja a Capturing Group Processing-et.
Összefoglalva, ez a végső kimenet:
- Redirect From:
(https://example.com/[^?]*)((\(.*))?)
(Reguláris kifejezés) - Redirect To:
$1?layout=desktop$3
- Excluded URL Pattern:
.*[&?]layout=[^&]*.*
(Reguláris kifejezés) - Capturing Group Processing:
- Group:
$3
- Process: Replace Occurrences
- Target:
\?(.*)
- Replacement:
&$1
- Target:
- Group:
Ez csupán egy példa. Több szabályt is létrehozhat az egyes problémák kezelésére. Sokkal egyszerűbb lehet.