<-
Apache > HTTP Sunucusu > Belgeleme > Modüller

Apache Modülü mod_alias 5x2928

Mevcut Diller:  tr 

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

Özet 4k5t5c

Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin denetlenmesini ve değiştirilmesini mümkün kılar. 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.

ifade sözdizimi kullanılabilir.

mod_rewrite modülü ile sağlanan araçlar kullanılır.

 Apache!

Konular 3k3v40

Yönergeler 76xu

Bulunan hatalar 296l73

Ayrıca bakınız: 57581q

top

İşlem Sırası 504y57

Farklı bağlamlarda bulunan Redirect varsa bunlar belli bir sıraya göre işleme sokulurlar.

İlk adımda, 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" "/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ı.

Redirect yönergelerinden öncelikli olur.

top

Alias Yönergesi 1w4g28

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, 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://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ıdaki Alias yapılandırması http://example.com/imagefoo.gif ile eşleşmez. Düzenli ifadelerin kullanıldığı daha karmaşık eşleşmeler için AliasMatch yönergesine bakınız.

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 sona bir / ekleme ihtiyacından dolayı /icons URL’si için bir Alias kullanılmayacaktır.

Alias hedefleri için ek <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">
    Require all granted
</Directory>

URL-yolu değiştirgesindeki bölü çizgilerinin sayısı istek URL-yolundakiler kadardır.

Eğer Alias yönergesi ifade 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/(">
    Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"
</LocationMatch>
top

AliasMatch Yönergesi m5j1b

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 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"

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"

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çe AliasMatch 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, 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.

top

Redirect Yönergesi 1j3g49

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 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 hedef URL 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önlendirme
Redirect "/hizmet" "http://iki.example.com/hizmet"

# Aynı konak üzerinde yönlendirme
Redirect "/bir" "/iki"

İstemcinin yaptığı http://example.com/hizmet/fesmekan.txt isteğine karşılık istemciye isteği http://iki.example.com/hizmet/fesmekan.txt olarak yapması söylenecektir. Bu GET isteklerinde de geçerlidir. Örneğin, http://example.com/hizmet/foo.pl?q=23&a=42 isteği http://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 nedenle http://example.com/hizmetfesmekan.txt isteği yukarıdaki yönlendirme ile eşleşmeyecektir. RedirectMatch yönergesine de bakınız.

Bilginize 5h6b4n

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. <Location> bölümü içinde kullanılmış bir Redirect yönergesi URL-yolu belirtilmiş Redirect ve Alias yönergelerine göre önceliklidir.

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:

permanent
İstemciye özkaynağın kalıcı olarak taşındığını belirten kalıcı yönlendirme durumu (301) döndürülür.
temp
İstemciye geçici yönlendirme durumu (302) döner. Bu öntanımlıdır.
seeother
İstemciye özkaynağın yerine başka bir şey konduğunu belirten "diğerine bak" durumu (303) döndürülür.
gone
İstemciye özkaynağın kalıcı olarak kaldırıldığını belirten "ölü bağlantı" durumu (410) döner. Bu durumda URL belirtilmez.

Diğer durum kodları için durum değiştirgesiyle sayısal durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir URL 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 bulunan send_error_response işlevine bakınız).

Redirect permanent "/bir" "http://example.com/iki"
Redirect 30" "/yedi" http://example.com/baskabisey"

Eğer Redirect yönergesi URL-yolu belirtilmemiş bir ifade 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/(">
    Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
</LocationMatch>
top

RedirectMatch Yönergesi 1y3gd

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 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.example.com$1.jpg"

AliasMatch yönergesine bakınız.

top

RedirectPermanent Yönergesi 5y1d2y

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.

top

RedirectTemp Yönergesi 721039

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.

top

ScriptAlias Yönergesi 4ad2r

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, 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://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.

Yapılandırma değiştiğinde kaynak kodlarının ister istemez açığa çıkmasını istemiyorsanız CGI betiklerinizi Options 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, 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.

Eğer ScriptAlias yönergesi URL-yolu belirtilmemiş bir ifade 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/(">
    ScriptAlias "/siteler/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"
</LocationMatch>

Ayrıca bakınız: 57581q

top

ScriptAliasMatch Yönergesi 485n6x

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 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"

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"

AliasMatch yönergesine bakınız.

Mevcut Diller:  tr 

top

Yorumlar 3y13v

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our s if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.