Ana içeriğe geç

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): hem twitter hem de x'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ğin twitter1com/ veya x_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!

⬇️ Kuralı İndirin

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

⬇️ Kuralı İndirin

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.

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

⬇️ Kuralı İndirin

Bu sadece bir örnektir. Her bir sorunu çözmek için birden fazla kural da oluşturabilirsiniz. Bu çok daha basit olabilir.