:::: MENU ::::

Apache ile Klasör İçeriğinin Web Tarayıcısında Listelenmesi

Apache web sunucusuna ulaşan  bir istek, dosya yerine bir klasöre işaret ediyorsa aşağidaki 3 işlemden birisi yapılır;

  • Klasörün içindeki öngörülen dosyayı (index.php index.html,index.htm vb.) istemciye göster
  • Klasörün içeriği ile ilgili otomatik bir sayfa oluştur
  • ‘Permission Denied’  hata mesajı oluştur

İlk iki seçenek tamamen mod_autoindex module tarafindan yönetilir. Bu module apache ile öngörülen olarak derlenir ve aktif  hale getirilir.

modülün aktif olup olmadığını;

 komut satırından kontrolünü yapabiliriz.

mod_autoindex modulü Indexes komutu ile kontrol edilir.

Otomatik sayfaların oluşturulmasını ve klasörün içeriğinin görüntülenmesini istemiyorsak

Daha kullanışlı bir şekilde bazı alanlar için bu özelliği açıp bazıları için kapatabiliriz.

Güvenlik

Klasörlerin  içeriğini otomatik olarak görüntülemek büyük bir güvenlik açığına sebep olur. Gerekli olmadı sürece bu özellik kapalı olmalıdır. DirectoryIndex  ile öngörülen dosyayı belirlemek

Genel olarak bir klasör istendiğinde,bütün web sunucuları  index.html veya index.htm adında bir dosyayı öngörülen olarak kullanıcıya sunarlar. Örneğin aşagidaki gibi bir URL için;

http://omeroner.com/

ilk olarak index.html dosyasına bakıcaktır. Bu davranış biçimi  apache’ye  daha derlenirken eklenmiştir ve DirectoryIndex komutuyla yönetilir.Öngörülen şekilde kurulan bir apache sunucusunda ayar dosyasında aşağıdaki gibi bir parametre  yer alır.

Bu komutla apache, herhangi bir URL’nin (dosya adı içermeyen URL’ler) sonuna index.html ekini ekler.

Böylece herhangi bir klasör için yapılan istek aslında http://omeroner.com/index.html   şeklinde işlem görür.

Apache’deki bu davranışı değiştirmek veya daha fazla seçenek vermek bizim elimizde;

Bu özellik kullanılarak daha gelişmiş cözümlerde üretelebiliriz.

Örnek vericek olursam, bir klasör için istek yapıldığında, klasör bizim belirlediğimiz herhangi bir öngörülen dosya içermiyorsa kullanıcıya 404 hata sayfası gösterilebilir. Bunun icin full path(tam yol) tanımlanmalıdır.

Örneğin;

Yukarda yaptığımız ayarlamaya göre, bir klasöre (DocumentRoot) eğer klasörde index.html ve index.htm dosyalarından biri bulunmuyorsa hata404.cgi dosyasını client yani kullanıcıya gösterir.

Otomatik olarak klasorler icin icerik gosteren sayfalar nasil yaratiliyor?

Eğer  “DirectoryIndex index.html index.htm” satırındaki dosyalardan birisi klasörde bulunamaz ise mod_autoindex  otomatik olarak içerik ile ilgili bir html sayfasi hazırlayarak istemciye gönderir.

Bu sayfa üç bölümden olusur;

  • Secenege bagli “baslik” (header)
  • Dosyalarin listesi
  • Secenege bagli beni-oku dosyasi (read-me)
  • Indeksleme Secenekleri

Çoğu zaman indeksleme “FancyIndexing” seçeneği aktif hale getirilerek kullanılır. Bunun için aşağıdaki  komutu ayar dosyasına girmek yeterlidir.

Örnek :

indeks sayfalarında görünmesini istemediğimiz dosya tipleri olabilir.

IndexIgnore direktifi ile berlirlenen dosyaların indeks sayfalarında görünmesi engellenir.

kullanilmasi ile içinde bulunulan klasör olduğu anlatılmaktadır.Bu direktif sunucu sevisiyesinde kullanilabilir ve asla .htaccess icinde iken aktif hale gelmez.  nokta(.) yerine ful path de verebiliriz.

Konu ile ilgili daha ayrıntılı bilgiye  buradan ulaşabilirsiniz.


Comments are closed.