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észleteiről a Szabálybeállítások oldalon is tájékozódhat.)
1. eset: Másik webhely megnyitása
Tegyük fel, hogy Twitter-függő vagy, és úgy döntesz, hogy minden alkalommal meditálsz az Insight Timerben, amikor véletlenül megnyitod a Twittert. Készítsünk ehhez egy szabályt!
1. lépés: A „Honnan átirányítás” beállítása
Először is be kell állítania a Honnan átirányítás szakaszt az alkalmazás Szabály szerkesztése képernyőjén. A célpontok az https://twitter.com/
kezdetű URL-ek.
Ebben az esetben a következő mintát adhatja meg a Wildcard móddal:
https://twitter.com/*
A Wildcard módban a *
azt jelenti, hogy bármit (azaz nulla vagy több karaktert) illeszt.
De várjunk csak. A twitter.com
át lett nevezve x.com
-ra. Egyszerűen lecserélhetné 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
, mind az x.com
-ot.
Ehhez váltson át a Wildcard-ról a Reguláris kifejezésre, és adja meg ezt a mintát:
https://(twitter|x).com/.*
(twitter|x)
: mind atwitter
, mind azx
-et célozza. (A|
jelet pipe-nak nevezzük.).*
: Ugyanaz, mint a Wildcard*
jele. Pontosabban, a.
jelentése bármely karakter, a*
jelentése pedig bármi, ami e szimbólum előtt van, tetszőleges számú alkalommal ismételve, ami azt eredményezi, hogy bármit illeszt.
A reguláris kifejezés kissé bonyolult, de ha megszokja, hatékony eszközzé válik. 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 .
az (twitter|x).com
-ban is bármely karakternek számít. Ezért a (twitter|x).com/.*
illeszkedik például a twitter1com/
vagy az x_com/
mintákra is.
Ennek elkerülése érdekében módosíthatja (twitter|x)\.com/.*
alakra. A \
egy speciális karakter "átmeneti hatástalanítására" szolgál.
Azonban nincsenek ilyen URL-ek az általános internetes környezetben. Ezért meghagyhatja a .
-et speciális karakterként, ha úgy tetszik. Az Ön szabálya az Ön saját használatára szolgál, ezért úgy valósítsa meg, ahogy Ön jónak látja.
2. lépés: Az „Átirányítás ide” 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 elvisz a meditációhoz, amikor megnyitja a Twittert!
2. eset: Lekérdezési paraméterek eltávolítása az URL-ből
Tegyük fel, hogy van egy source=twitter
lekérdezési paraméter az example.com
egyik URL-jében, és Ön úgy döntött, hogy eltávolítja azt az anonimitás megőrzése érdekében.
Ebben az esetben a Rögzítőcsoport-feldolgozás opció a legegyszerűbb módja:
- Honnan átirányítás:
https://example.com/*
(Wildcard) - Átirányítás ide:
$0
- Rögzítőcsoport-feldolgozás:
- Csoport:
$0
- Folyamat: Előfordulások cseréje
- Cél:
&?source=[^&]*
- Csere: (nincs)
- Szövegminta: Reguláris kifejezés
- Cél:
- Csoport:
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ű weboldal, amely alapértelmezés szerint mobil elrendezést jelenít meg, de Ön a asztali elrendezést preferálja. Szerencsére a webhely támogatja a layout
lekérdezési paramétert, amellyel megadható, hogy a webhely milyen elrendezést jelenítsen meg. Készítsünk egy szabályt, amely automatikusan hozzáadja a layout=desktop
paramétert.
Talán úgy gondolja, hogy a következőképpen határozhatja meg:
- Honnan átirányítás:
https://example.com/.*
(Reguláris kifejezés) - Átirányítás ide:
$0?layout=desktop
A $0
a cél URL-re hivatkozik. Ha megpróbálja elérni az example.com/hello
címet, átirányítódik az example.com/hello?layout=desktop
címre. Ezt a funkciót helyettesítésnek nevezzük.
A helyettesítés a Wildcard módban is elérhető, mivel belsőleg reguláris kifejezéssé alakul.
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 a hozzáférést átirányítás nélkül, például így, reguláris kifejezéssel:
.*[&?]layout=[^&]*.*
.*
: Bármit illeszt[&?]
: Illeszkedik&
vagy?
karakterre[^&]*
: Bármit illeszt, kivéve&
2. probléma: A meglévő paraméterek nem kezelhetők megfelelően
Ha a cél URL már tartalmaz más lekérdezési paramétereket, például example.com/hello?theme=dark
, a cél example.com/hello?theme=dark?layout=desktop
lesz (két ?
van az URL-ben), de a paramétereket csak &
-val lehet összekapcsolni. A ?
speciális karakter csak a paraméterek elején engedélyezett. Így nem érvényes paraméterként kezelődik.
Ebben az esetben változtassa meg a beállításokat a következőképpen:
- Honnan átirányítás:
(https://example.com/[^?]*)(\?(.*))?
- Átirányítás ide:
$1?layout=desktop&$3
Nézzük meg lépésről lépésre.
(https://example.com/[^?]*)
: Illeszkedik a?
előtti karakterig tartó részre.[^?]*
illeszkedik bármire, kivéve a?
jelet.- Ez
()
-val van körbevéve, így később$1
-gyel hivatkozhat rá.
(\?(.*))?
: Illeszkedik egy?
-vel kezdődő karakterláncra, ami lekérdezési paramétereket jelent.- Ez illeszkedik az üres karakterláncra is a minta végén lévő
?
kvantifikátor miatt, ami nulla vagy egy alkalommal illeszkedik. - A külső
()
és a belső()
később$2
-vel és$3
-mal hivatkozható.
- Ez illeszkedik az üres karakterláncra is 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 vonja ki a /
jelet \
-vel. Bár ki lehet vonni, nem szükséges, mivel a Redirect Web egy másik, Apple által fejlesztett motort használ, amely nem igényli a kivonást.
Ez nem tökéletes megoldás, mivel az example.com/hello
átirányítása az example.com/hello?layout=desktop&
címre történik, ami egy felesleges &
-t tartalmaz az URL végén. Ez általában nem nagy ügy, de ha el szeretné távolítani, használhatja a Rögzítőcsoport-feldolgozást.
Összefoglalva, ez a végeredmény:
- Honnan átirányítás:
(https://example.com/[^?]*)((\?(.*))?)
(Reguláris kifejezés) - Átirányítás ide:
$1?layout=desktop$3
- Kizárt URL-minta:
.*[&?]layout=[^&]*.*
(Reguláris kifejezés) - Rögzítőcsoport-feldolgozás:
- Csoport:
$3
- Folyamat: Előfordulások cseréje
- Cél:
\?(.*)
- Csere:
&$1
- Cél:
- Csoport:
Ez csupán egy példa. Több szabályt is létrehozhat az egyes problémák kezelésére. Ez sokkal egyszerűbb is lehet.