Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin
denetlenmesini ve değiştirilmesini mümkün kılar.
Farklı bağlamlarda bulunan
İlk adımda,
İ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:
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ı.
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.
http://mesela.dom/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ıdaki
http://mesela.dom/imagefoo.gif ile eşleşmez. Düzenli
ifadelerin kullanıldığı daha karmaşık eşleşmeler için
URL-yolu’nu bir / ile
sonlandırırsanız / ekleyeceğine dikkat ediniz. Yani,
eğer
Alias /icons/ /usr/local/apache/icons/diye bir tanım yaparsanız /icons URL’si için, sonunda bir /
yokmuşçasına bir
Özellikle,
URL-yolu değiştirgesindeki bölü çizgilerinin tamamı istekteki URL-yolunun içinde bulunan bölü çizgileri ile eşleşir.
Bu yönerge URL-yolu ile eşleşmek üzere bir
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:
URL-yolu ile harf büyüklüğüne
duyarsız eşleşmeler sağlayacak düzenli ifadeler kullanılabilir:
Başka bir deyişle, ^ ve
sonuna (.*)$ ekledikten sonra yer değiştirme parçasının sonuna
da $1 eklemeniz gerekir.
Örneğin, bunu AliasMatch ile değiştirmek istediğinizi varsayalım:
Bu aynı şey değildir; bunu yapmayın! Bu, herhangi bir yerinde /image/ içeren tüm istekleri /ftp/pub/image/ dizinine gönderecektir:
Aynı etkiyi elde etmek için yapacağınız bu olacaktır:
Şüphesiz,
Bu modüldeki yönergeler istekteki URL-yolu ile karşılaştırılmadan önce istenen URL'nin başlangıcındaki bölü çizgilerini sunucu temizler.
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 ya bir şema ve konak ismi ile başlayan bir
mutlak URL olmalıdır. Apache HTTP Sucusu 2.2.6 ve sonrasında bir bölü
çizgisi ile başlayan bir URL yolu belirtilebilmektedir; bu durumda URL
yolunun başına geçerli sunucu ismi ve şemayı sunucu ekler.
URL-yolu ile başlayan istekler istemciye hedef
URL konumuna bir yönlendirme isteği olarak
dönecektir. URL-yolu’nun devamı niteliğindeki ek
yol hedef URL’ye eklenir.
İ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. Sadece tam yol parçaları eşleştirilir, bu nedenle
http://mesela.dom/hizmetfesmekan.txt isteği yukarıdaki
yönlendirme ile eşleşmeyecektir. Düzenli ifadelerin kullanıldığı daha
karmaşık eşleşmeler için
Yapılandırma dosyasında yer alış sırasına bakmaksızın
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).
Bu yönerge URL-yolu ile eşleşmek üzere bir
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:
Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür.
Yani, Redirect temp ile aynı işi yapar.
Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür.
Yani, Redirect permanent ile aynı işi yapar.
Hedef dizini, 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.
http://mesela.dom/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:
URL-yolu
eşleşebileceğinden, bir Bu yönerge URL-yolu ile eşleşmek üzere bir
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:
AliasMatch'teki gibi, burada da