Kom igång
Den här sidan beskriver vanliga användningsfall för att skapa regler i Redirect Web-appen.
(Du kan också lära dig detaljerna om regelinställningar på sidan Regelinställningar.)
Fall 1: Öppna en annan webbplats
Anta att du är beroende av Twitter, och du bestämmer dig för att meditera i Insight Timer när du av misstag öppnar Twitter. Låt oss skapa en regel för det!
Steg 1. Ställ in "Omdirigera från"
Först bör du ställa in avsnittet Omdirigera från på skärmen Redigera regel i appen. Målen är URL:er som börjar med https://twitter.com/
.
I det här fallet kan du ange följande mönster med läget Wildcard:
https://twitter.com/*
I Wildcard-läget betyder *
att det matchar vad som helst (= noll eller fler tecken).
Men vänta. twitter.com
bytte namn till x.com
. Du kan helt enkelt ersätta twitter.com
med x.com
men ingen vet när den nya ägaren kommer att ändra sig igen för att rulla tillbaka det. Låt oss därför rikta in oss på både twitter.com
och x.com
.
För att göra det, byt från Wildcard till Reguljärt uttryck, och ställ in detta som mönstret:
https://(twitter|x).com/.*
(twitter|x)
: det riktar in sig på bådetwitter
ochx
. (|
kallas ett rör.).*
: Det är samma som Wildcards*
. Mer specifikt betyder.
valfritt tecken och*
betyder vad som helst före denna symbol upprepat valfritt antal gånger, vilket resulterar i att det matchar vad som helst.
Reguljära uttryck är lite komplicerade, men när du väl vänjer dig vid dem kommer de att vara ett kraftfullt verktyg. Vi rekommenderar att du använder RegExr som en lekplats för att analysera hur ditt reguljära uttrycksmönster fungerar.
I reguljära uttryck behandlas .
i (twitter|x).com
också som valfritt tecken. Därför matchar (twitter|x).com/.*
också, till exempel, twitter1com/
eller x_com/
.
För att undvika det kan du ändra det till (twitter|x)\.com/.*
. \
används för att undvika ett specialtecken.
Det finns dock inga sådana URL:er i den allmänna internetmiljön. Därför kan du lämna .
som ett specialtecken om du föredrar det. Din regel är för ditt eget bruk, så implementera den som du tycker passar.
Steg 2: Ställ in "Omdirigera till"
Ange helt enkelt URL:en enligt följande:
https://insighttimer.com/saraauster/guided-meditations/calm
Nu tar Redirect Web dig till meditationen när du besöker Twitter!
Fall 2: Ta bort frågeparametrar från URL
Anta att det finns en frågeparameter source=twitter
i en URL för example.com
, och du bestämde dig för att ta bort den för att anonymisera dig själv.
I det här fallet är alternativet Bearbetning av fångstgrupp det enklaste sättet:
- Omdirigera från:
https://example.com/*
(Wildcard) - Omdirigera till:
$0
- Bearbetning av fångstgrupp:
- Grupp:
$0
- Process: Ersätt förekomster
- Mål:
&?source=[^&]*
- Ersättning: (ingen)
- Textmönster: Reguljärt uttryck
- Mål:
- Grupp:
Denna regel fungerar enligt följande:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Om du vill ta bort fler parametrar, lägg till fler processer.
Fall 3: Lägg till frågeparametrar till URL
Låt oss säga att det finns en webbplats som heter example.com
som visar en mobil layout som standard, men du föredrar deras skrivbordslayout. Lyckligtvis stöder webbplatsen en layout
-frågeparameter för att ange vilken layout webbplatsen visar. Låt oss skapa en regel som automatiskt lägger till layout=desktop
.
Kanske tror du att du kan definiera det enligt följande:
- Omdirigera från:
https://example.com/.*
(Reguljärt uttryck) - Omdirigera till:
$0?layout=desktop
$0
refererar till mål-URL:en. Om du försöker komma åt example.com/hello
, omdirigeras du till example.com/hello?layout=desktop
. Denna funktion kallas substitution.
Substitution är också tillgänglig för Wildcard-läget eftersom det internt konverteras till reguljära uttryck.
Det finns dock några problem med dessa inställningar.
Problem 1: Oändlig loop
Den nuvarande inställningen skapar en oändlig omdirigeringsloop eftersom https://example.com/.*
också riktar in sig på https://example.com/hello?layout=desktop
.
I det här fallet kan du ange ett exkluderat URL-mönster som gör att du kan komma åt utan omdirigering, så här med reguljära uttryck:
.*[&?]layout=[^&]*.*
.*
: Matchar vad som helst[&?]
: Matchar antingen&
eller?
[^&]*
: Matchar vad som helst utom&
Problem 2: Kan inte hantera befintliga parametrar korrekt
Om mål-URL:en redan har andra frågeparametrar som example.com/hello?theme=dark
, kommer destinationen att vara example.com/hello?theme=dark?layout=desktop
(Det finns två ?
i URL:en) men du kan bara sammanfoga parametrarna med &
. ?
som ett specialtecken är endast tillåtet i början av parametrarna. Så det behandlas inte som en giltig parameter.
I det här fallet, ändra inställningarna så här:
- Omdirigera från:
(https://example.com/[^?]*)(\(.*))?
- Omdirigera till:
$1?layout=desktop&$3
Låt oss titta steg för steg.
(https://example.com/[^?]*)
: Matchar delen fram till föregående tecken för?
.[^?]*
matchar vad som helst utom?
.- Detta är insvept med
()
så att du kan referera till det med$1
senare.
(\(.*))?
: Matchar en sträng som börjar med?
, vilket betyder frågeparametrar.- Detta matchar också tom sträng med
?
-kvantifieraren i slutet av mönstret, vilket matchar noll eller en gång. - Den yttre
()
och den inre()
kan refereras med$2
och$3
senare.
- Detta matchar också tom sträng med
RegExr kan hjälpa dig att förstå detaljerna.
RegExr visar ett fel när du inte undviker /
med \
. Även om du kan undvika det, krävs det inte eftersom Redirect Web använder en annan motor från Apple som inte kräver undvikande.
Detta är inte en perfekt lösning, eftersom den omdirigerar example.com/hello
till example.com/hello?layout=desktop&
, vilket inkluderar ett onödigt &
i slutet av URL:en. Det är ingen stor sak i allmänhet, men om du vill ta bort det kan du använda Bearbetning av fångstgrupp.
Sammanfattningsvis är detta den slutliga utgången:
- Omdirigera från:
(https://example.com/[^?]*)((\(.*))?)
(Reguljärt uttryck) - Omdirigera till:
$1?layout=desktop$3
- Exkluderat URL-mönster:
.*[&?]layout=[^&]*.*
(Reguljärt uttryck) - Bearbetning av fångstgrupp:
- Grupp:
$3
- Process: Ersätt förekomster
- Mål:
\\?(.*)
- Ersättning:
&$1
- Mål:
- Grupp:
Detta är bara ett exempel. Du kan också skapa flera regler för att hantera varje problem. Det kan vara mycket enklare.