Apache HTTP Sunucusu Sürüm 2.0

| Açıklama: | Belge ağacının parçalarının dosya sisteminin parçalarıyla eşlenmesini sağlar ve URL yönlendirmesi yapar. |
|---|---|
| Durum: | Temel |
| Modül Betimleyici: | alias_module |
| Kaynak Dosyası: | mod_alias.c |
Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin
denetlenmesini ve değiştirilmesini mümkün kılar. Alias ve ScriptAlias yönergeleri URL’lerin dosya sisteminin
dizinlerine eşlenmesini sağlar. Böylece, kök dizini DocumentRoot ile belirtilen site belge ağacı
altında bulunmayan içeriğe erişmek mümkün olur. ScriptAlias yönergesi buna ek olarak
hedef dizini sadece CGI betiklerini içeren dizin olarak imler.
Redirect yönergesi,
farklı bir URL ile yeni bir istek yapmaları için istemcileri
yönlendirmekte kullanılır. Çoğunlukla özkaynak başka bir yere
taşındığında kullanılır.
mod_alias modülü basit URL değiştirme görevlerini
yerine getirmek için tasarlanmıştır. Sorgu dizgelerini işleme sokmak
gibi daha karmaşık görevler için mod_rewrite modülü ile
sağlanan araçlar kullanılır.
Farklı bağlamlarda bulunan Alias ve Redirect
yönergeleri standart katıştırma
kuralları ile ilgili diğer yönergeler gibi işleme sokulurlar. Fakat
aynı bağlam dahilinde (örneğin, aynı <VirtualHost> bölümünde) çok fazla Alias ve Redirect varsa bunlar belli bir sıraya göre işleme
sokulur.
İlk adımda, Alias’lardan önce
bütün Redirect yönergeleri
işleme sokulur. Bu bakımdan bir Redirect veya RedirectMatch ile eşleşen bir istek için
hiçbir Alias
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
sıraya göre Redirect ve
Alias yönergeleri işleme
sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.
İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin aşağıdaki yapılandırma beklendiği gibi çalışacaktır:
Alias /foo/bar /baz
Alias /foo /gaz
Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
/foo rumuzu daima /foo/bar rumuzundan önce
eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.
| Açıklama: | URL’leri dosya sistemi konumlarıyla eşler. |
|---|---|
| Sözdizimi: | Alias URL-yolu
dosya-yolu|dizin-yolu |
| Bağlam: | sunucu geneli, sanal konak |
| Durum: | Temel |
| Modül: | mod_alias |
Alias yönergesi, belgelerin DocumentRoot dizininden farklı bir yerde
saklanmasını mümkün kılar. URL-yolu ile başlayan
URL’ler (% imlemesi çözüldükten sonra) dizin-yolu
ile başlayan yerel dosyalarla eşlenir. URL-yolu,
harf büyüklüğüne duyarsız sistemlerde bile harf büyüklüğüne
duyarlıdır.
Alias /image /ftp/pub/image
http://sunucum/image/foo.gif şeklinde bir istek, sunucunun
/ftp/pub/image/foo.gif dosyasıyla yanıt vermesine sebep
olurdu.
URL-yolu’nu bir / ile
sonlandırırsanız Alias yönergesini yorumlarken
sunucunun da sona bir / ekleyeceğine dikkat ediniz. Yani,
eğer
Alias /icons/ /usr/local/apache/icons/diye bir tanım yaparsanız /icons URL’si için bir
Alias kullanılmayacaktır.
Alias hedefleri için ek <Directory> bölümleri
belirtmeniz gerekebileceğine dikkat ediniz. <Directory> bölümlerinden önce yer alan
Alias yönergelerine özellikle bakılır,
dolayısıyla sadece Alias hedefleri etkilenir.
(Bununla birlikte, Alias yönergelerinden önce
işleme sokulan <Location> bölümlerinin uygulanacağına dikkat
ediniz.)
Özellikle, DocumentRoot dışında
bir dizine bir Alias oluşturuyorsanız hedef
dizine doğrudan erişim izni vermeniz gerekebilir.
Alias /image /ftp/pub/image
<Directory /ftp/pub/image>
Order allow,deny
Allow from all
</Directory>
| Açıklama: | URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak eşler. |
|---|---|
| Sözdizimi: | AliasMatch düzenli-ifade
dosya-yolu|dizin-yolu |
| Bağlam: | sunucu geneli, sanal konak |
| Durum: | Temel |
| Modül: | mod_alias |
Bu yönerge URL-yolu ile eşleşmek üzere bir
→ düzenli ifade kabul etmesi dışında
Alias yönergesine eşdeğerdir.
Belirtilen düzenli ifade URL-yolu ile eşleşiyorsa
sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak dosya yolunu
elde eder. Örneğin, /icons dizinini etkinleştirmek için şu
yazılabilir:
AliasMatch ^/icons(.*) /usr/local/apache/icons$1
Ayrıca, URL-yolu ile harf büyüklüğüne duyarsız
eşleşmeler sağlayacak düzenli ifadeler de kullanılabilir:
AliasMatch (?i)^/image(.*) /ftp/pub/image$1
| Açıklama: | İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye yönlendirir. |
|---|---|
| Sözdizimi: | Redirect [durum] URL-yolu
URL |
| Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess |
| Geçersizleştirme: | FileInfo |
| Durum: | Temel |
| Modül: | mod_alias |
Redirect yönergesi istemciye bir yönlendirme
isteği döndürerek eski URL’yi yenisiyle eşler.
Eski URL-yolu bir bölü çizgisi ile başlar ve harf
büyüklüğüne duyarlıdır (% imlemesi çözüldükten sonra).
URL-yolu olarak göreli yollara izin verilmez.
URL ise bir şema ve konak ismi ile başlayan bir
mutlak URL olmalıdır.
Redirect /hizmet http://iki.mesela.dom/hizmet
İstemcinin yaptığı http://mesela.dom/hizmet/fesmekan.txt
isteğine karşılık istemciye isteği
http://iki.mesela.dom/hizmet/fesmekan.txt olarak yapması
söylenecektir.
Yapılandırma dosyasında yer alış sırasına bakmaksızın
Redirect yönergeleri
Alias ve ScriptAlias
yönergelerinden önce ele alınır. <Directory> bölümleri ve .htaccess
dosyaları içinde bile kullanılsa URL-yolu göreli
bir yol değil, tam nitelikli bir URL olmak zorundadır.
Herhangi bir durum belirtilmemişse "geçici"
yönlendirme (HTTP durum kodu: 302) yapılır. Bu, istemciye özkaynağın
geçici olarak başka yere taşındığını belirtir. Diğer HTTP durum
kodlarını döndürmek için kullanılabilecek durum
değerleri:
permanenttempseeothergoneURL
belirtilmez.Diğer durum kodları için durum olarak sayısal
durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir
URL belirtmek gereklidir, yoksa belirtilmez.
Belirtilecek durum kodunu Apache’nin bilmesi gerektiğine dikkat ediniz
(http_protocol.c dosyasında bulunan
send_error_response işlevine bakınız).
Redirect permanent /bir http://mesela.dom/iki
Redirect 303 /yedi http://mesela.dom/baskabisey
| Açıklama: | Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici yönlendirme gönderir. |
|---|---|
| Sözdizimi: | RedirectMatch [durum] düzenli-ifade
URL |
| Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess |
| Geçersizleştirme: | FileInfo |
| Durum: | Temel |
| Modül: | mod_alias |
Bu yönerge URL-yolu ile eşleşmek üzere bir
→ düzenli ifade kabul etmesi dışında
Redirect yönergesine
eşdeğerdir. Belirtilen düzenli ifade URL-yolu ile
eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak
dosya yolunu elde eder. Örneğin, tüm GIF dosyası isteklerini başka bir
sunucudaki aynı isimli JPEG dosyalarına yönlendirmek için şu
yazılabilir:
RedirectMatch (.*)\.gif$ http://baska.sunucu.dom$1.jpg
| Açıklama: | İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir URL’ye yönlendirir. |
|---|---|
| Sözdizimi: | RedirectPermanent URL-yolu URL |
| Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess |
| Geçersizleştirme: | FileInfo |
| Durum: | Temel |
| Modül: | mod_alias |
Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür.
Yani, Redirect permanent ile aynı işi yapar.
| Açıklama: | İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir URL’ye yönlendirir. |
|---|---|
| Sözdizimi: | RedirectTemp URL-yolu URL |
| Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess |
| Geçersizleştirme: | FileInfo |
| Durum: | Temel |
| Modül: | mod_alias |
Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür.
Yani, Redirect temp ile aynı işi yapar.
| Açıklama: | Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır. |
|---|---|
| Sözdizimi: | ScriptAlias URL-yolu
dosya-yolu|dizin-yolu |
| Bağlam: | sunucu geneli, sanal konak |
| Durum: | Temel |
| Modül: | mod_alias |
Hedef dizini, mod_cgi modülünün CGI betiği
yorumlayıcısı tarafından çalıştırılacak betikleri içeren dizin olarak
imlemesi dışında Alias
yönergesinin yaptığı işi yapar. URL-yolu ile
başlayan harf büyüklüğüne duyarlı URL’ler (% imlemesi çözüldükten
sonra), dosya sistemindeki bir tam yol olarak belirtilmiş
dizin-yolu ile başlayan betiklerle eşlenir.
ScriptAlias /cgi-bin/ /siteler/cgi-bin/
http://sunucum/cgi-bin/foo şeklindeki bir istek sunucunun
/siteler/cgi-bin/foo betiğini çalıştırmasına sebep olur. Bu
yapılandırma aslında şuna eşdeğerdir:
Alias /cgi-bin/ /siteler/cgi-bin/
<Location /cgi-bin >
SetHandler cgi-script
Options +ExecCGI
</Location>
DocumentRoot altına koymayınız.
ScriptAlias yönergesi URL’yi doğru yere
eşlemekten başka orayı bir CGI betikleri dizini olarak imler. CGI
betiklerinizi DocumentRoot altına
koyarsanız çalıştırmak için ScriptAlias değil,
<Directory>,
SetHandler ve Options yönergelerini örnekteki gibi kullanın:
<Directory /usr/local/apache2/htdocs/cgi-bin >
SetHandler cgi-script
Options ExecCGI
</Directory>
URL-yolu
eşleşebileceğinden, bir Directory
bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa
çıkabilir; bu bakımdan ScriptAlias yönergesini yok
sayan URL yollarının belirtilebilme olasılığı gözardı
edilmemelidir.| Açıklama: | Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak eşler ve hedefi bir CGI betiği olarak çalıştırır. |
|---|---|
| Sözdizimi: | ScriptAliasMatch düzenli-ifade
dosya-yolu|dizin-yolu |
| Bağlam: | sunucu geneli, sanal konak |
| Durum: | Temel |
| Modül: | mod_alias |
Bu yönerge URL-yolu ile eşleşmek üzere bir
→ düzenli ifade kabul etmesi dışında
ScriptAlias yönergesine
eşdeğerdir. Belirtilen düzenli ifade URL-yolu ile
eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak
dosya yolunu elde eder. Örneğin, standart /cgi-bin dizinini
etkin kılmak için şu yazılabilir:
ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1