mod_userdir
Kullanıcılara özel dizinler
Base
mod_userdir.c
userdir_module

Bu modül kullanıcılara özel dizinlere `http://example.com/~kullanıcı/` sözdizimi kullanılarak erişilebilmesini mümkün kılar.

URL’lerin Dosya Sistemi ile Eşleştirilmesi
public_html eğitmeni
UserDir
Kullanıcıya özel dizinlerin yeri
UserDir dizin [dizin] ...
server config
virtual host

UserDir yönergesi, bir kullanıcıya ait bir belge için bir istek yapıldığında, isteğin kullanıcının ev dizininde bulunan belli bir dizinden karşılanmasını sağlar. `dizin` olarak şunlar belirtilebilir:

- Dizinin ismi veya aşağıdakiler gibi bir kalıp.
- `disabled` anahtar sözcüğü. `enabled` anahtar sözcüğü ile sonradan etkin kılınmadıkça tüm kullanıcı-dizin dönüşümlerini iptal eder (aşağıya bakınız).
- `disabled` anahtar sözcüğünü takibeden boşluk ayraçlı kullanıcı isimleri listesi. Bu listede yer alan kullanıcı isimlerine, sonradan bir `enabled` listesinde görünse bile, dizin dönüşümleri asla uygulanmaz.
- `enabled` anahtar sözcüğünü takibeden boşluk ayraçlı kullanıcı isimleri listesi. Genel bir iptal sözkonusu olsa bile, kullanıcı ismi bir `disabled` listesinde yer almadıkça, bu listede yer alan dizinlere dönüşüm uygulanır.

Userdir yönergesinde ne `enabled` ne de `disabled` varsa, argüman bir dosya ismi kalıbı olarak ele alınır ve kullanıcı belge kök dizininin yolunu oluşturmakta kullanılır. `http://example.com/~ali/bir/iki.html` şöyle dönüştürülür:

Kullanılan UserDir yönergesi | Elde edilen yol
--- | ---
UserDir public_html | ~ali/public_html/bir/iki.html
UserDir /usr/siteler | /usr/siteler/ali/bir/iki.html
UserDir /home/*/htdocs | /home/ali/htdocs/bir/iki.html

Aşağıdaki yönergelerle istemciye gönderilecek yönlendirmeler:

Kullanılan UserDir yönergesi | Elde edilen yönlendirme
--- | ---
UserDir http://example.com/users | http://example.com/users/ali/bir/iki.html
UserDir http://example.com/*/usr | http://example.com/ali/usr/bir/iki.html
UserDir http://example.com/~*/ | http://example.com/~ali/bir/iki.html

Bu yönergeyi kullanırken dikkatli olun; örneğin, `"UserDir ./"` şeklinde bir atama `"/~root"` isteklerini `"/"` dizinine yönlendirir ki bu elbette istenmez. Bu bakımdan yapılandırmanızda mutlaka bir "`UserDir disabled root`" satırının yer almasını tavsiye ederiz. Daha fazla bilgi için Directory yönergesine ve Güvenlik İpuçları sayfasına bakınız.

Diğer örnekler:

Bir kaç kullanıcı hariç kalan herkesin `UserDir` dizinlerini iptal etmek için şunu yapabilirsiniz:

UserDir disabled UserDir enabled birey1 birey2 birey3

Bir kaç kullanıcı hariç kalan herkesin `UserDir` dizinlerini etkin kılmak için şunu yapabilirsiniz:

UserDir disabled birey4 birey5 birey6

Birden fazla dizin belirtmek de mümkündür:

Userdir "public_html" "/usr/siteler" "http://example.com/"

Bu örneğe göre, `http://example.com/~ali/bir/iki.html` şeklinde bir istek alındığında sunucu önce `http://example.com/~ali/bir/iki.html` yönlendirmesini deneyecektir. Onu bulamazsa isteği `/usr/siteler/ali/bir/iki.html` dosyasını arayacak onu da bulamazsa istemciyi `http://example.com/ali/bir/iki.html` adresine yönlendirecektir.

Argüman listesine bir yönlendirme ekleyecekseniz, bu, listenin son elemanı olmalıdır. Apache httpd yönlendirmenin başarılı sonuç verip vermediğini bilemeyecektir. Bu bakımdan, listede bu yönlendirmeden sonra bir yönlendirme daha bulunması daha iyi olacaktır.

Kullanıcı dizini dönüşümü Apache 2.1.4 sürümü ve sonrasında öntanımlı olarak etkin değildir. Daha önceki sürümlerde bir UserDir yönergesinin yokluğunda `UserDir public_html` öntanımlıydı.

# Ayrıntıların birleştirilmesi

Etkinleştirilen ve etkisizleştirilen kullanıcılara özgü listeler küresel etki alanından sanal konak etki alanına aktarılırken yer değiştirme yapılır, mevcutla birleştirilmez.

Kullanıcı Dizinleri