Apache: URL’lere, Dosyalara ve Dizinlere Erişimi Reddetmek

Genellikle Apache olarak anılan Apache HTTP Sunucusu, günümüzde İnternet’te en yaygın kullanılan web sunucusu yazılımlarından biridir.  Apache, açık kaynaklı bir yazılımdır; bu, yalnızca kullanımının ücretsiz olduğu anlamına gelmez, aynı zamanda dünya çapındaki geliştiricilerin işbirliğine dayalı katkılarından da yararlanır.

Web sunucusu yönetiminin en önemli yönlerinden biri içeriğe erişimi kontrol etmektir.  Yöneticiler, bir web sitesinin belirli alanlarına kimlerin erişebileceğini belirleyebilir; bu, güvenlik ve gizliliği korumak için önemlidir.  Bu makale, Apache kullanılarak URL’lere, dosyalara ve dizinlere erişimin nasıl reddedileceğine ilişkin kapsamlı bir kılavuz sunmaktadır.

.htaccess Dosyasını Anlamak

Ayrıntılara girmeden önce kısaca .htaccess dosyasından bahsedelim.  .htaccess (Hypertext Access) dosyası, Apache tarafından kullanılan bir yapılandırma dosyasıdır.  Yöneticilerin, sunucunun ayarlarını her bir dizin bazında kontrol etmesine ve yönetmesine olanak tanır.

Belirli bir URL’ye Erişimi Reddetme

Belirli bir URL’ye erişimi reddetmek için .htaccess dosyasındaki ‘RewriteEngine’ ve ‘RewriteRule’ yönergelerini kullanabiliriz.  ‘RewriteEngine’ direktifi, URL yeniden yazma motorunu etkinleştirir ve ‘RewriteRule’ direktifi, URL’lerin yeniden yazılması için özel bir kural tanımlar.

Örnek: “http://yourwebsite.com/private” URL’sine erişimi engellemek istediğimizi varsayalım.  .htaccess dosyamıza şu satırları ekleyebiliriz:


RewriteEngine On
RewriteRule ^private - [F,L]

Burada ^private, eşleşecek URL modelini belirtir, – Apache’ye herhangi bir değişiklik yapmamasını söyler ve [F,L], sunucunun bir 403 Forbidden durum kodu döndürmesine ve model eşleştiğinde başka kuralları işlemeyi durdurmasına neden olur.

Belirli Bir Dosyaya Erişimi Reddetme

Belirli bir dosyaya erişimi engellemek için .htaccess dosyasındaki ‘Files’ yönergesini kullanabiliriz.  ‘Files’ direktifi, belirtilen joker karakterlerle eşleşen dosyalara uygulanacak bir direktif grubunun kapsüllenmesine izin verir.

Örnek: “privatefile.html” adlı belirli bir dosyaya erişimi engellemek istediğimizi varsayalım.  .htaccess dosyamıza şu satırları ekleyebiliriz:


<Files "privatefile.html">
  Order allow,deny
  Deny from all
</Files>

Bu durumda, Order allow,deny, “allow” ve “reddet” yönergelerinin işlendiği sırayı ayarlar.  Tümünden reddet, tüm IP adreslerinin belirtilen dosyaya erişmesini engeller.

Belirli Bir Dizine Erişimi Reddetme

Benzer şekilde, belirli bir dizine erişimi engellemek için .htaccess dosyasındaki ‘Directory’ yönergesini kullanabiliriz.  ‘Directory’ direktifi, yalnızca adlandırılmış dizin ve onun alt dizinlerine uygulanacak bir direktif grubunu kapsamak için kullanılır.

Örnek: “/private” adlı belirli bir dizine erişimi engellemek istediğimizi varsayalım.  .htaccess dosyamıza şu satırları ekleyebiliriz:


<Directory "/private">
  Order allow,deny
  Deny from all
</Directory>

Bu kod bloğu, tüm kullanıcıların “/private” dizinine ve içindeki herhangi bir alt dizine erişmesini engeller.

 

Yazının orijinalini buradan okuyabilirsiniz.

Skip to content