Skip to content
Smarter by Design.Simpler for Business

Path + Query ​

Path + Query Koşulu Nedir? ​

Path + Query koşulu, HTTP isteğinin URL'sindeki hem path (yol) hem de query string bölümünü birlikte değerlendirerek trafik yönlendirme ve manipülasyon kararları almak için kullanılan bir koşul tipidir.

Path + Query, URL'nin domain'den sonraki tüm bölümünü kapsar.

https://example.com/api/users?id=123&active=true
Path + Query

Bu koşul, path ve query string'i ayrı ayrı değerlendirmek yerine birlikte ele almak gerektiğinde kullanılır.

URL Yapısı ​

Full URL YapısıFull URL Yapısı

BileşenAçıklama
SchemeKullanılan protokolü ifade eder (http/https).
Domain Nameİsteğin gönderildiği sunucu adresini belirtir.
PortSunucunun dinlediği servis portunu tanımlar.
Path to the FileSunucu üzerindeki erişilecek kaynak yolunu belirtir.
Parameters (Query)İstekle birlikte gönderilen sorgu (query string) parametrelerini içerir.
AnchorSayfa içi konumu ifade eder, sunucuya gönderilmez.

Path + Query Koşulunun Önemi ​

Bazı senaryolarda path ve query string birlikte anlam ifade eder. Örneğin, aynı path'e farklı query parametreleriyle gelen istekler farklı şekilde işlenebilir.

Path + Query koşulu sayesinde;

  • Tam URL eşleştirmesi yapılabilir (domain hariç),
  • Belirli path ve parametre kombinasyonları hedeflenebilir,
  • URL pattern'leri daha esnek şekilde tanımlanabilir,
  • Cache key belirleme senaryolarında kullanılabilir.

Path + Query vs Path vs URL:

KriterKapsamÖrnek
Path + QueryPath ve query string/api/users?id=123
PathYalnızca path/api/users
URLProtokol, host, path, queryhttp://www.tr7.com/api/users?id=123

Kullanılabildiği vService Tipleri ​

HTTP
L7 TCP
Network

Koşul, hem istek (At Request) hem yanıt (At Response) aşamasında kullanılabilir; değer istek anında tespit edilir.

Nasıl Eklenir? ​

Yeni bir Path + Query Koşulu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:

  1. Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
  2. Load Balancer → Conditions → Add adımları takip edilir.
  3. Criteria olarak Path + query seçilir.
  4. Koşula ait ilgili konfigürasyonlar yapılandırılır.
  5. Add butonuna tıklanarak koşul eklenir.

Path + Query Koşulu Ekleme Formu ​

Path + Query Koşulu Ekleme FormuPath + Query Koşulu Ekleme Formu

INFO

Condition Name ​

Oluşturulacak koşul için isteğe bağlı bir isim girilebilir.

Bu alan, özellikle aşağıdaki senaryolarda önemlidir:

  • Aynı vService altında çok sayıda koşul tanımlandığında,
  • Benzer kriterlere sahip koşulların ayırt edilmesi gerektiğinde,
  • Koşulun hangi iş kuralını temsil ettiğinin hızlıca anlaşılması istendiğinde.

Bu alan boş bırakıldığında, TR7 ilgili koşulun içeriğini analiz ederek Condition Description alanında otomatik ve açıklayıcı bir isim oluşturur. Oluşturulan bu açıklama, koşul listelerinde isim olarak kullanılır.

INFO

Criteria Zorunlu ​

Koşulun tipini belirleyen alandır; aranabilir açılır listeden Path + query seçilir. Bu seçim, formda görüntülenecek alanları belirler. Kriter, koşul kaydedildikten sonra değiştirilemez: farklı bir kritere ihtiyaç duyulursa yeni bir koşul tanımlanır. Listedeki tüm kriterler ve kapsamları için Conditions sayfasındaki kriter kataloğuna bakılabilir.

INFO

Content Matching Method Varsayılan: Exact match ​

İçeriğin nasıl eşleştirileceğini belirler. Alan, formda etiketsiz bir açılır liste olarak Criteria'nın hemen altında görünür ve Exact match seçili açılır. Bu kriterde Is present seçeneği sunulmaz.

SeçenekKodAçıklama
Exact matchexactMatchDeğer birebir eşleşmelidir.
StartstartDeğer belirtilen metinle başlamalıdır.
EndendDeğer belirtilen metinle bitmelidir.
IncludessubDeğer belirtilen metni içermelidir.
RegexregexDeğer düzenli ifadeyle eşleşmelidir.

Örnek eşleştirmeler:

YöntemQueryEşleşen URL'ler
Exact Match/users?id=123/users?id=123
Start/api/v1//api/v1/users?active=true
Includesdebug=true/any/path?debug=true
Regex\?.*token=/api?token=abc, /login?token=xyz

INFO

Case Insensitive Varsayılan: Kapalı ​

Büyük/küçük harf duyarlılığını kontrol eder.

  • Aktif: example, EXAMPLE, Example aynı kabul edilir
  • Aktif Değil: Tam eşleşme gerekir (varsayılan)

TIP

Path bölümü çoğu sunucuda büyük/küçük harfe duyarlıdır; parametre değerleri için duyarsız eşleşme gerekiyorsa bu seçenek işaretlenir.

INFO

