Apache HTTP Sunucusu Sürüm 2.4

| 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.
Alias,
      ScriptAlias ve 
      Redirect yönergeleri
      <Location>
      veya <LocationMatch>
      bölümleri içinde kullanıldığında hedef yolu veya URL'yi betimlemek için 
      ifade 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ç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 sokulur. 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 sokulurlar.
İ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" "/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 ve 
      Redirect yönergeleri
      <Location>
      veya <LocationMatch>
      bölümleri içinde kullanıldığında bu yönergeler küresel olarak tanımlı
      Alias,
      ScriptAlias ve 
      Redirect 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, 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 <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">
    Require all granted
</Directory>
    URL-yolu değiştirgesindeki bölü çizgilerinin sayısı istek URL-yolundakiler kadardır.
Eğer Alias yönergesi
      <Location>
      veya <LocationMatch>
      bölümleri içinde kullanılırsa URL-yolu yoksayılır ve dosya-yolu 
      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/(?<NUMBER>[0-9]+)">
    Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"
</LocationMatch>
  
| 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"
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
      ve AliasMatch yönergeleri
      arasındaki başlıca fark Alias
      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çe
      Alias yerine
      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, Alias yönergesini
      çalıştığı yerde AliasMatch
      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: | İ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. İ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çin RedirectMatch
      yönergesine de bakınız.
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:
permanenttempseeothergoneURL
        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 <Location>
      veya <LocationMatch>
      bölümü içinde yer alıyorsa, URL seçeneği 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/(?<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 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.example.com$1.jpg"
Alias ve
      AliasMatch arasındaki farklarla
      ilgili hususlar Redirect ve
      RedirectMatch arasındakilere de
      uygulanır. Ayrıntılar için  AliasMatch yönergesine bakınız.
| 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, 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ışı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://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
      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>
     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 <Location>
      veya <LocationMatch>
      bölümü içinde yer alıyorsa, URL seçeneği 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/(?<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 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"
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 ve
      AliasMatch arasındaki farklarla
      ilgili hususlar ScriptAlias ve
      ScriptAliasMatch arasındakilere
      de uygulanır. Ayrıntılar için  AliasMatch yönergesine bakınız.