Skip to content
Smarter by Design.Simpler for Business

Path ​

Path Koşulu Nedir? ​

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

Path, URL'nin domain'den sonra gelen ve query string'den önceki bölümüdür.

https://example.com/api/v1/users?id=123
Path

Path koşulu tek başına bir işlem gerçekleştirmez; yalnızca tanımlanan eşleşme sağlandığında koşul sağlanmış kabul edilir ve bu koşula bağlı aksiyonların devreye girmesini sağlar.

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 Koşulunun Önemi ​

Modern web uygulamalarında path, kaynağın tanımlanmasında temel rol oynar. API endpoint'leri, sayfa yolları ve kaynak konumları path üzerinden belirlenir.

Path koşulu sayesinde;

  • API endpoint'lerine özel güvenlik politikaları uygulanabilir,
  • Statik içerik ve dinamik içerik için farklı önbellek kuralları tanımlanabilir,
  • Yönetim paneli yollarına erişim kısıtlaması yapılabilir,
  • URL yeniden yazma (rewrite) senaryoları uygulanabilir,
  • Microservice routing kararları alınabilir.

Bu yönüyle Path koşulu, TR7 üzerinde URL bazlı trafik kontrolünün en temel yapı taşlarından biridir.

Path vs Path + Query vs URL:

KriterKapsamÖrnek
PathYalnızca path/api/users
Path + QueryPath ve query string/api/users?id=123
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; path değeri istek anında tespit edilir ve yanıt aşamasında da aynı değer üzerinden değerlendirilir.

Nasıl Eklenir? ​

Yeni bir Path 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 seçilir.
  4. Koşula ait ilgili konfigürasyonlar yapılandırılır.
  5. Add butonuna tıklanarak koşul eklenir.

Path Koşulu Ekleme Formu ​

Path Koşulu Ekleme FormuPath 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 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 path eşleştirmeleri:

YöntemQueryEşleşen Path'ler
Exact Match/api/users/api/users
Start/api//api/users, /api/products
End.json/data.json, /api/users.json
Includesadmin/admin, /api/admin/users
Regex^/api/v[0-9]+//api/v1/users, /api/v2/products

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

URL path'leri ve header isimleri genellikle case-insensitive işlenmeli, değerler ise case-sensitive kalmalıdır.

INFO

Query Zorunlu ​

Eşleştirilecek olan değer bu alana girilir. 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:

  • /api/v1/users: Exact match için
  • /admin: Admin sayfaları için start match
  • .php: PHP dosyaları için end match
  • ^/products/[0-9]+$: Ürün ID regex

URL Kodlaması

Koşul, path'i istemciden geldiği ham (kodlanmış) haliyle değerlendirir; %2F, %2e gibi yüzde-kodlamalar veya nokta-segmentler (/./, /../) içeren istekler, düz metin desenlerle eşleşmeyebilir. URL Normalization aksiyonu path'i koşul değerlendirmesinden sonra normalize eder: koşulu bu tür atlatmalara karşı korumaz. Güvenlik amaçlı path denetimlerinde kodlanmış varyantları da kapsayan Regex desenleri tercih edilmelidir.

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

İsteğin path değeri, aksiyonlarda İsteğin yapıldığı dizin/sayfa akıllı değişkeniyle kullanılabilir (ör. bir HTTP başlığının veya log alanının 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 ​

  • Başlangıç Eşleştirmesini Tercih Edin. API versiyonlama ve path prefix'leri için Start yöntemi daha performanslı ve sürdürülebilirdir.
  • Regex'i Dikkatli Kullanın. Regex güçlüdür ancak performans maliyeti vardır. Basit eşleştirmeler için diğer yöntemleri tercih edin.
  • Trailing Slash'a Dikkat Edin. /api/users ve /api/users/ farklı path'lerdir. Tutarlılık için normalize edin veya her ikisini de kapsayacak koşullar oluşturun.
  • Case Sensitivity Kararını Bilinçli Verin. URL path'leri genellikle case-sensitive'dir. Ancak Windows sunucular case-insensitive olabilir.
  • Hem Path Hem de Query Kontrolüne İhtiyaç Varsa Path + Query Koşulunu Kullanın. Query string'ine de ihtiyacınız varsa Path + Query koşulunu tercih edin.

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: API Endpoint'lerine Koruma ve Sınırlama ​

Kullanım Amacı: API isteklerine özel güvenlik, rate limiting ve bot koruması uygulamak için path bazlı trafik kontrolü sağlamak.

Konfigürasyon: Content Matching Method → Start · Query → /api/

Aksiyon Önerileri:

  • ✅ Bandwidth Limitation → API endpoint'lere IP bazlı 10 Mbps throughput sınırı uygulanır, aşırı yüklenme önlenir.
  • ✅ Quarantine → Dakikada 100'den fazla API isteği gönderen IP'ler 5 dakika süreyle karantinaya alınır.
  • ✅ Advanced Traffic Inspection → API kullanım istatistikleri ve anomali tespiti için detaylı loglama yapılır.

Senaryo 2: Admin Paneli Erişim Kontrolü ​

Kullanım Amacı: Yönetim paneline yetkisiz erişimleri engellemek ve tüm admin erişim denemelerini loglamak için çok katmanlı güvenlik uygulamak.

Konfigürasyon: Content Matching Method → Start · Query → /admin

Aksiyon Önerileri:

  • ✅ Block → Yetkili IP listesi dışındaki kaynaklardan admin panel erişimi 403 Forbidden ile engellenir.
  • ✅ Show Content → Yetkisiz erişim denemelerinde "Access Denied - Admin Panel" özel uyarı sayfası gösterilir.
  • ✅ Advanced Traffic Inspection → Tüm admin path erişim denemeleri detaylı şekilde loglanır, güvenlik analizi yapılır.

Senaryo 3: Statik İçerik Optimizasyonu ​

Kullanım Amacı: Statik dosyalar (CSS, JS, resim) için browser cache optimizasyonu ve log gürültüsü azaltma.

Konfigürasyon: Content Matching Method → Regex · Query → \.(css|js|png|jpg|gif|ico|woff|woff2)$

Aksiyon Önerileri:

  • ✅ Add HTTP Header → Statik dosyalara Cache-Control: max-age=31536000 header'ı eklenir, 1 yıl browser cache sağlanır.
  • ✅ Conditional Silent Log → Statik içerik istekleri loglanmaz, log volume ve disk kullanımı azaltılır.

Senaryo 4: Hassas Dosya ve Dizinlere Erişim Koruması ​

Kullanım Amacı: Konfigürasyon dosyaları (.env, wp-config.php), versiyon kontrol dizinleri (.git) gibi hassas path'lere erişimi engellemek ve saldırı denemelerini izlemek.

Konfigürasyon: Content Matching Method → Includes · Query → .env

Aksiyon Önerileri:

  • ✅ Block → Hassas dosya path'leri (.env, .git, wp-config.php) 404 Not Found ile engellenir, dosya varlığı gizlenir.
  • ✅ Quarantine → 5 dakika içinde 3'ten fazla hassas dosya erişim denemesi yapan IP'ler 60 dakika karantinaya alınır.