Apache HTTP Sunucusu Sürüm 2.2
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 |
Bir dizin içerik dosyası şu iki kaynaktan birinden gelebilir:
index.html
olan bir dosya. Dosya ismi DirectoryIndex
yönergesi ile belirlenir.
Bu, mod_dir
modülü tarafından denetlenir.mod_autoindex
modülü tarafından sağlanır.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.
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.
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 ne 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>
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:
mod_autoindex
gerektiği gibi çalışır. Yoksa
bağlantıdaki yolu sunamayacağından yanlış yolu gösterirdi.DirectoryIndex
yönergesi
sadece bölü çizgisi ile biten dizin istekleri için değerlendirilir.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>
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ı.
Açıklama: | Bir dosyayla eşleşmeyen istekler için öntanımlı bir URL tanımlar |
---|---|
Sözdizimi: | FallbackResource 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ı |
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.
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>