Kural Ayarları
Bu sayfa, RedirectWeb uygulamasındaki Kuralı Düzenle ekranındaki her bir ayarın ayrıntılı bilgisini sağlar.
Seçenekler
Tür
Uygulamanın yönlendirmeyi nasıl yöneteceğini kontrol etmek için Tür seçeneğini belirtin. Şunlar arasından seçim yapabilirsiniz:
- Original (Varsayılan)
- Bu, yönlendirmeyi kontrol etmek için geleneksel Web API'lerini kullanır. Ek olarak, yedek (fallback) olarak Tabs API kullanır.
- Firefox'ta yönlendirmeyi yönetmek için WebRequest API kullanır.
- Kaynak Türleri ve İstek Yöntemleri dışındaki tüm seçenekleri kullanabilirsiniz.
- ⚠️ Bu, Declarative türünden daha yavaştır ve ekstra ağ isteklerine neden olabilir.
- Bu, yönlendirmeyi kontrol etmek için geleneksel Web API'lerini kullanır. Ek olarak, yedek (fallback) olarak Tabs API kullanır.
- DNR (Safari için Deneysel):
- Bu tür, kaynak URL için bir ağ isteği başlatmadığı için Original türünden çok daha hızlı çalışır.
- Bu, Kaynak Türleri ve İstek Yöntemleri seçeneklerini belirtmenize olanak tanır.
- ⚠️ Henüz DNR API tarafından desteklenmedikleri için Yakalama Grubu İşleme ve Hariç Tutulan URL Kalıpları gibi bazı seçenekleri kullanamazsınız.
- ⚠️ Safari'de, şu anda Düzenli İfade (Regular Expression) kalıbınıza dik çizgi (
|) ekleyemezsiniz. Ayrıntılar - ⚠️ Safari'nin DNR API'sinin hala bazı sorunları olduğu için bunu Safari için hala deneysel bir özellik olarak görüyoruz. Bilinen tüm sorunların listesini burada bulabilirsiniz.
Yönlendirme Kaynağı
Yönlendirme Kaynağı seçeneği, yönlendirmek istediğiniz web sayfalarının bir URL kalıbını belirtmenize olanak tanır. Joker Karakter (Wildcard) veya Düzenli İfade (Regular Expression) seçebilirsiniz.
Örneğin, Joker Karakter ile https://example.com/* belirtirseniz, https://example.com/ veya https://example.com/hello ile eşleşir.
Yönlendirme Hedefi seçeneğinde, eşleşmenin tamamına $0 kullanarak veya kısmi eşleşmelere $1, $2, ... kullanarak atıfta bulunabilirsiniz. Bu sayfadaki URL Kalıbı kısmındaki ayrıntıları kontrol edin.
Kaynak Türleri
Kaynak Türleri seçeneği, kuralın uygulanacağı resimler, JavaScript'ler ve stil sayfaları gibi web isteği kategorilerini belirtmenize olanak tanır.
Örneğin, script olarak ayarlarsanız, web sayfaları tarafından yüklenen JavaScript dosyalarını yönlendirebilirsiniz.
Şu anda şunlar mevcuttur:
main_frame, sub_frame, stylesheet, script, image, font, xmlhttprequest, ping, media, websocket, other
Varsayılan ayar, bir sekmeye yüklenen en üst düzey sayfa olan main_frame'dir.
Lütfen her kaynak türünün ayrıntılarını mdn web docs sayfasından kontrol edin.
İstek Yöntemleri
İstek Yöntemleri seçeneği, kaynak URL'nin hedef HTTP yöntemlerini ayarlamanıza olanak tanır.
Varsayılan olarak tüm yöntemler ayarlıdır.
Lütfen her yöntemin ayrıntılarını mdn web docs sayfasından kontrol edin.
Safari'de Apple'ın DNR türü uygulaması şu anda bunu yönetmiyor gibi göründüğü için bu seçenek mevcut olmayabilir. Apple'a FB14502272 olarak geri bildirim gönderdik.
Hedef Tarayıcılar
Hedef Tarayıcılar seçeneği, kuralın hangi tarayıcıya uygulanıp uygulanmayacağını belirtmenize olanak tanır.
- Seçebileceğiniz 2 tür tarayıcı vardır:
- Varsayılan olarak seçebileceğiniz tarayıcılar: Varsayılan olarak Safari, Chrome, Firefox, Edge, Opera, Arc, Brave ve Vivaldi'yi seçebilirsiniz. Bu, Safari ve Safari Technology Preview gibi aynı tarayıcının varyantlarını ayırt etmez.
- Kullanıcı tarafından belirtilen tarayıcılar: Açılır penceredeki Ekle düğmesine dokunarak, RedirectWeb uzantısının yüklü olduğu Safari veya Safari Technology Preview dışındaki herhangi bir tarayıcıyı seçebilirsiniz.
- Seçilenler hariç tümü onay kutusu, seçtikleriniz dışındaki her tarayıcıyı hedeflemenize olanak tanır.
RedirectWeb, tarayıcının Safari mi yoksa Safari Technology Preview mi olduğunu ayırt edemez çünkü uygulama bunu tespit etmek için uzantının üst sürecini kontrol eder ancak bu iki tarayıcı aynı üst süreci (/sbin/launchd) paylaşır.
Yönlendirme Hedefi
Yönlendirme Hedefi seçeneği, Yönlendirme Kaynağı seçeneğiyle eşleşen kaynak URL'den yönlendirmek istediğiniz bir hedef URL'yi belirtir. Ayrıca yakalama gruplarını $1, $2, ... ile veya eşleşmenin tamamını $0 ile değiştirebilirsiniz. Bunlar hedefi dinamik olarak belirtmenize yardımcı olur. Bu sayfadaki URL Kalıbı kısmındaki ayrıntıları kontrol edin.
Örneğin, aşağıdaki kuralı ayarlarsanız:
- Yönlendirme Kaynağı:
https://google.com/*(Joker Karakter) - Yönlendirme Hedefi:
https://apple.com/$1
ve https://google.com/hello ile eşleşirse, hedef URL https://apple.com/hello olacaktır.
Ek olarak, değiştirmeleri yapmadan önce $1, $2, ... metinlerini değiştirebilirsiniz. Ayrıntılar için Yakalama Grubu İşleme bölümüne bakın.
Bir uygulamayı açmak için özel bir URL şeması belirtebilirsiniz. İşte derin bağlantıyı (deep linking) destekleyen uygulama örnekleri:
- Figma:
figma://file/Your_Figma_ID - Firefox:
firefox://open-url?url=https://example.com/hello - Google Chrome:
googlechromes://example.com - Microsoft Edge:
microsoft-edge://example.com - Notion:
notion://www.notion.so/Your_Note_ID - Slack:
slack://open
Uygulama
Hedef URL'yi açmak istediğiniz bir uygulamayı belirtmek istiyorsanız, Uygulama birleşik giriş kutusunu (combo box) kullanın. Bu yalnızca macOS'ta kullanılabilir.
Yalnızca App Sandbox destekleyen bir uygulama açabilirsiniz. Ayrıca, uygulamanın açmak istediğiniz URL'yi açmayı desteklediğinden emin olun.
Yakalama Grubu İşleme
Yakalama Grubu İşleme seçeneği, Yönlendirme Hedefi seçeneğinde $1, $2... ile değiştirebileceğiniz yakalanan grupların nasıl işleneceğini belirtmenize olanak tanır.
Yakalama gruplarının nasıl oluşturulacağı aşağıdadır:
- Joker Karakter (Wildcard):
*ve?ile eşleşen metinler otomatik olarak yakalanır. - Düzenli İfade (Regular Expression):
()içindeki kalıbın bir kısmıyla eşleşen metinler yakalanır.
Aşağıdaki işlemlerden birini veya daha fazlasını seçebilirsiniz:
- URL Kodla/Kod Çöz (Encode/Decode): Bu, bir yakalama grubuna yüzde kodlaması (percent-encoding) veya kod çözme uygular. Örneğin,
https://example.com/hellokodlarsanız,https%3A%2F%2Fexample.com%2Fhelloşekline dönüştürülür. Kod Çözme tam tersi şekilde çalışır. - Base64 Kodla/Kod Çöz (Encode/Decode): Bu, bir metni Base64 formatına kodlar veya kodunu çözer. Örneğin,
hellometniniaGVsbG8=olarak kodlayabilir ve tekrarhelloolarak çözebilirsiniz. - Geçişleri Değiştir (Replace Occurrences): Bu, bir gruptaki Hedef ile eşleşen bir veya daha fazla karakteri bir Değiştirme ile değiştirir. Örneğin, Grup
hello, Hedeflve Değiştirmeyise,heyyoolarak değiştirilir.
Bu, her bir yakalama grubunu işlemek içindir ve hangi URL'lerin Hariç Tutulan URL Kalıpları tarafından hariç tutulacağını etkilemez. Örneğin, şu kurala sahip olduğunuzu varsayalım:
- Yönlendirme Kaynağı:
https://example.com/(hello.*) - Yakalama Grubu İşleme:
- Grup:
$1 - Hedef:
.*(Düzenli İfade) - Değiştirme:
hello
- Grup:
- Hariç Tutulan URL Kalıbı:
https://example.com/hello
Bu durumda, https://example.com/hello_world hariç tutulmazken https://example.com/hello hariç tutulacaktır.
Hariç Tutulan URL Kalıpları
Hariç Tutulan URL Kalıpları seçeneği, yönlendirilmeyecek URL'leri belirtmenize olanak tanır. Bu, yönlendirme döngülerinden kaçınmak veya bir web sitesinin belirli kısımlarını yönlendirme dışında tutmak için yararlı olabilir.
Düzenli İfade veya Joker Karakter kalıp türlerini kullanarak hariç tutulan URL kalıplarını belirtebilirsiniz.
Örnekler
Örnekler seçeneği, örnek URL'ler sağlayarak yönlendirme kuralınızı test etmenize olanak tanır. Bir örnek URL ekleyerek, kuralı gerçekten uygulamadan önce beklendiği gibi çalışıp çalışmadığını kontrol edebilirsiniz.
Gelişmiş
- [DNR] Ana Çerçeve Yönlendirmesi (Main Frame Redirection): Bu seçenek yalnızca DNR türü için kullanılabilir.
main_framekaynak türü için yönlendirmenin nasıl yönetileceğini belirtmenize olanak tanır. Mevcut seçenekler şunlardır:- Raw (Ham): Ana çerçeveyi herhangi bir değişiklik yapmadan belirtilen URL'ye yönlendirir.
- Via Intermediate Page (Ara Sayfa Üzerinden): Ana çerçeveyi bir ara sayfaya yönlendirir, o sayfa da ardından belirtilen hedef URL'ye yönlendirir. Bu, derin bağlantı kullanan uygulamaları açmak için yararlıdır çünkü ara sayfa daha karmaşık yönlendirme mantığını yönetebilir.
Yorumlar
Yorumlar seçeneği, yönlendirme kuralınız hakkında herhangi bir not veya yorum eklemenize olanak tanır. Bu, belirli bir kuralı neden oluşturduğunuzu takip etmek veya kurallarınızı görüntüleyebilecek başkaları için bağlam sağlamak için yararlı olabilir.
Yorumları aşağıdaki formatlarda yazabilirsiniz:
- Düz Metin (Plain Text) (Varsayılan): Herhangi bir biçimlendirme içermeyen basit metin.
- Markdown: GFM'nin desteklemediği bazı uzantılar da dahil olmak üzere GitHub'ın Markdown sözdizimlerini kullanabilirsiniz. Örneğin başlıklar, listeler, bağlantılar ve daha fazlasını oluşturabilirsiniz.
- AsciiDoc: Yorumlarınızı biçimlendirmek için AsciiDoc sözdizimlerini kullanabilirsiniz.
URL Kalıbı
URL kalıpları, Yönlendirme Kaynağı, Hariç Tutulan URL Kalıpları ve Yakalama Grubu İşleme seçeneklerinde URL'leri eşleştirmek için kullanılır. Bunları belirtmek için Joker Karakter (Wildcard) veya Düzenli İfade (Regular Expression) seçebilirsiniz.
Joker Karakter (Wildcard)
Joker Karakter (Wildcard), joker karakter olarak * (herhangi bir şeyle eşleşir) ve ? (tek bir karakterle eşleşir) kullanmanıza olanak tanıyan daha basit bir kalıp türüdür. İşte bazı örnekler:
https://example.com/helloile eşleşmesi içinhttps://example.com/*kullanabilirsiniz. Bu,https://example.com/sonrasındaki herhangi bir dizeyle eşleşecektir.https://example.com/search?q=helloile eşleşmesi içinhttps://example.com/search?q=*kullanabilirsiniz. Bu,qparametresi için herhangi bir değerle eşleşecektir.blogkelimesini içeren herhangi bir URL ile eşleşmesi için*blog*kullanabilirsiniz.
Joker Karakter'de de değiştirme (substitution) kullanabilirsiniz, yani $1, $2 vb. kullanarak eşleşen URL'nin bölümlerine atıfta bulunabilirsiniz. Örneğin, https://example.com/*-world-* kullanırsanız ve URL https://example.com/hello-world-goodbye ise, $1 "hello" ve $2 "goodbye" olacaktır. Eşleşen URL'nin tamamına atıfta bulunmak için $0 da kullanılabilir.
Değiştirme (substitution) Düzenli İfade'nin bir özelliği olsa da, RedirectWeb Joker Karakter'i dahili olarak Düzenli İfade'ye dönüştürdüğü için bunu Joker Karakter için de kullanabilirsiniz.
Düzenli İfade (Regular Expression)
Düzenli İfade (Regular Expression) (Regex), metindeki kalıpları eşleştirmek için güçlü bir araçtır ve programlamada da yaygın olarak kullanılır. Bir dizi dizeyle eşleşen belirli bir kalıp tanımlamanıza olanak tanır. İşte bazı örnekler.
https://example.com/helloile eşleşmesi içinhttps://example.com/.*kullanabilirsiniz. Bu,https://example.com/sonrasındaki herhangi bir dizeyle eşleşecektir.https://example.com/search?q=helloile eşleşmesi içinhttps://example.com/search\?q=(.*)kullanabilirsiniz. Bu,qparametresinin değerini eşleştirecek ve onu bir yakalama grubunda saklayacaktır. Daha sonra Yönlendirme Hedefi seçeneğinde$1kullanarak ona atıfta bulunabilirsiniz.blogkelimesini içeren herhangi bir URL ile eşleşmesi için.*blog.*kullanabilirsiniz.
Yönlendirme Hedefi veya Değiştirme kısımlarında yakalama gruplarına $1, $2, ... kullanarak veya eşleşmenin tamamına atıfta bulunmak için $0 kullanarak atıfta bulunabilirsiniz.
RedirectWeb, Apple'ın Regex motoru tarafından desteklenmektedir.
Regex sözdizimi hakkında daha fazla bilgi RegExr gibi kaynaklarda bulunabilir.