<-
Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.2 > Modüller

Please note

This document refers to a legacy release (2.2) of Apache httpd. The active release (2.4) is documented here. If you have not already upgraded, please follow this link for more information.

You may follow this link to go to the current version of this document.

Apache Modülü mod_dir

Mevcut Diller:  en  |  ja  |  ko  |  tr 

Açıklama:Bölü çizgisiyle biten yönlendirmeleri yapar ve dizin içeriği dosyalarını sunar.
Durum:Temel
Modül Betimleyici:dir_module
Kaynak Dosyası:mod_dir.c

Özet

Bir dizin içerik dosyası şu iki kaynaktan birinden gelebilir:

Bu iki işlev tamamen birbirinden ayrıdır, dolayısıyla eğer isterseniz kendiliğinden dizin içerik listesi üretimini tamamen iptal edebilirsiniz.

Sunucu http://sunucum/filanca/birdizin şeklinde bir istek aldığında birdizin bir dizinin ismiyse ‘bölü çizgisiyle biten’ bir yönlendirme söz konusudur. Dizinler URL sonuna bir bölü çizgisi eklenmesini gerektirir, bu bakımdan mod_dir modülü isteği http://sunucum/filanca/birdizin/ şeklinde yönlendirir.

Yönergeler

top

DirectoryIndex Yönergesi

Açıklama:İstemci bir dizin istediğinde dizin içeriğini listeler.
Sözdizimi:DirectoryIndex yerel-url [yerel-url] ...
Öntanımlı:DirectoryIndex index.html
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_dir

DirectoryIndex yönergesi, istemci, dizinin sonuna bir bölü çizgisi ekleyerek dizin içeriğinin listelenmesini istediğinde bakılmak üzere özkaynakları listeler. yerel-url, sunucu üstünde istenen dizine göreli bir belgenin URL’sidir; normal olarak dizin içindeki bir dosyanın ismidir. Çeşitli URL’ler verilebilirse de sunucu daima ilk bulduğuyla dönecektir. Eğer özkaynakların hiçbiri yoksa ve Indexes seçeneği atanmışsa sunucu dizin içeriğinden bir liste üretecektir.

Örnek:

DirectoryIndex index.html

Bu yapılandırmadan sonra yapılan bir http://mesela.dom/belgeler/ isteğine karşılık, sunucu, mevcutsa http://mesela.dom/belgeler/index.html dosyasını döndürecek, değilse ürettiği dizin içerik listesini gönderecektir.

Belgelerin dizine göreli olmasının gerekmediğine dikkat ediniz.

DirectoryIndex index.html index.txt /cgi-bin/index.pl

Bu örnekte ise dizin içinde index.html ne de index.txt mevcut olduğunda /cgi-bin/index.pl CGI betiği çalıştırılacaktır.

Ek Bilgi: Aynı bağlam içinde çok sayıda DirectoryIndex yönergesi varsa bunlar bir öncekini geçersiz kılmayacak, listeye eklenecektir:

# Örnek A: İlk sayfa index.html olsun buna index.php de eklensin.
<Directory /foo>
    DirectoryIndex index.html
    DirectoryIndex index.php
</Directory>

# Örnek B: Tek bir yönerge ile yapılması dışında Örnek A ile aynıdır.
<Directory /foo>
    DirectoryIndex index.html index.php
</Directory>
top

DirectorySlash Yönergesi

Açıklama:Bölü çizgisi ile biten yönlendirmeleri açar/kapar.
Sözdizimi:DirectorySlash On|Off
Öntanımlı:DirectorySlash On
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_dir
Uyumluluk:Apache 2.0.51 ve sonrasında mevcuttur.

DirectorySlash yönergesi, bir dizin isteğinde bulunan URL’lerin sonuna mod_dir modülü tarafından bir bölü çizgisi eklenip eklenmeyeceğini belirler.

Normalde, bir kullanıcı sona bir bölü çizgisi eklemeden bir dizin için istekte bulunursa mod_dir zaten onu aynı özkaynağa yönlendirir, fakat isteğin sonuna bir bölü çizgisi eklenmesinin bazı iyi sebepleri vardır:

Siz yine de bu etkiyi istemezseniz ve yukarıdaki sebepler de size uygun değilse yönlendirmeyi aşağıdaki gibi kapatabilirsiniz. Ancak, bunu yapmanın olası bir güvenlik açığını da beraberinde getireceği dikkate alınmalıdır.

# Aşağıdaki güvenlik uyarısına bakınız!
<Location /bir/yol>
DirectorySlash Off
SetHandler bir-eylemci
</Location>

Güvenlik Uyarı

Bölü çizgisi ile biten yönlendirmelerin kapatılması bir bilginin istemeyek açığa çıkmasına sebep olabilir. mod_autoindex modülünün etkin olduğunu (Options +Indexes) ve DirectoryIndex ile geçerli bir özkaynağın (index.html olsun) atandığını ama bu URL için başka hiçbir özel eylemci tanımlanmadığını varsayalım. Bu durumda bölü çizgisi ile biten bir istek olduğunda index.html dosyası sunulurdu. Fakat bölü çizgisi ile bitmeyen bir istek dizin içeriğinin listelenmesi ile sonuçlanırdı.

top

FallbackResource Yönergesi

Açıklama:Bir dosyayla eşleşmeyen istekler için öntanımlı bir URL tanımlar
Sözdizimi:FallbackResource disabled | yerel-url
Öntanımlı:None - httpd 404 döndürür (Bulunamadı)
Bağlam:sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme:Indexes
Durum:Temel
Modül:mod_dir
Uyumluluk:Apache HTTP Server 2.2.16 ve sonrası - disabled değiştirgesi 2.2.24'ten itibaren desteklenmektedir.

Dosya sisteminizdeki hiçbir şey ile eşleşmeyen URL'ler için bir eylemci atamak isterseniz bunı kullanın. Kullanmadığınız takdirde httpd bir HTTP 404 (Bulunamadı) döndürecektir. Örneğin

FallbackResource /not-404.php

yönergesi ile varolmayan dosyalarla ilgili isteklere /not-404.php sayfası gönderilirken varolanlar ile ilgili istekler bundan etkilenmeyecektir.

Çoğunlukla, belli bir dizindeki mevcut dosya ve betiklere yapılan istekler dışındaki tüm isteklere tek bir dosyanın veya belli bir kaynağın yanıt vermesi istenir. Buna 'öndenetleyici' adı verilir.

httpd'nin eski sürümlerinde bunu sağlamak için mod_rewrite ve istenen dosya veya dizinin var olup olmadığını sınamak için -f ve -d kullanımı gerekirdi. Bu artık tek bir yapılandırma satırı ile halledilebilmektedir.

FallbackResource /index.php

Resimler, css dosyaları gibi mevcut dosyalar normal olarak sunulmaya devam edecektir.

Üst dizinden miras alınmasının istenmemesi özelliğini iptal etmek için disabled değiştirgesini kullanın.

http://example.com/blog/ gibi bir alt-URI isteğinde bu alt-URI bir yerel-url olarak sunulabilir:

<Directory /web/example.com/htdocs/blog>
FallbackResource /blog/index.php
</Directory>
<Directory /web/example.com/htdocs/blog/images>
FallbackResource disabled
</Directory>

Mevcut Diller:  en  |  ja  |  ko  |  tr 

top

Yorum

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.