blob: 6787c3227932d96e20146b7bb92c5aa19098b731 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
<!-- English Revision: 1756708 -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr>
Reviewed by: Orhan Berent <berent belgeler.gen.tr>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<modulesynopsis metafile="mod_alias.xml.meta">
<name>mod_alias</name>
<description>Belge ağacının parçalarının dosya sisteminin parçalarıyla
eşlenmesini sağlar ve URL yönlendirmesi yapar.</description>
<status>Base</status>
<sourcefile>mod_alias.c</sourcefile>
<identifier>alias_module</identifier>
<summary>
<p>Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin
denetlenmesini ve değiştirilmesini mümkün kılar. <directive
module="mod_alias" >Alias</directive> ve <directive module="mod_alias"
>ScriptAlias</directive> yönergeleri URL’lerin dosya sisteminin
dizinlerine eşlenmesini sağlar. Böylece, kök dizini <directive
module="core">DocumentRoot</directive> ile belirtilen site belge ağacı
altında bulunmayan içeriğe erişmek mümkün olur. <directive
module="mod_alias" >ScriptAlias</directive> yönergesi buna ek olarak
hedef dizini sadece CGI betiklerini içeren dizin olarak imler.</p>
<p><directive module="mod_alias">Redirect</directive> 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.</p>
<p><directive module="mod_alias">Alias</directive>,
<directive module="mod_alias">ScriptAlias</directive> ve
<directive module="mod_alias">Redirect</directive> yönergeleri
<directive type="section" module="core">Location</directive>
veya <directive type="section" module="core">LocationMatch</directive>
bölümleri içinde kullanıldığında hedef yolu veya URL'yi betimlemek için
<a href="../expr.html">ifade sözdizimi</a> kullanılabilir.
</p>
<p><module>mod_alias</module> 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 <module>mod_rewrite</module> modülü ile
sağlanan araçlar kullanılır.</p>
</summary>
<seealso><module>mod_rewrite</module></seealso> <seealso><a
href="../urlmapping.html">URL’lerin Dosya sistemi ile Eşlenmesi</a>
</seealso>
<section id="order"><title>İşlem Sırası</title>
<p>Farklı bağlamlarda bulunan <directive module="mod_alias"
>Alias</directive> ve <directive module="mod_alias">Redirect</directive>
yönergeleri standart <a href="../sections.html#mergin">katıştırma
kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat
aynı bağlam dahilinde (örneğin, aynı <directive type="section"
module="core">VirtualHost</directive> bölümünde) çok fazla <directive
module="mod_alias" >Alias</directive> ve <directive
module="mod_alias">Redirect</directive> varsa bunlar belli bir
sıraya göre işleme sokulurlar.</p>
<p>İlk adımda, <directive module="mod_alias">Alias</directive>’lardan önce
bütün <directive module="mod_alias">Redirect</directive> yönergeleri
işleme sokulur. Bu bakımdan bir <directive module="mod_alias"
>Redirect</directive> veya <directive module="mod_alias"
>RedirectMatch</directive> ile eşleşen bir istek için
hiçbir <directive module="mod_alias" >Alias</directive>
uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
sıraya göre <directive module="mod_alias" >Redirect</directive> ve
<directive module="mod_alias" >Alias</directive> yönergeleri işleme
sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
<p>İ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:</p>
<highlight language="config">
Alias "/foo/bar" "/baz"
Alias "/foo" "/gaq"
</highlight>
<p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
<code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce
eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
<p><directive module="mod_alias">Alias</directive>,
<directive module="mod_alias">ScriptAlias</directive> ve
<directive module="mod_alias">Redirect</directive> yönergeleri
<directive type="section" module="core">Location</directive>
veya <directive type="section" module="core">LocationMatch</directive>
bölümleri içinde kullanıldığında bu yönergeler küresel olarak tanımlı
<directive module="mod_alias">Alias</directive>,
<directive module="mod_alias">ScriptAlias</directive> ve
<directive module="mod_alias">Redirect</directive> yönergelerinden öncelikli olur.
</p>
</section>
<directivesynopsis>
<name>Alias</name>
<description>URL’leri dosya sistemi konumlarıyla eşler.</description>
<syntax>Alias [<var>URL-yolu</var>] <var>dosya-yolu</var> |
<var>dizin-yolu</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context>
</contextlist>
<usage>
<p><directive>Alias</directive> yönergesi, belgelerin <directive
module="core">DocumentRoot</directive> dizininden farklı bir yerde
saklanmasını mümkün kılar. <code><em>URL-yolu</em></code> ile başlayan
URL’ler (% imlemesi çözüldükten sonra) <code><em>dizin-yolu</em></code>
ile başlayan yerel dosyalarla eşlenir. <code><em>URL-yolu</em></code>,
harf büyüklüğüne duyarsız sistemlerde bile harf büyüklüğüne
duyarlıdır.</p>
<highlight language="config">
Alias "/image" "/ftp/pub/image"
</highlight>
<p><code>http://example.com/image/foo.gif</code> şeklinde bir istek,
sunucunun <code>/ftp/pub/image/foo.gif</code> dosyasıyla yanıt vermesine
sebep olurdu. Sadece tam yol parçaları eşleştirilir; bu bakımdan
yukarıdaki <directive>Alias</directive> yapılandırması
<code>http://example.com/imagefoo.gif</code> ile eşleşmez. Düzenli
ifadelerin kullanıldığı daha karmaşık eşleşmeler için <directive
module="mod_alias" >AliasMatch</directive> yönergesine bakınız.</p>
<p><code><em>URL-yolu</em></code>’nu bir <code>/</code> ile
sonlandırırsanız <directive>Alias</directive> yönergesini yorumlarken
sunucunun da sona bir <code>/</code> ekleyeceğine dikkat ediniz. Yani,
eğer</p>
<highlight language="config">
Alias "/icons/" "/usr/local/apache/icons/"
</highlight>
<p>diye bir tanım yaparsanız sona bir / ekleme ihtiyacından dolayı
<code>/icons</code> URL’si için bir <directive>Alias</directive>
kullanılmayacaktır.</p>
<p><directive>Alias</directive> <em>hedefleri</em> için ek <directive
type="section" module="core" >Directory</directive> bölümleri
belirtmeniz gerekebileceğine dikkat ediniz. <directive type="section"
module="core" >Directory</directive> bölümlerinden önce yer alan
<directive>Alias</directive> yönergelerine özellikle bakılır,
dolayısıyla sadece <directive>Alias</directive> hedefleri etkilenir.
(Bununla birlikte, <directive>Alias</directive> yönergelerinden önce
işleme sokulan <directive type="section"
module="core">Location</directive> bölümlerinin uygulanacağına dikkat
ediniz.)</p>
<p>Özellikle, <directive module="core">DocumentRoot</directive> dışında
bir dizine bir <directive>Alias</directive> oluşturuyorsanız hedef
dizine doğrudan erişim izni vermeniz gerekebilir.</p>
<highlight language="config">
Alias "/image" "/ftp/pub/image"
&lt;Directory "/ftp/pub/image"&gt;
Require all granted
&lt;/Directory&gt;
</highlight>
<p><var>URL-yolu</var> değiştirgesindeki bölü çizgilerinin sayısı istek
URL-yolundakiler kadardır.</p>
<p>Eğer <directive>Alias</directive> yönergesi
<directive type="section" module="core">Location</directive>
veya <directive type="section" module="core">LocationMatch</directive>
bölümleri içinde kullanılırsa URL-yolu yoksayılır ve dosya-yolu
<a href="../expr.html">ifade sözdizimi</a> kullanılarak yorumlanır.<br />
Bu sözdizimi Apache 2.4.19 ve sonrasında kulanılabilir.</p>
<highlight language="config">
&lt;Location "/image"&gt;
Alias "/ftp/pub/image"
&lt;/Location&gt;
&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
Alias "/usr/local/apache/errors/%{env:MATCH_NUMBER}.html"
&lt;/LocationMatch&gt;
</highlight>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>AliasMatch</name>
<description>URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak
eşler.</description>
<syntax>AliasMatch "<var>düzenli-ifade</var>"
"<var>dosya-yolu</var>|<var>dizin-yolu</var>"</syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir
<glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında
<directive module="mod_alias">Alias</directive> yönergesine eşdeğerdir.
Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile eşleşiyorsa
sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak dosya yolunu
elde eder. Örneğin, <code>/icons</code> dizinini etkinleştirmek için şu
yazılabilir:</p>
<highlight language="config">
AliasMatch "^/icons(.*)" "/usr/local/apache/icons$1"
</highlight>
<p><glossary ref="regex">Düzenli ifadeler</glossary>in tamamı
kullanılabilmektedir. Örneğin, <code><em>URL-yolu</em></code> ile harf
büyüklüğüne duyarsız eşleşmeler sağlayacak takma adlar
kullanılabilir:</p>
<highlight language="config">
AliasMatch "(?i)^/image(.*)" "/ftp/pub/image$1"
</highlight>
<p><directive module="mod_alias">Alias</directive>
ve <directive module="mod_alias">AliasMatch</directive> yönergeleri
arasındaki başlıca fark <directive module="mod_alias">Alias</directive>
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. <directive
module="mod_alias">AliasMatch</directive> 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.</p>
<p>Başka bir deyişle, basitçe
<directive module="mod_alias">Alias</directive> yerine
<directive module="mod_alias">AliasMatch</directive> yazmakla aynı etkiyi
alamazsınız. En azından düzenli ifadenin başına bir <code>^</code> ve
sonuna bir <code>(.*)$</code>, ikinci değiştirgenin sonuna da bir
<code>$1</code> eklemeniz gerekir.</p>
<p>Örneğin aşağıdakini AliasMatch ile değiştirmek isteyelim:</p>
<highlight language="config">
Alias "/image/" "/ftp/pub/image/"
</highlight>
<p>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:</p>
<highlight language="config">
AliasMatch "/image/" "/ftp/pub/image/"
</highlight>
<p>Aynı etkiyi elde etmek için bu gerekiyor:</p>
<highlight language="config">
AliasMatch "^/image/(.*)$" "/ftp/pub/image/$1"
</highlight>
<p>Şüphesiz, <directive module="mod_alias">Alias</directive> yönergesini
çalıştığı yerde <directive module="mod_alias">AliasMatch</directive>
kullanmanın hiç gereği yoktur. <directive module="mod_alias"
>AliasMatch</directive> daha karmaşık şeyler yapmamızı sağlar. Örneğin
farklı dosya çeşitlerini farklı dizinlerden sunmak isteyelim:</p>
<highlight language="config">
AliasMatch "^/image/(.*)\.jpg$" "/files/jpg.images/$1.jpg"
AliasMatch "^/image/(.*)\.gif$" "/files/gif.images/$1.gif"
</highlight>
<p>İ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.
</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>Redirect</name>
<description>İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye
yönlendirir.</description>
<syntax>Redirect [<var>durum</var>] [<var>URL-yolu</var>]
<var>URL</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
<usage>
<p><directive>Redirect</directive> yönergesi istemciye bir yönlendirme
isteği döndürerek eski URL’yi yenisiyle eşler.</p>
<p>Eski <code><em>URL-yolu</em></code> bir bölü çizgisi ile başlar ve harf
büyüklüğüne duyarlıdır (% imlemesi çözüldükten sonra).
<code><em>URL-yolu</em></code> olarak göreli yollara izin verilmez.</p>
<p><code><em>URL</em></code> 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.</p>
<p><code><em>URL-yolu</em></code> ile başlayan istekler istemciye hedef
<code><em>URL</em></code> konumuna bir yönlendirme isteği olarak
dönecektir. <code><em>URL-yolu</em></code>’nun devamı niteliğindeki ek
yol hedef URL’ye eklenir.</p>
<highlight language="config">
# Farklı bir konaktaki bir URL'ye yönlendirme
Redirect "/hizmet" "http://iki.example.com/hizmet"
# Aynı konak üzerinde yönlendirme
Redirect "/bir" "/iki"
</highlight>
<p>İstemcinin yaptığı <code>http://example.com/hizmet/fesmekan.txt</code>
isteğine karşılık istemciye isteği
<code>http://iki.example.com/hizmet/fesmekan.txt</code> olarak yapması
söylenecektir. Bu <code>GET</code> isteklerinde de geçerlidir. Örneğin,
<code>http://example.com/hizmet/foo.pl?q=23&amp;a=42</code> isteği
<code>http://iki.example.com/hizmet/foo.pl?q=23&amp;a=42</code> adresine
yönlendirilir. <code>POST</code>'ların iptal edileceğini unutmayın.<br />
Sadece tam yol parçaları eşleştirilir, bu nedenle
<code>http://example.com/hizmetfesmekan.txt</code> isteği yukarıdaki
yönlendirme ile eşleşmeyecektir. <a href="../expr.html">İfade
sözdizimi</a> 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 <directive
module="mod_alias">RedirectMatch</directive>
yönergesine de bakınız.</p>
<note><title>Bilginize</title>
<p>Yapılandırma dosyasında yer alış sırasına bakmaksızın
<directive>Redirect</directive> yönergeleri
<directive>Alias</directive> ve <directive>ScriptAlias</directive>
yönergelerinden önce ele alınır. <directive type="section"
module="core">Location</directive> bölümü içinde kullanılmış bir
<directive>Redirect</directive> yönergesi URL-yolu belirtilmiş
<directive>Redirect</directive> ve <directive>Alias</directive>
yönergelerine göre önceliklidir.</p></note>
<p>Herhangi bir <code><em>durum</em></code> 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 <code><em>durum</em></code>
değerleri:</p>
<dl>
<dt><code>permanent</code></dt>
<dd>İstemciye özkaynağın kalıcı olarak taşındığını belirten kalıcı
yönlendirme durumu (301) döndürülür.</dd>
<dt><code>temp</code></dt>
<dd>İstemciye geçici yönlendirme durumu (302) döner. Bu öntanımlıdır.
</dd>
<dt><code>seeother</code></dt>
<dd>İstemciye özkaynağın yerine başka bir şey konduğunu belirten
"diğerine bak" durumu (303) döndürülür.</dd>
<dt><code>gone</code></dt>
<dd>İstemciye özkaynağın kalıcı olarak kaldırıldığını belirten "ölü
bağlantı" durumu (410) döner. Bu durumda <code><em>URL</em></code>
belirtilmez.</dd>
</dl>
<p>Diğer durum kodları için <code><em>durum</em></code> değiştirgesiyle
sayısal durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir
<code><em>URL</em></code> belirtmek gereklidir. Aksi takdirde,
<var>URL</var> bileşeni ihmal edilmelidir. Belirtilecek durum kodunun
geçerli bir HTTP Status kodu olmalı ve Apache HTTP Sunucusu kodu
bilmelidir (<code>http_protocol.c</code> dosyasında bulunan
<code>send_error_response</code> işlevine bakınız).</p>
<highlight language="config">
Redirect permanent "/bir" "http://example.com/iki"
Redirect 30" "/yedi" http://example.com/baskabisey"
</highlight>
<p>Eğer <directive>Redirect</directive> yönergesi URL-yolu belirtilmemiş
bir <directive type="section" module="core">Location</directive>
veya <directive type="section" module="core">LocationMatch</directive>
bölümü içinde yer alıyorsa, URL seçeneği <a href="../expr.html">ifade
sözdizimi</a> kullanılarak yorumlanır.<br />
Bu sözdizimi Apache 2.4.19 ve sonrasında kullanılabilir.</p>
<highlight language="config">
&lt;Location "/bir"&gt;
Redirect permanent "http://example.com/iki"
&lt;/Location&gt;
&lt;Location "/yedi"&gt;
Redirect 303 "http://example.com/baskabisey"
&lt;/Location&gt;
&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
Redirect permanent "http://example.com/errors/%{env:MATCH_NUMBER}.html"
&lt;/LocationMatch&gt;
</highlight>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RedirectMatch</name>
<description>Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici
yönlendirme gönderir.</description>
<syntax>RedirectMatch [<var>durum</var>] <var>düzenli-ifade</var>
<var>URL</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
<usage>
<p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir
<glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında
<directive module="mod_alias">Redirect</directive> yönergesine
eşdeğerdir. Belirtilen düzenli ifade <code><em>URL-yolu</em></code> 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:</p>
<highlight language="config">
RedirectMatch "(.*)\.gif$" "http://baska.example.com$1.jpg"
</highlight>
<p><directive module="mod_alias">Alias</directive> ve
<directive module="mod_alias">AliasMatch</directive> arasındaki farklarla
ilgili hususlar <directive module="mod_alias">Redirect</directive> ve
<directive module="mod_alias">RedirectMatch</directive> arasındakilere de
uygulanır. Ayrıntılar için <directive module="mod_alias"
>AliasMatch</directive> yönergesine bakınız.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RedirectTemp</name>
<description>İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir
URL’ye yönlendirir.</description>
<syntax>RedirectTemp <var>URL-yolu</var> <var>URL</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
<usage>
<p>Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür.
Yani, <code>Redirect temp</code> ile aynı işi yapar.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>RedirectPermanent</name>
<description>İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir
URL’ye yönlendirir.</description>
<syntax>RedirectPermanent <var>URL-yolu</var> <var>URL</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context><context>.htaccess</context></contextlist>
<override>FileInfo</override>
<usage>
<p>Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür.
Yani, <code>Redirect permanent</code> ile aynı işi yapar.</p>
</usage>
</directivesynopsis>
<directivesynopsis>
<name>ScriptAlias</name>
<description>Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır.</description>
<syntax>ScriptAlias [<var>URL-yolu</var>]
<var>dosya-yolu</var>|<var>dizin-yolu</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
<context>directory</context>
</contextlist>
<usage>
<p>Hedef dizini, <module>mod_cgi</module> modülünün CGI betiği
yorumlayıcısı tarafından çalıştırılacak betikleri içeren dizin olarak
imlemesi dışında <directive module="mod_alias">Alias</directive>
yönergesinin yaptığı işi yapar. <code><em>URL-yolu</em></code> ile
başlayan harf büyüklüğüne duyarlı URL’ler (% imlemesi çözüldükten
sonra), dosya sistemindeki bir tam yol olarak belirtilmiş
<code><em>dizin-yolu</em></code> ile başlayan betiklerle eşlenir.</p>
<highlight language="config">
ScriptAlias "/cgi-bin/" "/siteler/cgi-bin/"
</highlight>
<p><code>http://example.com/cgi-bin/foo</code> şeklindeki bir istek
sunucunun <code>/siteler/cgi-bin/foo</code> betiğini çalıştırmasına sebep
olur. Bu yapılandırma aslında şuna eşdeğerdir:</p>
<highlight language="config">
Alias "/cgi-bin/" "/siteler/cgi-bin/"
&lt;Location "/cgi-bin"&gt;
SetHandler cgi-script
Options +ExecCGI
&lt;/Location&gt;
</highlight>
<p><directive>ScriptAlias</directive> yönergesini bir betik veya eylemci
ile birlikte de kullanabilirsiniz. Örnek:</p>
<highlight language="config">
ScriptAlias "/cgi-bin/" "/siteler/cgi-handler.pl"
</highlight>
<p>Bu senaryoda <code>/cgi-bin/</code>’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.</p>
<note type="warning">Yapılandırma değiştiğinde kaynak kodlarının ister
istemez açığa çıkmasını istemiyorsanız CGI betiklerinizi <directive
module="core">DocumentRoot</directive> altına koymayınız.
<directive>ScriptAlias</directive> yönergesi URL’yi doğru yere
eşlemekten başka orayı bir CGI betikleri dizini olarak imler. CGI
betiklerinizi <directive module="core">DocumentRoot</directive> altına
koyarsanız çalıştırmak için <directive>ScriptAlias</directive> değil,
<directive module="core" type="section" >Directory</directive>,
<directive module="core">SetHandler</directive> ve <directive
module="core">Options</directive> yönergelerini örnekteki gibi kullanın:
<highlight language="config">
&lt;Directory "/usr/local/apache2/htdocs/cgi-bin" &gt;
SetHandler cgi-script
Options ExecCGI
&lt;/Directory&gt;
</highlight>
Aynı dosya sistemi konumu ile çok sayıda <code><em>URL-yolu</em></code>
eşleşebileceğinden, bir <directive module="core">Directory</directive>
bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa
çıkabilir; bu bakımdan <directive>ScriptAlias</directive> yönergesini yok
sayan URL yollarının belirtilebilme olasılığı gözardı
edilmemelidir.</note>
<p>Eğer <directive>ScriptAlias</directive> yönergesi URL-yolu belirtilmemiş
bir <directive type="section" module="core">Location</directive>
veya <directive type="section" module="core">LocationMatch</directive>
bölümü içinde yer alıyorsa, URL seçeneği <a href="../expr.html">ifade
sözdizimi</a> kullanılarak yorumlanır.<br />
Bu sözdizimi Apache 2.4.19 ve sonrasında kullanılabilir.</p>
<highlight language="config">
&lt;Location "/cgi-bin"&gt;
ScriptAlias "/siteler/cgi-bin/"
&lt;/Location&gt;
&lt;LocationMatch "/cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)"&gt;
ScriptAlias "/siteler/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi"
&lt;/LocationMatch&gt;
</highlight>
</usage>
<seealso><a href="../howto/cgi.html">CGI Öğreticisi</a></seealso>
</directivesynopsis>
<directivesynopsis>
<name>ScriptAliasMatch</name>
<description>Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak
eşler ve hedefi bir CGI betiği olarak çalıştırır.</description>
<syntax>ScriptAliasMatch <var>düzenli-ifade</var>
<var>dosya-yolu</var>|<var>dizin-yolu</var></syntax>
<contextlist><context>server config</context><context>virtual host</context>
</contextlist>
<usage>
<p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir
<glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında
<directive module="mod_alias">ScriptAlias</directive> yönergesine
eşdeğerdir. Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile
eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak
dosya yolunu elde eder. Örneğin, standart <code>/cgi-bin</code> dizinini
etkin kılmak için şu yazılabilir:</p>
<highlight language="config">
ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
</highlight>
<p>AliasMatch yönergesindeki gibi, <glossary ref="rexex">düzenli
ifadeler</glossary>in tamamı tüm güçleriyle kullanılabilmektedir.
Örneğin, <code><em>URL-yolu</em></code> için harf büyüklüğüne duyarsız
eşleşmeli bir takma ad oluşturmak mümkünür:</p>
<highlight language="config">
ScriptAliasMatch "(?i)^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1"
</highlight>
<p><directive module="mod_alias">Alias</directive> ve
<directive module="mod_alias">AliasMatch</directive> arasındaki farklarla
ilgili hususlar <directive module="mod_alias">ScriptAlias</directive> ve
<directive module="mod_alias">ScriptAliasMatch</directive> arasındakilere
de uygulanır. Ayrıntılar için <directive module="mod_alias"
>AliasMatch</directive> yönergesine bakınız.</p>
</usage>
</directivesynopsis>
</modulesynopsis>