HTTP yönlendirmeleri basit görünür; fakat production ortamında domain taşıma, HTTPS zorunluluğu, eski URL uyumluluğu, SEO davranışı, method koruma ve hata durumlarıyla birlikte karmaşık hale gelir. Yanlış status code seçimi arama motoru, tarayıcı cache'i, API istemcisi veya mobil uygulama davranışını bozabilir.
Birçok kurumda redirect kuralları farklı yerlerde yaşar: uygulama kodu, web sunucusu konfigürasyonu, CDN ayarı, load balancer kuralı veya geçici bakım script'i. Aynı domain için birden fazla yerde yönlendirme varsa loop, çift redirect, query kaybı veya yanlış hedef problemi oluşabilir.
Legacy modernizasyon projelerinde bu sorun daha büyüktür. Eski domain yeni domaine taşınır, eski path yapısı yeni API yapısına çevrilir, bazı path'ler kalıcı bazıları geçici yönlendirilir. Uygulama kodunu değiştirmek hem yavaş hem risklidir; ayrıca eski uygulama çoğu zaman bu esnekliği desteklemez.
Doğru yaklaşım, redirect davranışını trafik kuralı olarak merkezi noktada yönetmektir. Scheme, host, path, query, status code ve hata koşulları ADC katmanında tanımlanmalı; uygulama yalnız gerçek iş mantığına odaklanmalıdır.
TR7 HTTP Yönlendirme Kuralları bu modeli sunar: HTTP→HTTPS, tam URL yönlendirme, domain/path taşıma ve hata kodu bazlı redirect akışlarını tek politika modelinde yönetir.
TR7, HTTP yönlendirmelerini scheme değişimi, tam URL hedefi, hata koşulu ve trafik bağlamı üzerinden yönetilebilir kurallara dönüştürür.
`redirect_scheme` aksiyonu ile HTTP trafiği HTTPS'e yönlendirilebilir. Bu, uygulama kodu veya web sunucusu ayarı değiştirilmeden güvenli bağlantı standardı oluşturur.
`req_redirect_location` aksiyonu ile istek belirli bir URL'ye yönlendirilebilir. Eski domain, eski path veya kampanya linkleri merkezi olarak yeni adrese taşınabilir.
Timeout veya response hata kodlarında redirect kuralı çalıştırılabilir. Böylece kullanıcı boş hata sayfası yerine bakım, durum veya yedek servis sayfasına yönlendirilir.
Host, path, method, header, kaynak IP veya FX ifadeleri redirect kararında kullanılabilir. Aynı vService içinde farklı URL ağaçları farklı redirect davranışıyla çalışabilir.
HTTP Yönlendirme Kuralları, hızlı HTTPS geçişinden hata kodu yönlendirmesine kadar farklı redirect senaryolarını tek ADC politikası altında toplar.
HTTP→HTTPS yönlendirme çoğu uygulama için temel güvenlik gereksinimidir. TR7, scheme değişimini uygulama kodu yerine ADC kuralı olarak uygular. İstek HTTP geldiyse HTTPS hedefe yönlendirilir; HTTPS gelen isteklerde gereksiz redirect üretilmez. Bu, legacy uygulamaları güvenli yayınlama standardına taşımayı kolaylaştırır.
Eski domain yeni domaine, eski path yeni path'e veya geçici kampanya adresi kalıcı adrese yönlendirilebilir. TR7 tam hedef URL tanımını kural içinde tutar. Bu yapı migration, rebranding ve uygulama modernizasyon projelerinde kritik rol oynar. Uygulama kodu eski URL bilgisiyle uğraşmaz.
Her redirect aynı semantiğe sahip değildir. 301 ve 308 kalıcı taşıma için, 302 ve 307 geçici yönlendirme için kullanılabilir. 307 ve 308 method koruma ihtiyacı olan API çağrılarında daha doğru davranış sağlayabilir. TR7, status code seçimini kuralın parçası yaparak redirect davranışını açık hale getirir.
Redirect sırasında query string'in korunup korunmayacağı servis ihtiyacına göre belirlenebilir. Eski kampanya linklerinde query parametreleri analitik veya takip için korunabilir. Güvenlik açısından riskli parametrelerin yeni hedefe taşınması istenmeyebilir. TR7 bu kararı merkezi kural içinde yönetilebilir hale getirir.
API istemcileri POST, PUT veya PATCH gibi method'larla istek gönderebilir. Yanlış redirect status code seçimi istemcinin method'u GET'e çevirmesine neden olabilir. TR7, 307 veya 308 gibi method koruyan redirect davranışlarının kullanılmasını sağlar. Bu, API modernizasyon ve endpoint taşıma senaryolarında önemlidir.
`www.example.com` ile `example.com` arasında standart yön belirlenebilir. Bu davranış SEO, sertifika, cookie kapsamı ve kullanıcı deneyimi açısından tutarlılık sağlar. TR7, domain standardizasyonunu uygulama veya web sunucusu katmanına dağıtmadan yönetir. Tek kural tüm vService davranışını sadeleştirir.
Legacy uygulamalarda `/old/products/123` gibi path'ler yeni uygulamada farklı yapıya taşınmış olabilir. TR7 path koşullarıyla eski URL ağaçlarını yeni hedeflere yönlendirebilir. Bu, kademeli modernizasyon projelerinde kullanıcı linklerinin bozulmasını engeller. Eski uygulama ayakta kalırken yeni uygulamaya kontrollü geçiş yapılır.
`error_redirect_at_tm` benzeri akışlarla timeout veya trafik yönetimi kaynaklı hata durumlarında kullanıcı alternatif hedefe gönderilebilir. Örneğin bakım sayfası, durum sayfası veya yedek domain kullanılabilir. Kullanıcıya ham hata göstermek yerine kontrollü deneyim sağlanır. Operasyonel kesintiler daha düzgün yönetilir.
`error_redirect_at_res` yaklaşımıyla kurum servisinden dönen belirli hata kodları redirect davranışı tetikleyebilir. 500, 502, 503 veya 504 gibi durumlarda kullanıcı farklı bir sayfaya gönderilebilir. Bu, özellikle bakım ve geçici servis bozulması senaryolarında değerlidir. Hata yönetimi uygulamadan bağımsız hale gelir.
Host, path, method, header, source IP veya farklı FX ifadeleri redirect koşulu olarak kullanılabilir. Örneğin yalnız mobil path'ler, yalnız eski API sürümü veya yalnız belirli ülke trafiği yönlendirilebilir. Böylece redirect kuralı kör bir global davranış olmaktan çıkar. Trafik bağlamına göre kontrollü karar verilir.
Redirect kuralları farklı sistemlere dağıldığında loop riski artar. TR7 kuralları merkezi noktada tutulduğu için scheme, host ve path koşulları daha net görülebilir. Operatör HTTPS'e zaten gelmiş isteği tekrar HTTPS'e yönlendirme veya yeni domain'den eski domain'e dönüş gibi hataları daha kolay yakalar. Bu, production değişikliklerinde kritik güvenlik sağlar.
Redirect kuralları trafik kuralları motorunun parçası olarak yönetildiğinde değişiklik geçmişi izlenebilir. Kim hangi domain'i, hangi status code ile nereye yönlendirdi sorusu audit üzerinden cevaplanabilir. Yanlış redirect hızlıca geri alınabilir. Bu, SEO, güvenlik ve operasyon ekipleri için ortak denetim zemini oluşturur.
HTTP yönlendirme kuralları; status code seçimi, query davranışı, method koruma, hata koşulu, loop kontrolü ve bakım senaryolarıyla birlikte işletilir.
301 ve 308 kalıcı yönlendirme davranışları için, 302 ve 307 geçici yönlendirme davranışları için kullanılabilir. API çağrılarında method koruma gerekiyorsa 307 veya 308 daha uygun olabilir. Yanlış status code tarayıcı veya istemci cache davranışını etkileyebilir.
Redirect sırasında query parametrelerinin korunması veya hedefte yeniden oluşturulması gerekir. Takip parametreleri korunmak istenebilir; hassas parametreler taşınmamalıdır. Bu karar güvenlik ve analitik ihtiyacına göre verilmelidir.
Bazı redirect status code'ları istemci method'unu değiştirebilir. Form gönderimi veya API yazma işlemlerinde bu veri kaybı veya yanlış işlem riski oluşturabilir. Method koruma gerektiren senaryolarda uygun status code seçilmelidir.
Timeout veya response hata kodu redirect davranışını tetikleyebilir. Bu kurallar, bakım sayfası veya durum sayfasına kontrollü yönlendirme için kullanılabilir. Hata redirect'i gerçek problemi gizlememeli; log ve monitoring ile birlikte kullanılmalıdır.
Redirect kuralı yazılırken hedef URL'nin aynı koşulu tekrar tetikleyip tetiklemediği kontrol edilmelidir. Scheme, host ve path koşulları net sınırlandırılmalıdır. Merkezi kural yönetimi loop riskini azaltır.
Planlı bakımda belirli path veya tüm host geçici bakım sayfasına yönlendirilebilir. Bu durumda 302 veya 307 gibi geçici status code'lar daha uygun olabilir. Bakım sonrası kural kapatılarak trafik normal akışına döner.
Eski uygulama HTTP üzerinden yayınlanıyor olabilir. TR7, uygulama kodu değişmeden HTTP isteklerini HTTPS hedefe yönlendirerek güvenli bağlantı standardı oluşturur.
Rebranding veya domain değişiminde eski domain trafiği yeni domaine taşınabilir. 301 veya 308 ile kalıcı taşıma davranışı açıkça belirlenir.
Eski URL ağaçları yeni uygulama path'lerine yönlendirilebilir. Kullanıcıların bookmark'ları ve eski entegrasyon linkleri bozulmadan migration yapılır.
Kurum servisi geçici olarak cevap veremediğinde kullanıcı ham hata yerine bakım sayfasına gönderilebilir. Operasyon kesintisi daha kontrollü kullanıcı deneyimine dönüşür.
POST veya PUT çağrıları yeni API endpoint'ine taşınırken 307 veya 308 kullanılabilir. Böylece istemci method'u ve request davranışı korunur.
HTTPS geçişi, domain taşıma, path yönlendirme ve hata redirect'lerini uygulama kodu sıfır değişikliğiyle yönetin. Kendi servislerinizle canlı bir kurulumda gezdirelim.