Ugrás a fő tartalomhoz

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 a twitter, mind az x-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.

megjegyzés

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!

⬇️ Szabály letöltése

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

⬇️ Szabály letöltése

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.

tanács

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ó.

A RegExr segíthet a részletek megértésében.

megjegyzés

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

⬇️ Szabály letöltése

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.