Başlarken
Bu sayfa, Redirect Web uygulamasında kurallar oluşturmaya yönelik yaygın kullanım durumlarını açıklar.
(Kural ayarlarının ayrıntılarını Kural Ayarları sayfasında da öğrenebilirsiniz.)
Durum 1: Başka bir web sitesi açma
Diyelim ki Twitter'a bağımlısınız ve Twitter'ı yanlışlıkla açtığınızda Insight Timer'da meditasyon yapmaya karar verdiniz. Bunun için bir kural oluşturalım!
Adım 1. "Şuradan Yönlendir"i ayarlayın
Öncelikle, uygulamadaki Kuralı Düzenle ekranında Şuradan Yönlendir bölümünü ayarlamalısınız. Hedefler, https://twitter.com/
ile başlayan URL'lerdir.
Bu durumda, Wildcard moduyla aşağıdaki deseni belirtebilirsiniz:
https://twitter.com/*
Wildcard modunda, *
herhangi bir şeyi (= sıfır veya daha fazla karakteri) eşleştirir anlamına gelir.
Ancak, durun. twitter.com
'un adı x.com
olarak değiştirildi. twitter.com
'u doğrudan x.com
ile değiştirebilirsiniz, ancak yeni sahibin ne zaman fikrini değiştirip geri alacağını kimse bilmiyor. Bu nedenle, hem twitter.com
hem de x.com
'u hedefleyelim.
Bunu yapmak için, Wildcard'dan Normal İfade (Regular Expression) moduna geçin ve bu deseni ayarlayın:
https://(twitter|x).com/.*
(twitter|x)
: hemtwitter
hem dex
'i hedefler. (|
bir boru (pipe) olarak adlandırılır.).*
: Wildcard'ın*
'ı ile aynıdır. Daha spesifik olarak,.
herhangi bir karakter anlamına gelir ve*
bu sembolden önceki her şeyin herhangi bir sayıda tekrarlandığı anlamına gelir, bu da herhangi bir şeyi eşleştirmesiyle sonuçlanır.
Normal İfade biraz karmaşıktır, ancak alıştığınızda güçlü bir araç olacaktır. Normal İfade deseninizin nasıl çalıştığını analiz etmek için RegExr'ı bir oyun alanı olarak kullanmanızı öneririz.
[!NOT] Normal İfadelerde,
(twitter|x).com
içindeki.
da herhangi bir karakter olarak kabul edilir. Bu nedenle,(twitter|x).com/.*
örneğintwitter1com/
veyax_com/
ile de eşleşir.Bunu önlemek için, bunu
(twitter|x)\.com/.*
olarak değiştirebilirsiniz.\
özel bir karakterden kaçmak için kullanılır.Ancak, genel internet ortamında böyle URL'ler yoktur. Bu nedenle, isterseniz
.
'yı özel bir karakter olarak bırakabilirsiniz. Kuralınız kendi kullanımınız içindir, bu yüzden uygun gördüğünüz şekilde uygulayın.
Adım 2: "Şuraya Yönlendir"i ayarlayın
URL'yi aşağıdaki gibi belirtin:
https://insighttimer.com/saraauster/guided-meditations/calm
Artık Redirect Web, Twitter'a eriştiğinizde sizi meditasyona yönlendirecek!
Durum 2: URL'den Sorgu Parametrelerini Kaldırma
Diyelim ki example.com
adresinin bir URL'sinde source=twitter
sorgu parametresi var ve kendinizi anonimleştirmek için bunu kaldırmaya karar verdiniz.
Bu durumda, Yakalama Grubu İşleme (Capturing Group Processing) seçeneği en kolay yoldur:
- Şuradan Yönlendir:
https://example.com/*
(Wildcard) - Şuraya Yönlendir:
$0
- Yakalama Grubu İşleme:
- Grup:
$0
- İşlem: Geçişleri Değiştir
- Hedef:
&?source=[^&]*
- Değiştirme: (yok)
- Metin Deseni: Normal İfade
- Hedef:
- Grup:
Bu kural şu şekilde çalışır:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Daha fazla parametre kaldırmak isterseniz, daha fazla işlem ekleyin.
Durum 3: URL'ye Sorgu Parametreleri Ekleme
Diyelim ki example.com
adlı bir web sitesi varsayılan olarak mobil düzeni gösteriyor, ancak siz masaüstü düzenini tercih ediyorsunuz. Neyse ki, web sitesi hangi düzenin görüntüleneceğini belirtmek için bir layout
sorgu parametresini destekliyor. Otomatik olarak layout=desktop
ekleyen bir kural oluşturalım.
Belki bunu aşağıdaki gibi tanımlayabileceğinizi düşünüyorsunuzdur:
- Şuradan Yönlendir:
https://example.com/.*
(Normal İfade) - Şuraya Yönlendir:
$0?layout=desktop
$0
hedef URL'yi referans alır. example.com/hello
adresine erişmeye çalıştığınızda, example.com/hello?layout=desktop
adresine yönlendirilirsiniz. Bu özellik yerine koyma (substitution) olarak adlandırılır.
[!İPUCU] Yerine koyma, dahili olarak Normal İfade'ye dönüştürüldüğü için Wildcard modu için de kullanılabilir.
Ancak, bu ayarlarla ilgili birkaç sorun vardır.
Problem 1: Sonsuz döngü
Mevcut ayar, https://example.com/.*
aynı zamanda https://example.com/hello?layout=desktop
adresini de hedeflediği için sonsuz bir yönlendirme döngüsü oluşturur.
Bu durumda, Normal İfade ile aşağıdaki gibi, yönlendirme olmadan erişmenizi sağlayan bir hariç tutulan URL deseni belirtebilirsiniz:
.*[&?]layout=[^&]*.*
.*
: Her şeyi eşleştirir[&?]
:&
veya?
'yi eşleştirir[^&]*
:&
dışındaki her şeyi eşleştirir
Problem 2: Mevcut parametreleri düzgün şekilde işleyememe
Hedef URL zaten example.com/hello?theme=dark
gibi başka sorgu parametrelerine sahipse, hedef example.com/hello?theme=dark?layout=desktop
olacaktır (URL'de iki adet ?
vardır) ancak parametreleri yalnızca &
ile birleştirebilirsiniz. ?
özel bir karakter olarak yalnızca parametrelerin başında izin verilir. Bu nedenle geçerli bir parametre olarak kabul edilmez.
Bu durumda, ayarları şöyle değiştirin:
- Şuradan Yönlendir:
(https://example.com/[^?]*)(\?(.*))?
- Şuraya Yönlendir:
$1?layout=desktop&$3
Adım adım inceleyelim.
(https://example.com/[^?]*)
:?
'nin bir önceki karakterine kadar olan kısmı eşleştirir.[^?]*
?
dışındaki her şeyi eşleştirir.- Bu,
()
ile sarılmıştır, böylece daha sonra$1
ile referans verebilirsiniz.
(\?(.*))?
: Sorgu parametreleri anlamına gelen?
ile başlayan bir dizeyi eşleştirir.- Bu, desenin sonundaki
?
niceleyicisi tarafından boş dizeyi de eşleştirir, bu da sıfır veya bir kez eşleşir anlamına gelir. - Dıştaki
()
ve içteki()
daha sonra$2
ve$3
ile referans alınabilir.
- Bu, desenin sonundaki
RegExr ayrıntıları anlamanıza yardımcı olabilir.
[!NOT] RegExr,
/
karakterini\
ile kaçırmadığınızda bir hata gösterir. Kaçırabilirsiniz, ancak Redirect Web, kaçırmayı gerektirmeyen Apple tarafından geliştirilen farklı bir motor kullandığı için bu gerekli değildir.
Bu mükemmel bir çözüm değildir, çünkü example.com/hello
adresini example.com/hello?layout=desktop&
adresine yönlendirir, bu da URL'nin sonunda gereksiz bir &
içerir. Genelde büyük bir sorun olmasa da, bunu kaldırmak isterseniz Yakalama Grubu İşleme (Capturing Group Processing) kullanabilirsiniz.
Sonuç olarak, nihai çıktı şöyledir:
- Şuradan Yönlendir:
(https://example.com/[^?]*)((\?(.*))?)
(Normal İfade) - Şuraya Yönlendir:
$1?layout=desktop$3
- Hariç Tutulan URL Deseni:
.*[&?]layout=[^&]*.*
(Normal İfade) - Yakalama Grubu İşleme:
- Grup:
$3
- İşlem: Geçişleri Değiştir
- Hedef:
\?(.*)
- Değiştirme:
&$1
- Hedef:
- Grup:
Bu sadece bir örnektir. Her bir sorunu çözmek için birden fazla kural da oluşturabilirsiniz. Bu çok daha basit olabilir.