Açıklama: | Belge ağacının parçalarının dosya sisteminin parçalarıylaeş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
veScriptAlias
yönergeleri URL’lerin dosya sisteminin dizinlerine eşlenmesini sağlar. Böylece, kök diziniDocumentRoot
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.
Alias
,ScriptAlias
veRedirect
yönergeleri<Location>
veya<LocationMatch>
bölümleri içinde kullanıldığında hedef yolu veya URL'yi betimlemek içinifade sözdizimi kullanılabilir.
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çinmod_rewrite
modülü ile sağlanan araçlar kullanılır.
Farklı bağlamlarda bulunanAlias
veRedirect
yönergeleri standartkatıştırma kuralları ile ilgili diğer yönergeler gibi işleme sokulur. Fakat aynı bağlam dahilinde (örneğin, aynı<VirtualHost>
bölümünde) çok fazlaAlias
veRedirect
varsa bunlar belli bir sıraya göre işleme sokulurlar.
İlk adımda,Alias
’lardan önce bütünRedirect
yönergeleri işleme sokulur. Bu bakımdan birRedirect
veyaRedirectMatch
ile eşleşen bir istek için hiçbirAlias
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları sıraya göreRedirect
veAlias
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" "/gaq"
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ı.
Alias
,ScriptAlias
veRedirect
yönergeleri<Location>
veya<LocationMatch>
bölümleri içinde kullanıldığında bu yönergeler küresel olarak tanımlıAlias
,ScriptAlias
veRedirect
yönergelerinden öncelikli olur.
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, dizin |
Durum: | Temel |
Modül: | mod_alias |
Alias
yönergesi, belgelerinDocumentRoot
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://example.com/image/foo.gif
şeklinde bir istek, sunucunun/ftp/pub/image/foo.gif
dosyasıyla yanıt vermesine sebep olurdu. Sadece tam yol parçaları eşleştirilir; bu bakımdan yukarıdakiAlias
yapılandırmasıhttp://example.com/imagefoo.gif
ile eşleşmez. Düzenli ifadelerin kullanıldığı daha karmaşık eşleşmeler içinAliasMatch
yönergesine bakınız.
URL-yolu
’nu bir/
ile sonlandırırsanızAlias
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 sona bir / ekleme ihtiyacından dolayı/icons
URL’si için birAlias
kullanılmayacaktır.
Alias
hedefleri için ek<Directory>
bölümleri belirtmeniz gerekebileceğine dikkat ediniz.<Directory>
bölümlerinden önce yer alanAlias
yönergelerine özellikle bakılır, dolayısıyla sadeceAlias
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 birAlias
oluşturuyorsanız hedef dizine doğrudan erişim izni vermeniz gerekebilir.
Alias "/image" "/ftp/pub/image"<Directory "/ftp/pub/image"> Require all granted</Directory>
URL-yolu değiştirgesindeki bölü çizgilerinin sayısı istek URL-yolundakiler kadardır.
EğerAlias
yönergesi<Location>
veya<LocationMatch>
bölümleri içinde kullanılırsa URL-yolu yoksayılır ve dosya-yoluifade sözdizimi kullanılarak yorumlanır.
Bu sözdizimi Apache 2.4.19 ve sonrasında kulanılabilir.
<Location "/image"> Alias "/ftp/pub/image"</Location><LocationMatch "/error/(?<NUMBER>[0-9]+)"> Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"</LocationMatch>
Açıklama: | URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarakeş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önergeURL-yolu
ile eşleşmek üzere birdüzenli ifade kabul etmesi dışındaAlias
yönergesine eşdeğerdir. Belirtilen düzenli ifadeURL-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"
Düzenli ifadelerin tamamı kullanılabilmektedir. Örneğin,URL-yolu
ile harf büyüklüğüne duyarsız eşleşmeler sağlayacak takma adlar kullanılabilir:
AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"
Alias
veAliasMatch
yönergeleri arasındaki başlıca farkAlias
yönergesinin, URI'nin ek parçasını, eşleşen parçayı geçip sağ tarafta dosya yolunun ucuna kendiliğinden kopyalamasıdır.AliasMatch
bunu böyle yapmaz. Yani hemen her durumda, düzenli ifadenin istenen URI'nin tamamıyla baştan sona eşleşmesi ve yer değiştirmeyi sağ tarafta yapması istenir.
Başka bir deyişle, basitçeAlias
yerineAliasMatch
yazmakla aynı etkiyi alamazsınız. En azından düzenli ifadenin başına bir^
ve sonuna bir(.*)$
, ikinci değiştirgenin sonuna da bir$1
eklemeniz gerekir.
Örneğin aşağıdakini AliasMatch ile değiştirmek isteyelim:
Alias "/image/" "/ftp/pub/image/"
Bu eşdeğer DEĞİLdir - bunu yapmayın! Bu herhangi bir yerinde /image/ dizgesi bulunan tüm istekleri /ftp/pub/image/ altına gönderecektir:
AliasMatch "/image/" "/ftp/pub/image/"
Aynı etkiyi elde etmek için bu gerekiyor:
AliasMatch "^/image/(.*)$" "/ftp/pub/image/$1"
Şüphesiz,Alias
yönergesini çalıştığı yerdeAliasMatch
kullanmanın hiç gereği yoktur.AliasMatch
daha karmaşık şeyler yapmamızı sağlar. Örneğin farklı dosya çeşitlerini farklı dizinlerden sunmak isteyelim:
AliasMatch "^/image/(.*)\.jpg$" "/files/jpg.images/$1.jpg"AliasMatch "^/image/(.*)\.gif$" "/files/gif.images/$1.gif"
İstek URL'sinin başındaki bölü çizgileri, bu modüldeki yönergeler istek URL-yolu ile eşleştirilmeye çalışılmadan önce sunucu tarafından yokedilir.
Açıklama: | Map the full path after the alias in a location. |
---|---|
Sözdizimi: | AliasPreservePath OFF|ON |
Öntanımlı: | AliasPreservePath OFF |
Bağlam: | sunucu geneli, sanal konak, dizin |
Durum: | Temel |
Modül: | mod_alias |
Uyumluluk: | 2.4.58 and later |
Bu yönergenin belgesi henüz Türkçeye çevrilmedi. Lütfen İngilizce sürümüne bakınız.
Açıklama: | İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’yeyö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.
EskiURL-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 ya bir şema ve konak ismi ile başlayan bir mutlak URL ya da bir bölü çizgisi ile başlayan bir URL yolu olabilir. İkinci durumda URL yolunun başına geçerli sunucu ismi ve şemayı sunucu ekler.
URL-yolu
ile başlayan istekler istemciye hedefURL
konumuna bir yönlendirme isteği olarak dönecektir.URL-yolu
’nun devamı niteliğindeki ek yol hedef URL’ye eklenir.
# Farklı bir konaktaki bir URL'ye yönlendirmeRedirect "/hizmet" "http://iki.example.com/hizmet"# Aynı konak üzerinde yönlendirmeRedirect "/bir" "/iki"
İstemcinin yaptığıhttp://example.com/hizmet/fesmekan.txt
isteğine karşılık istemciye isteğihttp://iki.example.com/hizmet/fesmekan.txt
olarak yapması söylenecektir. BuGET
isteklerinde de geçerlidir. Örneğin,http://example.com/hizmet/foo.pl?q=23&a=42
isteğihttp://iki.example.com/hizmet/foo.pl?q=23&a=42
adresine yönlendirilir.POST
'ların iptal edileceğini unutmayın.
Sadece tam yol parçaları eşleştirilir, bu nedenlehttp://example.com/hizmetfesmekan.txt
isteği yukarıdaki yönlendirme ile eşleşmeyecektir.İfade sözdizimi kullanılan daha karmaşık eşleşmeler için URL-yolu seçeneği aşağıda açıklandığı gibi yoksayılır. Düzenli ifadelerin kullanıldığı daha karmaşık eşleşmeler içinRedirectMatch
yönergesine de bakınız.
Yapılandırma dosyasında yer alış sırasına bakmaksızınRedirect
yönergeleriAlias
veScriptAlias
yönergelerinden önce ele alınır.<Location>
bölümü içinde kullanılmış birRedirect
yönergesi URL-yolu belirtilmişRedirect
veAlias
yönergelerine göre önceliklidir.
Herhangi birdurum
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ılabilecekdurum
değerleri:
permanent
temp
seeother
gone
URL
belirtilmez.Diğer durum kodları içindurum
değiştirgesiyle sayısal durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa birURL
belirtmek gereklidir. Aksi takdirde,URL bileşeni ihmal edilmelidir. Belirtilecek durum kodunun geçerli bir HTTP Status kodu olmalı ve Apache HTTP Sunucusu kodu bilmelidir (http_protocol.c
dosyasında bulunansend_error_response
işlevine bakınız).
Redirect permanent "/bir" "http://example.com/iki"Redirect 30" "/yedi" http://example.com/baskabisey"
EğerRedirect
yönergesi URL-yolu belirtilmemiş bir<Location>
veya<LocationMatch>
bölümü içinde yer alıyorsa, URL seçeneğiifade sözdizimi kullanılarak yorumlanır.
Bu sözdizimi Apache 2.4.19 ve sonrasında kullanılabilir.
<Location "/bir"> Redirect permanent "http://example.com/iki"</Location><Location "/yedi"> Redirect 303 "http://example.com/baskabisey"</Location><LocationMatch "/error/(?<NUMBER>[0-9]+)"> Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"</LocationMatch>
Açıklama: | Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir hariciyönlendirme gönderir. |
---|---|
Sözdizimi: | RedirectMatch [durum]düzenli-ifadeURL |
Bağlam: | sunucu geneli, sanal konak, dizin, .htaccess |
Geçersizleştirme: | FileInfo |
Durum: | Temel |
Modül: | mod_alias |
Bu yönergeURL-yolu
ile eşleşmek üzere birdüzenli ifade kabul etmesi dışındaRedirect
yönergesine eşdeğerdir. Belirtilen düzenli ifadeURL-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.example.com$1.jpg"
Alias
veAliasMatch
arasındaki farklarla ilgili hususlarRedirect
veRedirectMatch
arasındakilere de uygulanır. Ayrıntılar içinAliasMatch
yönergesine bakınız.
Açıklama: | İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı birURL’ye yönlendirir. |
---|---|
Sözdizimi: | RedirectPermanentURL-yoluURL |
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: | Allows relative redirect targets. |
---|---|
Sözdizimi: | RedirectRelative On|Off |
Öntanımlı: | RedirectRelative Off |
Bağlam: | sunucu geneli, sanal konak, dizin |
Durum: | Temel |
Modül: | mod_alias |
Uyumluluk: | 2.4.58 and later |
Bu yönergenin belgesi henüz Türkçeye çevrilmedi. Lütfen İngilizce sürümüne bakınız.
Açıklama: | İstemciyi, geçici bir yönlendirme isteği döndürerek farklı birURL’ye yönlendirir. |
---|---|
Sözdizimi: | RedirectTempURL-yoluURL |
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, dizin |
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ışındaAlias
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://example.com/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>
ScriptAlias
yönergesini bir betik veya eylemci ile birlikte de kullanabilirsiniz. Örnek:
ScriptAlias "/cgi-bin/" "/siteler/cgi-handler.pl"
Bu senaryoda/cgi-bin/
’den istenen tüm dosyalar sizin belirttiğiniz dosya tarafından işleme sokulacaktır. Bu yöntemle kendi özel eylemcinizi kullanabilirsiniz. İsterseniz, bunu içerik eklemek ya da ısmarlama bir eylem için bir CGI sarmalayıcısı olarak da kullanabilirsiniz.
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 betikleriniziDocumentRoot
altına koyarsanız çalıştırmak içinScriptAlias
değil,<Directory>
,SetHandler
veOptions
yönergelerini örnekteki gibi kullanın:<Directory "/usr/local/apache2/htdocs/cgi-bin" > SetHandler cgi-script Options ExecCGI</Directory>Aynı dosya sistemi konumu ile çok sayıda
URL-yolu
eşleşebileceğinden, birDirectory
bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa çıkabilir; bu bakımdanScriptAlias
yönergesini yok sayan URL yollarının belirtilebilme olasılığı gözardı edilmemelidir.EğerScriptAlias
yönergesi URL-yolu belirtilmemiş bir<Location>
veya<LocationMatch>
bölümü içinde yer alıyorsa, URL seçeneğiifade sözdizimi kullanılarak yorumlanır.
Bu sözdizimi Apache 2.4.19 ve sonrasında kullanılabilir.
<Location "/cgi-bin"> ScriptAlias "/siteler/cgi-bin/"</Location><LocationMatch "/cgi-bin/errors/(?<NUMBER>[0-9]+)"> ScriptAlias "/siteler/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"</LocationMatch>
Açıklama: | Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarakeşler ve hedefi bir CGI betiği olarak çalıştırır. |
---|---|
Sözdizimi: | ScriptAliasMatchdüzenli-ifadedosya-yolu|dizin-yolu |
Bağlam: | sunucu geneli, sanal konak |
Durum: | Temel |
Modül: | mod_alias |
Bu yönergeURL-yolu
ile eşleşmek üzere birdüzenli ifade kabul etmesi dışındaScriptAlias
yönergesine eşdeğerdir. Belirtilen düzenli ifadeURL-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"
AliasMatch yönergesindeki gibi,düzenli ifadelerin tamamı tüm güçleriyle kullanılabilmektedir. Örneğin,URL-yolu
için harf büyüklüğüne duyarsız eşleşmeli bir takma ad oluşturmak mümkünür:
ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
Alias
veAliasMatch
arasındaki farklarla ilgili hususlarScriptAlias
veScriptAliasMatch
arasındakilere de uygulanır. Ayrıntılar içinAliasMatch
yönergesine bakınız.
Copyright 2025 The Apache Software Foundation.
Apache License, Version 2.0 altında lisanslıdır.