Apache HTTP Sunucusu Sürüm 2.4

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

# Apache Modülü mod_vhost_alias

Açıklama: | Kitlesel sanal konakların devingen olarak yapılandırılmasını sağlar
Durum: | Eklenti
Modül Betimleyici: | vhost_alias_module
Kaynak Dosyası: | mod_vhost_alias.c

### Özet

Bu modül, hangi dosyaların sunulacağını saptamak için dosya yolunun parçası olarak HTTP isteğinin `Host:` başlığının ve/veya IP adresinin kullanılmasını mümkün kılarak devingen yapılandırmalı sanal konaklar oluşturur. Böylece benzer yapılandırmaya sahip çok büyük sayıda sanal konak kullanımı kolaşlaşır.

### Bilginize

URI’leri dosya isimlerine dönüştürmek için `mod_alias` veya `mod_userdir` kullanılmışsa bunlar `mod_vhost_alias` yönergeleri tarafından aşağıda açıklandığı gibi geçersiz kılınırlar. Örneğin, aşağıdaki yapılandırma her durumda `/cgi-bin/script.pl` betiğini `/usr/local/apache2/cgi-bin/script.pl` betiğine eşleyecektir:

    ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
    VirtualScriptAlias "/nerede/bilinmiyor/%0/cgi-bin/"

### Konular

- Dizin İsimlerinin Elde Edilmesi
- Örnekler

### Yönergeler

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

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

- `UseCanonicalName`
- Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma

## Dizin İsimlerinin Elde Edilmesi

Bu modüldeki tüm yönergeler bir dizgeyi bir dosya yoluna dönüştürerek çalışırlar. Dönüşüm dizgesi (bundan sonra “isim” diyeceğiz) ya sunucu ismi olur (bunun nasıl belirlendiğini öğrenmek için `UseCanonicalName` yönergesine bakınız) ya da sunucu üzerindeki sanal konağın IP adresi olur. Dönüşümü, `printf`’inkilerin benzeri birkaç biçem belirteci denetler:

`%%` | Bir `%` imi yerleştirir.
`%p` | Sanal konağın IP adresini yerleştirir.
`%N.M` | İsmin parçalarını yerleştirir.

`N` ve `M` ismin alt dizgelerini belirtmek için kullanılır. `N`, ismin noktalarla ayrılmış bileşenlerinden seçim yaparken `M`, `N` ile seçilen parçadan karakter seçmekte kullanılır. `M` isteğe bağlı olup mevcut olmaması halinde öntanımlı olarak sıfırdır. Noktanın varlığı `M`’nin varlığına bağlıdır. Dönüşüm şöyle uygulanır:

`0` | ismin tamamı
`1` | ilk parça
`2` | ikinci parça
`-1` | son parça
`-2` | sondan bir önceki parça
`2+` | ikinci parça ve sonraki parçaların hepsi
`-2+` | sondan bir önceki parça ve daha önceki parçaların hepsi
`1+` ve `-1+` | `0` ile aynı

`N` veya `M` parça sayısından büyükse dönüşüm dizgesi sadece alt çizgi karakterini içerir.

## Örnekler

Sunucu yapılandırma dosyanızda isme dayalı sanal konaklar için aşağıdaki yönergeler kullanılıyor olsun:

    UseCanonicalName    Off
    VirtualDocumentRoot "/usr/local/apache/sankonlar/%0"

`http://example.com/dizin/dosya.html` için yapılan bir istek `/usr/local/apache/sankonlar/example.com/dizin/dosya.html` dosyası ile yerine getirilecektir.

Çok büyük sayıda sanal konak için `sankonlar` dizininin boyutlarını küçük tutmak amacıyla dosyalar düzenlenebilir. Bunu yapılandırma dosyanızda şöyle yapabilirsiniz:

    UseCanonicalName    Off
    VirtualDocumentRoot "/usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2"

`http://falan.filan.example.com/dizin/dosya.html` için yapılan bir istek `/usr/local/apache/sankonlar/example.com/f/i/l/filan/dizin/dosya.html` ile yerine getirilecektir.

Bu sefer de parçaları ismin sonundan toplayalım:

    VirtualDocumentRoot "/usr/local/apache/sankonlar/%3+/%2.-1/%2.-2/%2.-3/%2"

Bu durumda istek `/usr/local/apache/sankonlar/example.com/n/a/l/filan/dizin/dosya.html` ile karşılanırdı.

Şöyle bir şey de yapabilirsiniz:

    VirtualDocumentRoot "/usr/local/apache/sankonlar/%3+/%2.1/%2.2/%2.3/%2.4+"

Bu örnek için istek `/usr/local/apache/sankonlar/example.com/f/i/l/an/dizin/dosya.html` dosyasından karşılanırdı.

Kullanıcıların çoğunun ortak isteği, istenen konak adının uzunluğu veya sayısı için endişelenmeksizin çok sayıda belge köküne çok sayıda alan adından erişilebilmesidir. Eğer istenen konak adı `www.domain.example.com` değil de `sub.www.domain.example.com` ise %3+ kullanımı, belge kök dizininin düşünüldüğü gibi `example.com` değil `/usr/local/apache/vhosts/domain.example.com/...` olmasını sağlar. Böyle durumlarda, daima alan adı ve tld ile sonuçlanan `%-2.0.%-1.0` birleşiminin kullanımı daha yararlı olabilir. Böylece, tüm ilk, ikinci ve üçüncü seviye alt alan adlarını aynı dizine yönlendirecek bir yapılandırma yapılabilir:

    VirtualDocumentRoot "/usr/local/apache/vhosts/%-2.0.%-1.0"

