mod_dir - Apache HTTP Sunucusu

Apache HTTP Sunucusu Sürüm 2.4

Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4 > Modüller

# Apache Modülü mod_dir

Mevcut Diller: en | fr | ja | ko | tr

Bu çeviri güncel olmayabilir. Son değişiklikler için İngilizce sürüm geçerlidir.

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:

- Kullanıcı tarafından yazılmış ve ismi genellikle `index.html` olan bir dosya. Dosya ismi `DirectoryIndex` yönergesi ile belirlenir. Bu, `mod_dir` modülü tarafından denetlenir.
- Aksi takdirde içerik listesi sunucu tarafından üretilir. Bu, `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://example.com/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://example.com/filanca/birdizin/` şeklinde yönlendirir.

### Yönergeler

- Yorum

## DirectoryIndex Yönergesi

Açıklama: | İstemci bir dizin istediğinde dizin içeriğini listeler.
Sözdizimi: | `DirectoryIndex disabled | 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://sunucum/belgeler/` isteğine karşılık, sunucu, mevcutsa `http://sunucum/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.

`disabled` değeri tek başına `mod_dir`’in bir dizin listesi aramasını engeller. `disabled` değiştirgesi öncesinde ve sonrasında başka bir değiştirge hatta bir `disabled` daha olsa bile tek başına `disabled` verilmiş gibi yorumlanır.

## DirectoryIndexRedirect Yönergesi

Açıklama: | Dizin içerik listeleri için harici bir yönlendirme yapılandırır.
Sözdizimi: | `DirectoryIndexRedirect on | off | permanent | temp | seeother | 3xx-kodu`
Öntanımlı: | `DirectoryIndexRedirect off`
Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme: | Indexes
Durum: | Temel
Modül: | mod_dir
Uyumluluk: | Apache HTTP Sunucusunun 2.3.14 ve sonraki sürümlerinde kullanılabilmektedir.

Öntanımlı olarak, `DirectoryIndex` listeyi istemciye şeffaf olarak seçip gönderir. `DirectoryIndexRedirect` ise harici bir yönlendirmeye sebep olur.

### Örnek

`DirectoryIndexRedirect on`

`http://example.com/docs/` için yapılan bir istek, `http://example.com/docs/index.html` (mevcutsa) adresine geçici bir yönlendirme döndürür.

## 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:

- Kullanıcı bunun sonucunda meşru bir URL ile istekte bulunmuş olur.
- `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.
- HTML sayfa içindeki göreli URL başvuruları gerektiği gibi çalışacaktı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 yaparken dikkatli olun, bununla ilgili bazı güvenlik sorunları olasılığı vardı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ı.

Bir yönlendirme sözkonusu olduğunda bazı tarayıcıların yanlışlıkla POST isteklerini GET istekleri haline getirme (böylece POST verisi iptal olur) olasılığı olduğuna da dikkat edin.

## FallbackResource Yönergesi

Açıklama: | Bir dosya ile eşleşmeyen istekler için öntanımlı URL tanımlar
Sözdizimi: | `FallbackResource yerel-url`
Öntanımlı: | `None - httpd 404 döndürecektir (Yok)`
Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess
Geçersizleştirme: | Indexes
Durum: | Temel
Modül: | mod_dir

Dosya sisteminde bulunmayan bir dosya için istek yapıldığında HTTP'nin 404 (Yok) hatasını döndürmemesi için sunulacak dosyanın yolunu tanımlar. Örnek:

``FallbackResource /not-404.php``

Bu satırla, (mevcut dosyaları etkilemeden) mevcut olmayan dosyaların yerine `not-404.php` dosyası sunulacaktır.

Belli bir dizindeki mevcut bir dosya veya betik için yapılanlar dışındaki tüm isteklerin tek bir dosya veya özkaynakla yerine getirilmesi sıkça istenen bir durum olup bu mekanizmaya 'ön denetleyici' adı verilir.

httpd'nin önceki sürümlerinde bir dosya veya dizinin varlığının sınanması için genellikle `mod_rewrite` modülü ve `-f` ve `-d` kullanımı gerekirdi. Bunun için şimdi tek satırlık bir yapılandırma yeterli olmaktadır.

``FallbackResource /index.php``

Resim, CSS dosyaları gibi mevcut dosyalar normal olarak sunulur.

http://example.com/blog/ gibi bir alt URI yerel-url olarak sağlanır:

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

Mevcut Diller: en | fr | ja | ko | tr

## 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.