Nasıllar ve Öğreticiler Kullanıcı Dizinleri (public_html)

Çok kullanıcılı sistemlerde, UserDir yönergesi ile her kullanıcının kendi ev dizininde bir sitesi olması sağlanabilir. http://example.com/~kullanıcı/ adresinin ziyaretçileri "kullanıcı" isimli kullanıcının ev dizininin içeriğini değil, UserDir yönergesinde belirtilen alt dizinin içeriğini görürler.

Öntanımlı olarak bu dizinlere erişimin etkin olmadığını unutmayınız. UserDir yönergesini kullanırken öntanımlı yapılandırma dosyasındaki

#Include conf/extra/httpd-userdir.conf

satırını etkin hale getirip, gerekiyorsa httpd-userdir.conf dosyasını da düzenleyerek veya ana yapılandırma dosyasında bir Directory bloğu içine uygun yönergeleri yerleştirerek bu dizinlere erişimi etkin hale getirebilirsiniz.

URL’lerin Dosya Sistemi ile Eşleştirilmesi
<code>UserDir</code> ile dosya yolunun belirtilmesi

UserDir yönergesinde kullanıcı sayfalarının yükleneceği dizin belirtilir. Bu yönergeye değeri çeşitli biçimlerde atanabilir.

Başında bölü çizgisi bulunmayan bir dosya yolu belirtilmişse, kullanıcının ev dizinine göreli bir dizin belirtildiği varsayılır. Yapılandırmada şöyle bir satır varsa:

UserDir public_html

http://example.com/~orhan/dosya.html adresine karşılık gelen dosya yolu /home/orhan/public_html/dosya.html olarak çözümlenir.

Eğer başında bölü çizgisi bulunan bir dosya yolu belirtilirse, kullanıcı sayfalarının bu dizinin altında kullanıcı ismini taşıyan dizinlerde bulunacağı varsayılır. Yapılandırmada şöyle bir satır varsa:

UserDir /var/html

http://example.com/~orhan/dosya.html adresine karşılık gelen dosya yolu /var/html/orhan/dosya.html olarak çözümlenir.

Eğer belirtilen dosya yolu bir yıldız imi (*) içeriyorsa yıldız iminin yerine kullanıcı ismi yerleştirilerek elde edilen dosya yolu kullanılır. Yapılandırmada şöyle bir satır varsa:

UserDir /var/siteler/*/sayfam

http://example.com/~orhan/dosya.html adresine karşılık gelen dosya yolu /var/siteler/orhan/sayfam/dosya.html olarak çözümlenir.

Çok sayıda dizin veya dizin yolu belirtmek de mümkündür.

UserDir public_html /var/siteler

http://example.com/~orhan/dosya.html adresini Apache önce /home/orhan/public_html/dosya.html olarak arayacak, bulamazsa /var/siteler/orhan/sayfam/dosya.html olarak arayacak, bulduğunda istenen dosyayı sunacaktır.

Harici adreslere yönlendirme

UserDir yönergesi kullanıcı dizini isteklerini harici adreslere yönlendirmek için de kullanılabilir.

UserDir http://example.org/users/*/

Bu yapılandırmaya göre http://example.com/~bob/abc.html için yapılan bir istek http://example.org/users/bob/abc.html adresine yönlendirilecektir.

Bu özelliği kullanacak kullanıcıların sınırlandırılması

UserDir yönergesinin açıklamasında belirtilen sözdizimini kullanarak bu işlevselliği bazı kullanıcılara yasaklayabilirsiniz:

UserDir disabled root ahmet mustafa

Bu yapılandırma ile disabled deyiminin bulunduğu satırdaki kullanıcılar dışında kalan bütün kullanıcılar için bu özellik etkin olacaktır. Benzer şekilde, aşağıdaki yapılandırma ile işlevselliğin belli kullanıcılar dışında kullanılmamasını da sağlayabilirsiniz:

UserDir disabled
UserDir enabled orhan yasar

Daha fazla örnek için UserDir yönergesinin açıklamasına bakabilirsiniz.

Her kullanıcıya bir CGI dizini tahsis etmek

Her kullanıcıya kendine ait bir CGI dizini vermek isterseniz, bir Directory yönergesi ile kullanıcının ev dizinindeki belli bir dizini CGI-etkin duruma getirebilirsiniz.

<Directory /home/*/public_html/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>

UserDir yönergesinde public_html belirtildiği varsayımıyla mesela.cgi betiği bu dizinden şöyle bir adresle yüklenebilir:

http://example.com/~orhan/cgi-bin/mesela.cgi
Kullanıcıların yapılandırmayı değiştirmesine izin vermek

Kullanıcıların kendilerine ayrılan bölge içinde sunucu yapılandırmasını değiştirebilmelerine izin vermek isterseniz, .htaccess dosyalarını kullanmalarına izin vermeniz gerekir. Kullanıcının değiştirmesine izin vereceğiniz yönerge türlerini AllowOverride yönergesinde belirtmeyi ihmal etmeyin. .htaccess dosyalarının kullanımı ile ilgili daha ayrıntılı bilgi için .htaccess öğreticisine bakınız.