Yukarıdaki örnekte, `example.com`, `www.example.com` ve hatta `www.sub.example.com` bile `/usr/local/apache/vhosts/example.com` dizinine yönlendirilecektir.

IP’ye dayalı sanal konaklar için yapılandırma dosyanızda şu satırlar olabilirdi:

    UseCanonicalName DNS
    VirtualDocumentRootIP "/usr/local/apache/sankonlar/%1/%2/%3/%4/belgeler"
    VirtualScriptAliasIP  "/usr/local/apache/sankonlar/%1/%2/%3/%4/cgi-bin"

`http://falan.filan.example.com/dizin/dosya.html` için yapılan bir istek eğer `falan.filan.example.com`’un IP adresi 10.20.30.40 olsaydı, `/usr/local/apache/sankonlar/10/20/30/40/belgeler/dizin/dosya.html` dosyası ile karşılanırdı. `http://falan.filan.example.com/cgi-bin/betik.pl` için yapılan bir istek ise `/usr/local/apache/sankonlar/10/20/30/40/cgi-bin/betik.pl` betiğinin çalıştırılması ile sağlanırdı.

Bir `VirtualDocumentRoot` yönergesinin `.` karakterini içermesini isterseniz, bir biçem belirteci ile karışıklığa sebep olmaksızın bunu şöyle sağlayabilirsiniz:

    VirtualDocumentRoot "/usr/local/apache/sankonlar/%2.0.%3.0"

Bu durumda `http://falan.filan.example.com/dizin/dosya.html` için yapılan bir istek `/usr/local/apache/sankonlar/filan.mesela/dizin/dosya.html` dosyası ile karşılanacaktır.

`LogFormat` yönergesinin `%V` ve `%A` biçem belirteçleri bu modülle birlikte kullanıldığında çok yararlı olurlar.

## VirtualDocumentRoot Yönergesi

Açıklama: | Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
Sözdizimi: | `VirtualDocumentRoot hesaplanan-dizin|none`
Öntanımlı: | `VirtualDocumentRoot none`
Bağlam: | sunucu geneli, sanal konak
Durum: | Eklenti
Modül: | mod_vhost_alias

`VirtualDocumentRoot` yönergesi sunucu ismine göre belgelerin bulunacağı yeri Apache HTTP Sunucusunun saptamasını sağlar. `hesaplanan-dizin`’in dönüşüm sonucu `DocumentRoot` yönergesinin değeriymiş gibi belge ağacının kök dizini olarak kullanılır. `hesaplanan-dizin` yerine `none` belirtilmişse `VirtualDocumentRoot` iptal edilmiş olur. Bu yönerge `VirtualDocumentRootIP` yönergesinin kullanıldığı bağlamda yer alamaz.

### Bilginize

`VirtualDocumentRoot` yönergesi aynı bağlamda veya alt bağlamlarda da kullanılabilen `DocumentRoot` yönergelerini geçersiz kılar. Genel sunucu etki alanına bir `VirtualDocumentRoot` konulması, daha sonra yer alan her sanal konak tanımı içinde `VirtualDocumentRoot` yönergesine `None` atamadıkça bu sanal konaklarda yapılmış `DocumentRoot` atamalarını geçersiz kılacaktır.

## VirtualDocumentRootIP Yönergesi

Açıklama: | Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
Sözdizimi: | `VirtualDocumentRootIP hesaplanan-dizin|none`
Öntanımlı: | `VirtualDocumentRootIP none`
Bağlam: | sunucu geneli, sanal konak
Durum: | Eklenti
Modül: | mod_vhost_alias

`VirtualDocumentRootIP` yönergesi, dizinin saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP adresini kullanması dışında `VirtualDocumentRoot` gibidir.

## VirtualScriptAlias Yönergesi

Açıklama: | Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
Sözdizimi: | `VirtualScriptAlias hesaplanan-dizin|none`
Öntanımlı: | `VirtualScriptAlias none`
Bağlam: | sunucu geneli, sanal konak
Durum: | Eklenti
Modül: | mod_vhost_alias

`VirtualScriptAlias` yönergesi, CGI betiklerinin bulunacağı yeri Apache httpd’nin saptamasını sağlamak bakımından `VirtualDocumentRoot` yönergesinin yaptığını yapar. `/cgi-bin/` ile başlayan istekler için ise `ScriptAlias` yönergesinin yaptığını yapar.

## VirtualScriptAliasIP Yönergesi

Açıklama: | Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
Sözdizimi: | `VirtualScriptAliasIP hesaplanan-dizin|none`
Öntanımlı: | `VirtualScriptAliasIP none`
Bağlam: | sunucu geneli, sanal konak
Durum: | Eklenti
Modül: | mod_vhost_alias

`VirtualScriptAliasIP` yönergesi, dizinin saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP adresini kullanması dışında `VirtualScriptAlias` gibidir.