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.
URI’leri dosya isimlerine dönüştürmek için /cgi-bin/script.pl
betiğini
/usr/local/apache2/cgi-bin/script.pl
betiğine eşleyecektir:
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 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.
Sunucu yapılandırma dosyanızda isme dayalı sanal konaklar için aşağıdaki yönergeler kullanılıyor olsun:
http://mesela.dom/dizin/dosya.html
için yapılan bir istek
/usr/local/apache/sankonlar/mesela.dom/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:
http://falan.filan.mesela.dom/dizin/dosya.html
için
yapılan bir istek
/usr/local/apache/sankonlar/mesela.dom/f/i/l/filan/dizin/dosya.html
ile yerine getirilecektir.
Bu sefer de parçaları ismin sonundan toplayalım:
Bu durumda istek
/usr/local/apache/sankonlar/mesela.dom/n/a/l/filan/dizin/dosya.html
ile karşılanırdı.
Şöyle bir şey de yapabilirsiniz:
Bu örnek için istek
/usr/local/apache/sankonlar/mesela.dom/f/i/l/an/dizin/dosya.html
dosyasından karşılanırdı.
IP’ye dayalı sanal konaklar için yapılandırma dosyanızda şu satırlar olabilirdi:
http://falan.filan.mesela.dom/dizin/dosya.html
için
yapılan bir istek eğer falan.filan.mesela.dom
’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.mesela.dom/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:
Bu durumda http://falan.filan.mesela.dom/dizin/dosya.html
için yapılan bir istek
/usr/local/apache/sankonlar/filan.mesela/dizin/dosya.html
dosyası ile karşılanacaktır.
%V
ve %A
biçem belirteçleri bu modülle
birlikte kullanıldığında çok yararlı olurlar.
hesaplanan-dizin
’in dönüşüm sonucu hesaplanan-dizin
yerine none
belirtilmişse
/cgi-bin/
ile başlayan istekler için ise