Bir URL’i ezberlemesi insanlar için çok zordur. Bu sebeple gidip ya favorileri yada direk alan adını ezberleriz bu URL’ler başından beri kullanıcıların kullanması için değildi, genellikle sunucunun yararına otomatik olarak oluşturuldu ve kullanıldı. “Ne diyor bu adam yaaa” dediğinizi duyar gibiyim, evet sizin anlamanız için oluşturulmuyor ama gün sonunda biz SEO diyerek okunabilir bir hale sokuyoruz, normalde her yerinde query string geçer.
Tamam tamam bunu bir görsel ile anlatalım.
Tamda ben bu yazıyı kaleme aldığım sıralarda CloudFlare yeni bir özelliğini duyurdu. Dynamic URL Rewriting at the edge with Cloudflare Dinamik bir şekilde istediğiniz her yere yeniden yönlendirme komutları oluşturabilirsiniz. Bunu yaparken size o kadar esneklik sağlar ki kimi zaman web sunucularda yapması çile olan kuralları burada bir çırpıda oluşturabilirsiniz.
İşlemlere başlamadan hemen önce CloudFlare hesabınıza giriş yapın ve aşağıdaki ayarları açın. “Rules > Settings” rotasında görebilirsiniz.
Şimdi bu özelliğimizi açtık artık dönüştürülmüş olan bütün URL’ler bizim okuyabileceğimiz şekilde olacak nasıl mı?
URL | Normalleştirilmiş URL |
---|---|
www.example.com/hello/ | www.example.com/hello/ |
www.example.com/%68ello | www.example.com/hello |
www.example.com\hello | www.example.com/hello |
www.example.com/./lang//en/hello./ | www.example.com/lang/en/hello./ |
Yani günün sonunda düzgün bir biçimde okunabilir ve anlaşılır bir URL elimize geçecek. Oha lan süper bir olay dimi URL yeniden yazma, istek web sunucusu tarafından alındığında gerçekleşir. Bağlantıda oluşacak bir yavaşlık veya web sunucusunun bu isteği düzgün algılamaması sonucunda pek çok hatalar meydana gelir. Web sunucusu doğru verileri oluşturulan parametrelere göre alır ve ardından tarayıcının adres çubuğundaki URL’de değişiklik yaparak tarayıcıya gönderir.
Aslında her şey tarayıcıya gönderilen bir Location başlığından ibarettir.
CloudFlare Statik URL Yönlendirme
Kullanıcıların HTTP isteklerinin doğru bir şekilde eşleşmesine statik veya dinamik rewrite kuralları kullanarak URI Path ve/veya Query Stringlerde değişiklik yapmasına olanak tanır. İstek web sitenize uğramadan cloudflare tarafından gerçekleştirilir ve kişi gerekli rotalara yönlendirilebilir. Statik bir rewrite, belirtilen bir URI Path/Query String diğerine değiştirir.
İsterseniz bu yönlendirme işlemlerini belirli bir IP adresinden tutunda belirli bir ülkeye de yapabilirsiniz.
CloudFlare Dinamik URL Yönlendirme
Ne demiştik aklınızın kestiği ve mantıklı olan bütün yönlendirmeleri yapabilirdik. Bunu yapmak için biraz regex biraz CloudFlare functions kullanıcaz.
Öncelikli olarak diyeceğiz ki sonu .html
olan içerikler ile eşleşirse yeni rotaya gitsin. Söylemesi kadar yazması da aslında kolay.
ends_with(http.request.uri.path, ".html")
Bu işlemin sonucu “True” olarak geldiğinde ise dinamik yönlendirmeye sokarak yeni rotasını belirleyebiliriz.
regex_replace(http.request.uri.path,"^/*.html","/regex_replace(http.request.uri.path,"^/*.html","/${0}")
")
Kuralın son hali panel üzerinde şu şekilde gözükecek
Aynı kuralı ayrıca “Page Rule” sekmesinden aşağıdaki gibi hazırlayabiliriz.
Yukarda az buçuk bahsettiğimiz normalizasyon işlemi olası bir saldırı vektörünü kapatan yeni bir özelliktir. Bu özellik, kötü niyetli kişilerin, HTTP isteklerinde URL kodlaması kullanarak Cloudflare ürünlerindeki güvenlik kurallarını(WAF vb) atlatılmasını önler.
Bu gelişmiş koruma yöntemi, URL kodlamasının güvenlik özelliklerini atlamak için kullanılamamasını sağlar. Ek olarak, tüm gelen trafiği standart bir formatta normalleştirerek kullanıcı deneyimini iyileştirir.