Ziyaretçinin diline göre engelleme sayfası gösterebilir miyim?
Kısa cevap
Evet. Dil, tarayıcının gönderdiği Accept-Language başlığındaki tercihe göre seçilir: Blocking Page penceresindeki Conditional Blocking Pages listesine bir dil koşulu ve o dilin sayfası eklenir; hiçbir koşula uymayan istemci Blocking Page Source alanındaki varsayılan sayfayı görür. Türkçe ve İngilizce için Ready-made Templates altındaki English page, Turkish for visitors who prefer it şablonu bunu tek tıkla kurar: varsayılan sayfa WAF Blocking Page (English), If the client prefers Turkish over English koşuluna uyan ziyaretçiye WAF Blocking Page (Turkish). Başka diller için Content Pages'te o dilin sayfası hazırlanır ve Client Language Preference koşulu oluşturulur. Accept-Language göndermeyen istemciler (çoğu API istemcisi ve bot) varsayılan sayfayı alır. En fazla beş koşullu sayfa tanımlanır.
Sorun: Engelleme Sayfası Tek Dilde
Farklı dillerdeki ziyaretçilere engelleme sayfasının kendi dillerinde gösterilmesi gerekiyor; dili belirleyen tek bilgi tarayıcının gönderdiği dil tercihidir.
Çözüm: Üç Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| Türkçe ve İngilizce sayfa yeterli | Yöntem 1: İki dilli hazır şablon |
| Başka diller ya da kendi sayfalarım | Yöntem 2: Dil koşullu sayfa |
| Koşullu sayfayı betik ya da komut satırıyla ekleyeceğim | Yöntem 3: WEB-CLI |
Yöntem 1: İki Dilli Hazır Şablon Önerilen
- Nasıl çalışır Şablon varsayılan İngilizce sayfayı ve Türkçeyi tercih eden ziyaretçiye gösterilen Türkçe koşullu sayfayı birlikte kurar.
- Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Blocking Page kartı → kalem ikonu → Ready-made Templates
- Gereksinim WAF açık HTTP vService
- Kapsam Mevcut koşullu sayfaların yerine tek bir Türkçe koşullu sayfa yazılır
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management sekmesinde Inspection & Blocking bölümündeki Blocking page kartının sağ üstündeki kalem ikonuna tıklanır.
Ready-made Templates altındaki English page, Turkish for visitors who prefer it şablonuna tıklanır.
Apply "English page, Turkish for visitors who prefer it"? onayı kabul edilir. Formda koşullu sayfa varsa onayın altında This replaces the current blocking page settings, including the N conditional page(s) below. yazar ve silinecek girdi sayısı görünür. Onaydan sonra form doldurulur; mevcut koşullu sayfalar listeden kalkar ve yerine tek Türkçe koşullu sayfa gelir.
Edit tıklanır; değişiklik ayrı bir dağıtım adımı olmadan uygulanır. Cluster kurulumunda varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
WAF Management sekmesindeki Blocking page kartında koşullu sayfa satırına bakılır; koşullu satırlar değerlendirme sırasıyla varsayılan cümlenin üstünde yer alır.
If the client prefers Turkish over English → the WAF blocking page (Turkish) page is shown (418)Blocking modundaki host grubuna imza tetikleyen istek Türkçe dil tercihiyle gönderilir; ardından başlık en-US yapılarak tekrarlanır.
Komut: curl -s -H "Accept-Language: tr-TR,tr;q=0.9,en;q=0.5" "https://www.example.com/?q=%3Cscript%3Ealert(1)%3C/script%3E"
Türkçe tercihle WAF blocking page (Turkish) profilinin içeriği; en-US ile Your Access To This Page Has Been Blocked!Yöntem 2: Dil Koşullu Sayfa
- Nasıl çalışır Her dil için bir sayfa profili ve bir dil koşulu eşleştirilir; girdiler sırayla denenir, ilk eşleşen sayfa gösterilir.
- Nerede açılır Content Pages · Conditions · Blocking Page kartı → kalem ikonu → Conditional Blocking Pages
- Gereksinim Dil başına bir Content Pages profili ve bir Client Language Preference koşulu (Content Pages ve Conditions ekranlarında ekleme Load Balancer alanında değiştirme yetkisi ister)
- Sınır En fazla beş koşullu sayfa
Adım adım yapılandırma
O dilin sayfası yoksa Load Balancer → Profiles → Content Pages ekranında Add tıklanır (nasıl eklenir).
Formun üstündeki WAF Blocking Page (English) şablonuna tıklanarak içerik forma kopyalanır; ad verilir ve metin o dile çevrilir.
Add tıklanır; sayfa profil listesine eklenir.
Load Balancer → Conditions ekranında Add tıklanır (nasıl eklenir).
Criteria = Client Language Preference seçilir. Language alanında sayfanın dili (ör. German), Languages to Compare alanında diğer sayfaların dilleri (ör. English, Turkish) seçilir. Koşul, ziyaretçi bu dili karşılaştırılan dillerden daha çok tercih ettiğinde eşleşir; her dil koşulunda Language ile Languages to compare birlikte aynı dil kümesini oluşturmalıdır, yoksa koşullar aynı anda eşleşebilir.
Add tıklanır; koşul listeye eklenir. Türkçe ve İngilizce için yerleşik If the client prefers Turkish over English ve If the client prefers English over Turkish koşulları hazır bulunur; bunlar yalnızca bu iki dili karşılaştırır.
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Blocking Page kartının sağ üstündeki kalem ikonuna tıklanır.
Conditional Blocking Pages altında Add Conditional Page tıklanır; CONDITIONAL PAGE #n başlıklı yeni girdi açılır.
Girdideki Condition alanında (boşken Select conditions yazar) 6. adımdaki koşul seçilir.
Page Profile alanında o dilin sayfası seçilir; yeni girdide WAF Blocking Page (English) seçili gelir.
Status Code alanı Use Default Status Code bırakılırsa girdi Blocking Status Code değerini kullanır; dile göre farklı kod gerekmiyorsa değiştirilmez.
Blocking Page Source ve seçili sayfa, hiçbir dil koşuluna uymayan ziyaretçinin göreceği sayfa olarak kontrol edilir.
Edit tıklanır; değişiklik ayrı bir dağıtım adımı olmadan uygulanır. Cluster kurulumunda varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
Blocking page kartında her dil koşulunun satırına bakılır.
<koşul> → the <sayfa> page is shown (<kod>)İmza tetikleyen istek ilgili dil tercihiyle gönderilir.
Komut: curl -s -H "Accept-Language: de-DE,de;q=0.9" "https://www.example.com/?q=%3Cscript%3Ealert(1)%3C/script%3E"
Almanca sayfanın içeriğiYöntem 3: WEB-CLI
- Nasıl çalışır Koşullu sayfa girdisi WEB-CLI ile
--blockingPageRuleslistesine yazılır; koşul ve sayfa kimlikleriyle verilir. - Nerede açılır WEB-CLI →
lb condition list·lb page list·waf options show·waf options update - Gereksinim WEB-CLI erişimi; Yöntem 2'nin 1-6. adımlarıyla oluşturulmuş sayfa ve koşul;
lb condition listiçin Load Balancer alanında görme yetkisi (yalnız WAF yetkisi olan hesap koşul tablosunu görmez, sayfa listesini görür) - Sınır En fazla beş koşullu sayfa
Adım adım yapılandırma
Kimlik listenin id sütunundadır (lbConditions- ile başlar):
lb condition listlb page listMevcut koşullu sayfalar blockingPageRules altında sıra numaralarıyla görünür; yeni girdi için ilk boş sıra numarası kullanılır (liste boşsa 0). Dolu bir sıra numarasına yazmak o girdiyi değiştirir.
waf options show poolId <vService><koşul-kimliği> ve <sayfa-kimliği> yerine 1. ve 2. adımdaki kimlikler yazılır; örnekteki 0 boş liste içindir, listede girdi varsa 0 yerine 3. adımda bulunan ilk boş sıra numarası yazılır. Komut çıktı vermez:
waf options update poolId <vService> --syncWithDefaultFwRules false --blockingPageRules.0.cond <koşul-kimliği> --blockingPageRules.0.pageProfile <sayfa-kimliği>Doğrulama
vService'in WAF ayarları görüntülenir.
Komut: waf options show poolId <vService>
blockingPageRules altında yazılan koşul ve sayfaSık Yapılan Hatalar
- Dil koşullarını farklı dil kümeleriyle yazmak. Örneğin şablonun Türkçe koşulu yalnızca Türkçe ile İngilizceyi karşılaştırır; Almanca için ayrı kümeyle yazılan koşulla birlikte bir ziyaretçi iki koşula da uyabilir ve listede önce gelen sayfa gösterilir. Bütün dil koşulları aynı dil kümesiyle yazılır.
- Accept-Language göndermeyen istemciler için dil beklemek. Bu istemciler hiçbir dil koşuluna uymaz ve varsayılan sayfayı alır.
- İki dilli şablonun mevcut koşullu sayfaları koruduğunu sanmak. Şablon listeyi tek Türkçe girdiyle değiştirir; başka koşullu sayfalar şablondan sonra yeniden eklenir.
Dokümantasyonda nasıl yapılır
