2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
4 <!-- English Revision: 770506:944795 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <modulesynopsis metafile="mod_alias.xml.meta">
29 <name>mod_alias</name>
30 <description>Belge ağacının parçalarının dosya sisteminin parçalarıyla
31 eşlenmesini sağlar ve URL yönlendirmesi yapar.</description>
33 <sourcefile>mod_alias.c</sourcefile>
34 <identifier>alias_module</identifier>
37 <p>Bu modülde bulunan yönergeler sunucuya istek olarak gelen URL’lerin
38 denetlenmesini ve değiştirilmesini mümkün kılar. <directive
39 module="mod_alias" >Alias</directive> ve <directive module="mod_alias"
40 >ScriptAlias</directive> yönergeleri URL’lerin dosya sisteminin
41 dizinlerine eşlenmesini sağlar. Böylece, kök dizini <directive
42 module="core">DocumentRoot</directive> ile belirtilen site belge ağacı
43 altında bulunmayan içeriğe erişmek mümkün olur. <directive
44 module="mod_alias" >ScriptAlias</directive> yönergesi buna ek olarak
45 hedef dizini sadece CGI betiklerini içeren dizin olarak imler.</p>
47 <p><directive module="mod_alias">Redirect</directive> yönergesi,
48 farklı bir URL ile yeni bir istek yapmaları için istemcileri
49 yönlendirmekte kullanılır. Çoğunlukla özkaynak başka bir yere
50 taşındığında kullanılır.</p>
52 <p><module>mod_alias</module> modülü basit URL değiştirme görevlerini
53 yerine getirmek için tasarlanmıştır. Sorgu dizgelerini işleme sokmak
54 gibi daha karmaşık görevler için <module>mod_rewrite</module> modülü ile
55 sağlanan araçlar kullanılır.</p>
59 <seealso><module>mod_rewrite</module></seealso> <seealso><a
60 href="../urlmapping.html">URL’lerin Dosya sistemi ile Eşlenmesi</a>
63 <section id="order"><title>İşlem Sırası</title>
65 <p>Farklı bağlamlarda bulunan <directive module="mod_alias"
66 >Alias</directive> ve <directive module="mod_alias">Redirect</directive>
67 yönergeleri standart <a href="../sections.html#mergin">katıştırma
68 kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat
69 aynı bağlam dahilinde (örneğin, aynı <directive type="section"
70 module="core">VirtualHost</directive> bölümünde) çok fazla <directive
71 module="mod_alias" >Alias</directive> ve <directive
72 module="mod_alias">Redirect</directive> varsa bunlar belli bir
73 sıraya göre işleme sokulurlar.</p>
75 <p>İlk adımda, <directive module="mod_alias">Alias</directive>’lardan önce
76 bütün <directive module="mod_alias">Redirect</directive> yönergeleri
77 işleme sokulur. Bu bakımdan bir <directive module="mod_alias"
78 >Redirect</directive> veya <directive module="mod_alias"
79 >RedirectMatch</directive> ile eşleşen bir istek için
80 hiçbir <directive module="mod_alias" >Alias</directive>
81 uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
82 sıraya göre <directive module="mod_alias" >Redirect</directive> ve
83 <directive module="mod_alias" >Alias</directive> yönergeleri işleme
84 sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
86 <p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
87 fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
88 olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
89 aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
92 Alias /foo/bar /baz<br />
96 <p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
97 <code>/foo</code> rumuzu daima <code>/foo/bar</code> rumuzundan önce
98 eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
104 <description>URL’leri dosya sistemi konumlarıyla eşler.</description>
105 <syntax>Alias <var>URL-yolu</var>
106 <var>dosya-yolu</var>|<var>dizin-yolu</var></syntax>
107 <contextlist><context>server config</context><context>virtual host</context>
112 <p><directive>Alias</directive> yönergesi, belgelerin <directive
113 module="core">DocumentRoot</directive> dizininden farklı bir yerde
114 saklanmasını mümkün kılar. <code><em>URL-yolu</em></code> ile başlayan
115 URL’ler (% imlemesi çözüldükten sonra) <code><em>dizin-yolu</em></code>
116 ile başlayan yerel dosyalarla eşlenir. <code><em>URL-yolu</em></code>,
117 harf büyüklüğüne duyarsız sistemlerde bile harf büyüklüğüne
120 <example><title>Örnek:</title>
121 Alias /image /ftp/pub/image
124 <p><code>http://sunucum/image/foo.gif</code> şeklinde bir istek, sunucunun
125 <code>/ftp/pub/image/foo.gif</code> dosyasıyla yanıt vermesine sebep
126 olurdu. Sadece tam yol parçaları eşleştirilir; bu bakımdan yukarıdaki
127 <directive>Alias</directive> yapılandırması
128 <code>http://sunucum/imagefoo.gif</code> ile eşleşmez. Düzenli
129 ifadelerin kullanıldığı daha karmaşık eşleşmeler için <directive
130 module="mod_alias" >AliasMatch</directive> yönergesine bakınız.</p>
132 <p><code><em>URL-yolu</em></code>’nu bir <code>/</code> ile
133 sonlandırırsanız <directive>Alias</directive> yönergesini yorumlarken
134 sunucunun da sona bir <code>/</code> ekleyeceğine dikkat ediniz. Yani,
137 <dl><dd><code>Alias /icons/ /usr/local/apache/icons/</code></dd></dl>
139 <p>diye bir tanım yaparsanız <code>/icons</code> URL’si için bir
140 <directive>Alias</directive> kullanılmayacaktır.</p>
142 <p><directive>Alias</directive> <em>hedefleri</em> için ek <directive
143 type="section" module="core" >Directory</directive> bölümleri
144 belirtmeniz gerekebileceğine dikkat ediniz. <directive type="section"
145 module="core" >Directory</directive> bölümlerinden önce yer alan
146 <directive>Alias</directive> yönergelerine özellikle bakılır,
147 dolayısıyla sadece <directive>Alias</directive> hedefleri etkilenir.
148 (Bununla birlikte, <directive>Alias</directive> yönergelerinden önce
149 işleme sokulan <directive type="section"
150 module="core">Location</directive> bölümlerinin uygulanacağına dikkat
153 <p>Özellikle, <directive module="core">DocumentRoot</directive> dışında
154 bir dizine bir <directive>Alias</directive> oluşturuyorsanız hedef
155 dizine doğrudan erişim izni vermeniz gerekebilir.</p>
157 <example><title>Örnek:</title>
158 Alias /image /ftp/pub/image<br />
159 <Directory /ftp/pub/image><br />
161 Order allow,deny<br />
170 <name>AliasMatch</name>
171 <description>URL’leri dosya sistemi konumlarıyla düzenli ifadeleri kullanarak
173 <syntax>AliasMatch <var>düzenli-ifade</var>
174 <var>dosya-yolu</var>|<var>dizin-yolu</var></syntax>
175 <contextlist><context>server config</context><context>virtual host</context>
179 <p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir
180 <glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında
181 <directive module="mod_alias">Alias</directive> yönergesine eşdeğerdir.
182 Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile eşleşiyorsa
183 sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak dosya yolunu
184 elde eder. Örneğin, <code>/icons</code> dizinini etkinleştirmek için şu
188 AliasMatch ^/icons(.*) /usr/local/apache/icons$1
191 <p>Ayrıca, <code><em>URL-yolu</em></code> ile harf büyüklüğüne duyarsız
192 eşleşmeler sağlayacak düzenli ifadeler de kullanılabilir:</p>
195 AliasMatch (?i)^/image(.*) /ftp/pub/image$1
201 <name>Redirect</name>
202 <description>İstemciyi, bir yönlendirme isteği döndürerek farklı bir URL’ye
203 yönlendirir.</description>
204 <syntax>Redirect [<var>durum</var>] <var>URL-yolu</var>
205 <var>URL</var></syntax>
206 <contextlist><context>server config</context><context>virtual host</context>
207 <context>directory</context><context>.htaccess</context></contextlist>
208 <override>FileInfo</override>
211 <p><directive>Redirect</directive> yönergesi istemciye bir yönlendirme
212 isteği döndürerek eski URL’yi yenisiyle eşler.</p>
214 <p>Eski <code><em>URL-yolu</em></code> bir bölü çizgisi ile başlar ve harf
215 büyüklüğüne duyarlıdır (% imlemesi çözüldükten sonra).
216 <code><em>URL-yolu</em></code> olarak göreli yollara izin verilmez.</p>
218 <p><code><em>URL</em></code> ise ya bir şema ve konak ismi ile başlayan
219 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>
221 <p><code><em>URL-yolu</em></code> ile başlayan istekler istemciye hedef
222 <code><em>URL</em></code> konumuna bir yönlendirme isteği olarak
223 dönecektir. <code><em>URL-yolu</em></code>’nun devamı niteliğindeki ek
224 yol hedef URL’ye eklenir.</p>
226 <example><title>Örnek:</title>
227 # Farklı bir konaktaki bir URL'ye yönlendirme<br />
228 Redirect /hizmet http://iki.mesela.dom/hizmet<br />
230 # Aynı konak üzerinde yönlendirme<br />
234 <p>İstemcinin yaptığı <code>http://mesela.dom/hizmet/fesmekan.txt</code>
235 isteğine karşılık istemciye isteği
236 <code>http://iki.mesela.dom/hizmet/fesmekan.txt</code> olarak yapması
237 söylenecektir. Sadece tam yol parçaları eşleştirilir, bu nedenle
238 <code>http://mesela.dom/hizmetfesmekan.txt</code> isteği yukarıdaki
239 yönlendirme ile eşleşmeyecektir. Düzenli ifadelerin kullanıldığı daha
240 karmaşık eşleşmeler için <directive module="mod_alias"
241 >RedirectMatch</directive> yönergesine bakınız.</p>
244 <note><title>Bilginize</title>
245 <p>Yapılandırma dosyasında yer alış sırasına bakmaksızın
246 <directive>Redirect</directive> yönergeleri
247 <directive>Alias</directive> ve <directive>ScriptAlias</directive>
248 yönergelerinden önce ele alınır.</p></note>
250 <p>Herhangi bir <code><em>durum</em></code> belirtilmemişse "geçici"
251 yönlendirme (HTTP durum kodu: 302) yapılır. Bu, istemciye özkaynağın
252 geçici olarak başka yere taşındığını belirtir. Diğer HTTP durum
253 kodlarını döndürmek için kullanılabilecek <code><em>durum</em></code>
257 <dt><code>permanent</code></dt>
258 <dd>İstemciye özkaynağın kalıcı olarak taşındığını belirten kalıcı
259 yönlendirme durumu (301) döndürülür.</dd>
261 <dt><code>temp</code></dt>
262 <dd>İstemciye geçici yönlendirme durumu (302) döner. Bu öntanımlıdır.
265 <dt><code>seeother</code></dt>
266 <dd>İstemciye özkaynağın yerine başka bir şey konduğunu belirten
267 "diğerine bak" durumu (303) döndürülür.</dd>
269 <dt><code>gone</code></dt>
270 <dd>İstemciye özkaynağın kalıcı olarak kaldırıldığını belirten "ölü
271 bağlantı" durumu (410) döner. Bu durumda <code><em>URL</em></code>
275 <p>Diğer durum kodları için <code><em>durum</em></code> olarak sayısal
276 durum kodu belirtilir. Eğer durum 300 ile 399 arasındaysa bir
277 <code><em>URL</em></code> belirtmek gereklidir, yoksa belirtilmez.
278 Belirtilecek durum kodunu Apache’nin bilmesi gerektiğine dikkat ediniz
279 (<code>http_protocol.c</code> dosyasında bulunan
280 <code>send_error_response</code> işlevine bakınız).</p>
282 <example><title>Örnek:</title>
283 Redirect permanent /bir http://mesela.dom/iki<br />
284 Redirect 303 /yedi http://mesela.dom/baskabisey
290 <name>RedirectMatch</name>
291 <description>Geçerli URL ile eşleşen bir düzenli ifadeye dayanarak bir harici
292 yönlendirme gönderir.</description>
293 <syntax>RedirectMatch [<var>durum</var>] <var>düzenli-ifade</var>
294 <var>URL</var></syntax>
295 <contextlist><context>server config</context><context>virtual host</context>
296 <context>directory</context><context>.htaccess</context></contextlist>
297 <override>FileInfo</override>
300 <p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir
301 <glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında
302 <directive module="mod_alias">Redirect</directive> yönergesine
303 eşdeğerdir. Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile
304 eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak
305 dosya yolunu elde eder. Örneğin, tüm GIF dosyası isteklerini başka bir
306 sunucudaki aynı isimli JPEG dosyalarına yönlendirmek için şu
310 RedirectMatch (.*)\.gif$ http://baska.sunucu.dom$1.jpg
316 <name>RedirectTemp</name>
317 <description>İstemciyi, geçici bir yönlendirme isteği döndürerek farklı bir
318 URL’ye yönlendirir.</description>
319 <syntax>RedirectTemp <var>URL-yolu</var> <var>URL</var></syntax>
320 <contextlist><context>server config</context><context>virtual host</context>
321 <context>directory</context><context>.htaccess</context></contextlist>
322 <override>FileInfo</override>
325 <p>Bu yönerge istemciye daima geçici yönlendirme durumu (302) döndürür.
326 Yani, <code>Redirect temp</code> ile aynı işi yapar.</p>
331 <name>RedirectPermanent</name>
332 <description>İstemciyi, kalıcı bir yönlendirme isteği döndürerek farklı bir
333 URL’ye yönlendirir.</description>
334 <syntax>RedirectPermanent <var>URL-yolu</var> <var>URL</var></syntax>
335 <contextlist><context>server config</context><context>virtual host</context>
336 <context>directory</context><context>.htaccess</context></contextlist>
337 <override>FileInfo</override>
340 <p>Bu yönerge istemciye daima kalıcı yönlendirme durumu (301) döndürür.
341 Yani, <code>Redirect permanent</code> ile aynı işi yapar.</p>
346 <name>ScriptAlias</name>
347 <description>Bir URL’yi dosya sistemindeki bir yere eşler ve hedefi bir CGI betiği olarak çalıştırır.</description>
348 <syntax>ScriptAlias <var>URL-yolu</var>
349 <var>dosya-yolu</var>|<var>dizin-yolu</var></syntax>
350 <contextlist><context>server config</context><context>virtual host</context>
354 <p>Hedef dizini, <module>mod_cgi</module> modülünün CGI betiği
355 yorumlayıcısı tarafından çalıştırılacak betikleri içeren dizin olarak
356 imlemesi dışında <directive module="mod_alias">Alias</directive>
357 yönergesinin yaptığı işi yapar. <code><em>URL-yolu</em></code> ile
358 başlayan harf büyüklüğüne duyarlı URL’ler (% imlemesi çözüldükten
359 sonra), dosya sistemindeki bir tam yol olarak belirtilmiş
360 <code><em>dizin-yolu</em></code> ile başlayan betiklerle eşlenir.</p>
362 <example><title>Örnek:</title>
363 ScriptAlias /cgi-bin/ /siteler/cgi-bin/
366 <p><code>http://sunucum/cgi-bin/foo</code> şeklindeki bir istek sunucunun
367 <code>/siteler/cgi-bin/foo</code> betiğini çalıştırmasına sebep olur. Bu
368 yapılandırma aslında şuna eşdeğerdir:</p>
371 Alias /cgi-bin/ /siteler/cgi-bin/<br />
372 <Location /cgi-bin ><br />
374 SetHandler cgi-script<br />
375 Options +ExecCGI<br />
380 <p><directive>ScriptAlias</directive> yönergesini bir betik veya eylemci
381 ile birlikte de kullanabilirsiniz. Örnek:</p>
384 ScriptAlias /cgi-bin/ /siteler/cgi-handler.pl
387 <p>Bu senaryoda <code>/cgi-bin/</code>’den istenen tüm dosyalar sizin
388 belirttiğiniz dosya tarafından işleme sokulacaktır. Bu yöntemle kendi
389 özel eylemcinizi kullanabilirsiniz. İsterseniz, bunu içerik eklemek
390 ya da ısmarlama bir eylem için bir CGI sarmalayıcısı olarak da
391 kullanabilirsiniz.</p>
393 <note type="warning">Yapılandırma değiştiğinde kaynak kodlarının ister
394 istemez açığa çıkmasını istemiyorsanız CGI betiklerinizi <directive
395 module="core">DocumentRoot</directive> altına koymayınız.
396 <directive>ScriptAlias</directive> yönergesi URL’yi doğru yere
397 eşlemekten başka orayı bir CGI betikleri dizini olarak imler. CGI
398 betiklerinizi <directive module="core">DocumentRoot</directive> altına
399 koyarsanız çalıştırmak için <directive>ScriptAlias</directive> değil,
400 <directive module="core" type="section" >Directory</directive>,
401 <directive module="core">SetHandler</directive> ve <directive
402 module="core">Options</directive> yönergelerini örnekteki gibi kullanın:
405 <Directory /usr/local/apache2/htdocs/cgi-bin ><br />
407 SetHandler cgi-script<br />
408 Options ExecCGI<br />
413 Aynı dosya sistemi konumu ile çok sayıda <code><em>URL-yolu</em></code>
414 eşleşebileceğinden, bir <directive module="core">Directory</directive>
415 bölümü ile sınırlanmadığı takdirde CGI betiklerinin kaynak kodları açığa
416 çıkabilir; bu bakımdan <directive>ScriptAlias</directive> yönergesini yok
417 sayan URL yollarının belirtilebilme olasılığı gözardı
418 edilmemelidir.</note>
421 <seealso><a href="../howto/cgi.html">CGI Öğreticisi</a></seealso>
425 <name>ScriptAliasMatch</name>
426 <description>Bir URL’yi dosya sistemindeki bir yere düzenli ifade kullanarak
427 eşler ve hedefi bir CGI betiği olarak çalıştırır.</description>
428 <syntax>ScriptAliasMatch <var>düzenli-ifade</var>
429 <var>dosya-yolu</var>|<var>dizin-yolu</var></syntax>
430 <contextlist><context>server config</context><context>virtual host</context>
434 <p>Bu yönerge <code><em>URL-yolu</em></code> ile eşleşmek üzere bir
435 <glossary ref="regex">düzenli ifade</glossary> kabul etmesi dışında
436 <directive module="mod_alias">ScriptAlias</directive> yönergesine
437 eşdeğerdir. Belirtilen düzenli ifade <code><em>URL-yolu</em></code> ile
438 eşleşiyorsa sunucu parantezli eşleşmeleri belirtilen dizgede kullanarak
439 dosya yolunu elde eder. Örneğin, standart <code>/cgi-bin</code> dizinini
440 etkin kılmak için şu yazılabilir:</p>
443 ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1