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

megjegyzés

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!

⬇️ Szabály letöltése

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

⬇️ 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ű 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.

tanács

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

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

megjegyzés

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

⬇️ 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. Sokkal egyszerűbb lehet.