Apache HTTP Sunucusu Sürüm 2.4

Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4 > 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 `conf/httpd.conf` ö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.

### Ayrıca bakınız:

- URL’lerin Dosya Sistemi ile Eşleştirilmesi

## Kullanıcı sayfaları dizinleri

İlgili Modüller | İlgili Yönergeler
--- | ---
`mod_userdir` | `UserDir` `DirectoryMatch` `AllowOverride`

## `UserDir` 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/html/*/sayfam

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

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

    UserDir public_html /var/html

`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 veli

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.