Query Zorunlu ​

Eşleştirilecek olan değer bu alana girilir. Koşulun gördüğü tam değer, ? işareti dahil path + sorgu dizesidir: /admin?x=1 isteğinde değerlendirilen metin /admin?x=1'dir. Bu sayede Start yöntemiyle /admin? gibi bir desen, End yöntemiyle sorgu sonu hedeflenebilir. Seçilen eşleştirme yöntemine göre:

  • Exact match: Değerin birebir karşılığını kontrol eder.
  • Start: Aranacak metin parçasının başlangıcını kontrol eder.
  • End: Aranacak metin parçasının bitişini kontrol eder.
  • Includes: Aranacak metin parçasının içinde geçme durumunu kontrol eder.
  • Regex: Düzenli ifade deseni (Regex) ile kontrol eder.

Örnek değerler:

  • /login?redirect=/dashboard: Tam URL eşleştirme
  • /api/: API path'leri için başlangıç
  • utm_source=: Marketing parametreli URL'ler

INFO

Condition Description ​

Girilen kriter ve değerler doğrultusunda TR7 tarafından otomatik olarak oluşturulur.

Bu açıklama;

  • Koşulun hangi değer için geçerli olduğunu,
  • Hangi kriter üzerinden çalıştığını,
  • Listeleme ekranlarında koşulun hızlıca anlaşılmasını

sağlayacak şekilde sistem tarafından dinamik olarak üretilir.

TIP

Path + sorgu değeri, aksiyonlarda İsteğin yapıldığı dizin/sayfa + query akıllı değişkeniyle kullanılabilir (ör. bir HTTP başlığının, log alanının veya yönlendirme hedefinin değeri olarak).

INFO

Form Butonları ​

Add ​

Add butonuna tıklanarak koşul ekleme işlemi tamamlanır.

Add & Repeat ​

Add & Repeat butonu ile koşul ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir koşul daha eklenebilir.

Koşul EklendiKoşul Eklendi

Operasyonel Kullanım Önerileri ​

  • Query String Sıralamasına Dikkat. ?a=1&b=2 ve ?b=2&a=1 farklı string'lerdir; Exact match bu ikisini farklı görür. Sıradan bağımsız olarak tek bir parametrenin değerini denetlemek için Query Parameter koşulu kullanılmalıdır.
  • URL Encoding'e Dikkat. Query string'deki özel karakterler encode edilmiş olabilir (%20, %3D vb.).
  • Path-Only Yeterliyse Path Koşulunu Kullanın. Sorgu dizesine ihtiyaç yoksa Path koşulu tercih edilmelidir; desenler sorgu varyasyonlarından etkilenmez.

Canlı Ortamlarda Yaygın Kullanım Senaryoları ​

Aşağıdaki örnekler, ilgili koşulun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.

Senaryo 1: Debug Modu Tespiti ve Engelleme ​

Kullanım Amacı: Production ortamında URL'de debug parametresi içeren istekleri tespit edip engellemek ve kullanıcılara bilgilendirme yapmak.

Konfigürasyon: Content Matching Method → Includes · Query → debug=true

Aksiyon Önerileri:

  • ✅ Block → Production ortamında debug parametresi ile gelen istekler 403 Forbidden ile engellenir.
  • ✅ Show Content → Debug mode denemelerinde "Debug mode is disabled in production environment" bilgilendirme sayfası gösterilir.

Senaryo 2: Kampanya ve UTM Parametresi Takibi ​

Kullanım Amacı: Marketing kampanya parametrelerini (utm_campaign, utm_source) tespit edip trafik kaynağı analizi yapmak ve özel header'lar eklemek.

Konfigürasyon: Content Matching Method → Includes · Query → utm_campaign=

Aksiyon Önerileri:

  • ✅ Add HTTP Header → Kampanya trafiğine X-Campaign-Tracked: true ve X-Traffic-Source: campaign header'ları eklenir.
  • ✅ Advanced Traffic Inspection → Marketing attribution analizi ve campaign performance tracking için detaylı loglama yapılır.

Senaryo 3: Sayfalama ve Sıralama Kontrolü ​

Kullanım Amacı: Anormal yüksek sayfa numaraları ile otomatik scraping yapan botları tespit edip engellemek.

Konfigürasyon: Content Matching Method → Regex · Query → /products\?page=[0-9]{3,}

Aksiyon Önerileri:

  • ✅ Quarantine → Dakikada 50'den fazla farklı sayfa numarası deneyen IP'ler 30 dakika karantinaya alınır.
  • ✅ Advanced Traffic Inspection → Scraping pattern analizi ve anomali tespiti için pagination trafiği loglanır.

Senaryo 4: Arama Sorgusu Güvenlik Kontrolü ​

Kullanım Amacı: Arama query string'lerinde XSS saldırı pattern'lerini tespit edip engellemek ve saldırgan IP'leri karantinaya almak.

Konfigürasyon: Content Matching Method → Regex · Query → /search\?q=.*(<script|javascript:)

Aksiyon Önerileri:

  • ✅ Block → Search query'de XSS pattern tespit edildiğinde istek 400 Bad Request ile engellenir.
  • ✅ Quarantine → 3'ten fazla XSS denemesi yapan IP'ler 60 dakika karantinaya alınır, tekrarlayan saldırılar önlenir.