Web uygulamalarında bazen sadece belirli IP adreslerine erişim izni vermek ve diğer tüm istekleri farklı bir URL'ye yönlendirmek gerekebilir. Bu genellikle
bakım modları, geliştirme ortamları veya IP bazlı özel erişim kısıtlamaları için kullanılır. Apache web sunucusu üzerinde bu işlem .htaccess dosyası içerisine yazılacak özel kurallarla kolayca sağlanabilir.
Kod Açıklaması
# IP adreslerini kontrol et
RewriteCond %{REMOTE_ADDR} !^31\.143\.234\.25$
RewriteCond %{REMOTE_ADDR} !^31\.143\.234\.23$
RewriteCond %{REMOTE_ADDR} !^88\.209\.248\.203$
# Farklı bir IP adresi ise yönlendirme yap
RewriteRule ^(.*)$ https://www.ekasunucu.com/iletisim [R=302,L]
Bu kural ne yapar?
-
RewriteCondsatırları, gelen isteğin IP adresini kontrol eder. -
Belirtilen IP adreslerinden değilse (
!) yani listede yoksa, RewriteRule devreye girer. -
Gelen tüm istekleri
https://www.ekasunucu.com/iletisimadresine 302 (geçici) yönlendirme ile yollar.
Kullanım Alanları
-
Sadece belirli geliştiricilere sitenin aktif versiyonunu gösterip, kalan tüm kullanıcıların iletişim sayfasına yönlendirilmesi.
-
Bakımda olan bir siteye sadece sistem yöneticisinin erişmesini sağlamak.
-
Belirli IP adreslerinden gelen botları veya test araçlarının erişim sağlaması.
Dikkat Edilmesi Gerekenler
-
mod_rewriteApache modülü aktif olmalıdır. Aksi takdirde kurallar çalışmaz. -
.htaccessdosyasının bulunduğu dizindeAllowOverride Alltanımlı olmalı. -
IP adreslerinde
\.kullanılması gerekir, çünkü regex'te nokta (".") herhangi bir karakter anlamına gelir. -
Yönlendirme tipi
302yerine kalıcı yapmak istenirseR=301olarak değiştirilebilir.
.htaccess ile IP bazlı erişim kontrolü ve yönlendirme yapılandırması, web uygulamalarının güvenliği ve denetimi açısından önemli bir uygulamadır. Bu yöntem sayesinde, belirli IP adreslerine özel izin tanımlayabilir ve diğer tüm erişimleri alternatif sayfalara yönlendirebilirsiniz. Geliştirme süreçlerinde veya bakım sırasında büyük kolaylık sağlar.