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

Bu modül kullanıcılara özel dizinlere http://mesela.dom/~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://mesela.dom/~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://mesela.dom/users http://mesela.dom/users/ali/bir/iki.html
UserDir http://mesela.dom/*/usr http://mesela.dom/ali/usr/bir/iki.html
UserDir http://mesela.dom/~*/ http://mesela.dom/~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://mesela.dom/

Bu örneğe göre, http://mesela.dom/~ali/bir/iki.html şeklinde bir istek alındığında sunucu önce http://mesela.dom/~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://mesela.dom/ali/bir/iki.html adresine yönlendirecektir.

Argüman listesine bir yönlendirme ekleyecekseniz, bu, listenin son elemanı olmalıdır. Apache 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ı.

public_html eğitmeni