1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5 This file is generated from xml source: DO NOT EDIT
6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
8 <title>URL’lerin Dosya Sistemi ile Eşleştirilmesi - Apache HTTP Sunucusu</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
15 <p class="apache">Apache HTTP Sunucusu Sürüm 2.0</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif" /></a></div>
19 <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Sunucusu</a> > <a href="http://httpd.apache.org/docs/">Belgeleme</a> > <a href="./">Sürüm 2.0</a></div><div id="page-content"><div id="preamble"><h1>URL’lerin Dosya Sistemi ile Eşleştirilmesi</h1>
21 <p><span>Mevcut Diller: </span><a href="./en/urlmapping.html" hreflang="en" rel="alternate" title="English"> en </a> |
22 <a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
23 <a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
24 <a href="./tr/urlmapping.html" title="Türkçe"> tr </a></p>
27 <p>Bu belgede, bir istekte belirtilen URL’nin sunulacak dosyanın dosya
28 sistemindeki yerini bulmak için Apache tarafından nasıl kullanıldığı
31 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#related">İlgili Modüller ve Yönergeler</a></li>
32 <li><img alt="" src="./images/down.gif" /> <a href="#documentroot"><code>DocumentRoot</code></a></li>
33 <li><img alt="" src="./images/down.gif" /> <a href="#outside">Belge Kök Dizini Dışındaki Dosyalar</a></li>
34 <li><img alt="" src="./images/down.gif" /> <a href="#user">Kullanıcı Dizinleri</a></li>
35 <li><img alt="" src="./images/down.gif" /> <a href="#redirect">URL Yönlendirme</a></li>
36 <li><img alt="" src="./images/down.gif" /> <a href="#proxy">Karşı Vekil</a></li>
37 <li><img alt="" src="./images/down.gif" /> <a href="#rewrite">Yeniden Yazma Motoru</a></li>
38 <li><img alt="" src="./images/down.gif" /> <a href="#notfound">Dosya orada yok</a></li>
40 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
42 <h2><a name="related" id="related">İlgili Modüller ve Yönergeler</a></h2>
44 <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li><li><code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code></li><li><code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code></li><li><code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code></li><li><code class="module"><a href="./mod/mod_vhost_alias.html">mod_vhost_alias</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_alias.html#alias">Alias</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code></li><li><code class="directive"><a href="./mod/mod_speling.html#checkspelling">CheckSpelling</a></code></li><li><code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code></li><li><code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code></li><li><code class="directive"><a href="./mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#redirectmatch">RedirectMatch</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritecond">RewriteCond</a></code></li><li><code class="directive"><a href="./mod/mod_rewrite.html#rewritematch">RewriteMatch</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li><li><code class="directive"><a href="./mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code></li><li><code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code></li></ul></td></tr></table>
45 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
47 <h2><a name="documentroot" id="documentroot"><code>DocumentRoot</code></a></h2>
49 <p>Yapılan bir isteğe hangi dosyanın sunulacağına karar verirken
50 Apache’nin öntanımlı davranışı istek için URL yolunu (URL’den konak ismi
51 ve port ayrıldıktan sonra kalan kısım) alıp bunu yapılandırma dosyasında
52 <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> yönergesi ile
53 belirtilen dizinin sonuna eklemektir. Bu nedenle, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> altındaki dizinler ve dosyalar
54 sitenin dışardan görünen temel belge ağacını oluştururlar.</p>
56 <p>Örneğin, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> yönergesine
57 <code>/var/http/html</code> atanmış olsun.
58 <code>http://mesela.dom/balıklar/zargana.html</code> şeklindeki bir
59 istek için istemciye <code>/var/http/html/balıklar/zargana.html</code>
62 <p>Apache ayrıca, sunucunun birden fazla konak için istek kabul etmesini
63 sağlayan <a href="vhosts/">sanal barındırmaya</a> da muktedirdir. Bu
64 durumda her sanal konak için ayrı bir <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> belirtilebileceği gibi sunulacak içeriğin
65 istekte bulunulan IP adresi veya konak ismine dayanarak devingen olarak
66 saptanmasını sağlayabilen <code class="module"><a href="./mod/mod_vhost_alias.html">mod_vhost_alias</a></code> modülüyle
67 gelen yönergeler de kullanılabilir.</p>
68 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
70 <h2><a name="outside" id="outside">Belge Kök Dizini Dışındaki Dosyalar</a></h2>
72 <p>Bazen dosya sisteminde doğrudan <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> altında bulunmayan dosyalara da erişim izni
73 vermek gerekir. Apache’de bunu sağlamanın çeşitli yolları vardır. Unix
74 sistemlerinde sembolik bağlar sayesinde dosya sisteminin farklı
75 yerlerindeki dosyaları ve dizinleri <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code> altındaymış gibi göstermek mümkündür.
76 <code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergesine değer olarak
77 <code>FollowSymLinks</code> veya <code>SymLinksIfOwnerMatch</code>
78 atanmadıkça Apache olası güvenlik açıklarına karşı öntanımlı olarak
79 sembolik bağları izlemez.</p>
81 <p>Bundan başka, dosya sisteminin farklı parçalarını belge kök dizini
82 altında göstermek için <code class="directive"><a href="./mod/mod_alias.html#alias">Alias</a></code>
83 yönergesi de kullanılabilir. Örneğin,</p>
85 <div class="example"><p><code>Alias /belgeler /var/http</code></p></div>
88 <code>http://mesela.dom/belgeler/dizin/dosya.html</code> URL’si için
89 dosya sistemindeki <code>/var/http/dizin/dosya.html</code> dosyası
90 sunulacaktır. Hedef dizindeki dosyaları birer <span title="sözlüğe bakınız">→</span> <a href="./glossary.html#cgi">CGI</a> betiği olarak imlemesi dışında <code class="directive"><a href="./mod/mod_alias.html#scriptalias">ScriptAlias</a></code> yönergesi de aynı şekilde
93 <p>Biraz daha fazla esnekliğin gerektiği durumlarda <span title="sözlüğe bakınız">→</span> <a href="./glossary.html#regex">düzenli ifadelere</a> dayalı eşleşmeler sağlamak
94 üzere <code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code> ve <code class="directive"><a href="./mod/mod_alias.html#scriptaliasmatch">ScriptAliasMatch</a></code> yönergelerinin gücünden
95 yararlanılabilir. Örneğin,</p>
97 <div class="example"><p><code>ScriptAliasMatch ^/~([a-zA-Z0-9]+)/cgi-bin/(.+)
98 /home/$1/cgi-bin/$2</code></p></div>
100 <p>satırı sayesinde <code>http://mesela.dom/~user/cgi-bin/betik.cgi</code>
101 URL’si <code>/home/user/cgi-bin/betik.cgi</code> dosyası ile
102 eşleştirilir ve dosya bir CGI betiği olarak çalıştırılırdı.</p>
103 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
104 <div class="section">
105 <h2><a name="user" id="user">Kullanıcı Dizinleri</a></h2>
107 <p>Geleneksel olarak Unix sistemlerinde belli bir kullanıcının (örn,
108 <em>birisi</em>) ev dizinine <code>~birisi/</code> şeklinde atıfta
109 bulunulabilir. <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> modülü bu özelliği site
110 üzerinden kullanıcıların ev dizinlerindeki dosyaları kişisel sayfalar
111 olarak sunmalarını sağlamak üzere kullanır. Örnek:</p>
113 <div class="example"><p><code>http://mesela.dom/~birisi/dosya.html</code></p></div>
115 <p>Güvenlik sebebiyle kullanıcıların ev dizinlerine doğrudan HTTP erişimi
116 vermek uygun olmaz. Bu bakımdan, kullanıcının ev dizini altında HTTP
117 erişimi verilecek dosyaların bulunduğu dizini belirtmek için <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> yönergesi sağlanmıştır.
118 Öntanımlı olan <code>Userdir public_html</code> yapılandırması ile
119 yukarıdaki gibi bir URL kullanıcının ev dizini (<code>/etc/passwd</code>
120 dosyasında belirtilir) <code>/home/birisi/</code> altında yer alan
121 <code>/home/birisi/public_html/dosya.html</code> dosyası ile
124 <p>Ev dizininin yerinin <code>/etc/passwd</code> dosyasında belirtilmediği
125 sistemlerde kullanılmak üzere <code>Userdir</code> yönergesinin başka
126 kullanım şekilleri de vardır.</p>
128 <p>Bazı kişiler (genellikle URL üzerinde <code>%7e</code> olarak
129 kodlanması sebebiyle) "~" simgesini biçimsiz bulabilir ve kullanıcı
130 dizinlerini imlemek için başka bir karakter kullanmayı tercih
131 edebilirler. Bu işlevsellik <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> tarafından
132 desteklenmemektedir. Ancak, kullanıcı dizinleri düzgün şekilde
133 yapılandırılmışsa istenen etki <code class="directive"><a href="./mod/mod_alias.html#aliasmatch">AliasMatch</a></code> yönergesi ile sağlanabilir.
134 Örneğin, <code>http://mesela.dom/sayfalar/birisi/dosya.html</code>
135 URL’si ile <code>/home/birisi/public_html/dosya.html</code> dosyasını
136 eşlemek için <code>AliasMatch</code> yönergesi şöyle
137 kullanılabilirdi:</p>
139 <div class="example"><p><code>AliasMatch ^/sayfalar/([a-zA-Z0-9]+)/?(.*)
140 /home/$1/public_html/$2</code></p></div>
141 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
142 <div class="section">
143 <h2><a name="redirect" id="redirect">URL Yönlendirme</a></h2>
145 <p>Yukarıdaki bölümlerde açıklanan yapılandırma yönergeleri Apache’ye
146 içeriği dosya sisteminin belli bir yerinden alıp istemciye göndermesini
147 söyler. Bazen istemciye, istediği içeriğe farklı bir URL ile
148 erişebileceğini ve bu URL için ayrı bir istek yapması gerektiğini
149 bildirmek gerekir. Bu işleme <em>yönlendirme</em> adı verilir ve bu
150 işlevsellik <code class="directive"><a href="./mod/mod_alias.html#redirect">Redirect</a></code> yönergesi
151 ile sağlanır. Örneğin, <code class="directive"><a href="./mod/core.html#documentroot">DocumentRoot</a></code>
152 altındaki <code>/foo/</code> dizininin içeriğinin <code>/bar/</code>
153 adında yeni bir dizine taşınması halinde istemciye yeni konumun
154 bildirilmesi şöyle sağlanabilirdi:</p>
156 <div class="example"><p><code>Redirect permanent /foo/
157 http://mesela.dom/bar/</code></p></div>
159 <p>Bu atama sayesinde <code>/foo/</code> ile başlayan URL yolları
160 <code>mesela.dom</code> sunucundaki <code>/bar/</code> dizini altındaki
161 içeriğe yönlendirilmektedir. Yönlendirmeyi aynı sunucu üzerinde yapmak
162 zorunda değilsiniz, bu yönerge ile başka bir sunucuya da yönlendirme
165 <p>Apache ayrıca, yeniden yazma ile ilgili daha karmaşık sorunlara çözüm
166 olarak <code class="directive"><a href="./mod/mod_alias.html#redirectmatch">RedirectMatch</a></code> diye bir
167 yönerge daha sağlar. Örneğin bir sitenin baş sayfasını diğer isteklerden
168 ayrı olarak farklı bir siteye yönlendirmek için yönergeyi şöyle
169 kullanabilirsiniz:</p>
171 <div class="example"><p><code>RedirectMatch permanent ^/$
172 http://misal.dom/ilksayfa.html</code></p></div>
174 <p>Bundan başka, bir sitedeki tüm sayfalara yapılan istekleri başka bir
175 siteye geçici olarak yönlendirmek için şöyle bir şey yapabilirsiniz:</p>
177 <div class="example"><p><code>RedirectMatch temp .*
178 http://mesela.misal.dom/ilksayfa.html</code></p></div>
179 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
180 <div class="section">
181 <h2><a name="proxy" id="proxy">Karşı Vekil</a></h2>
183 <p>Apache ayrıca, uzak sunuculardaki belgelerin yerel sunucunun URL
184 alanına getirilmesini de mümkün kılar. Bu tekniğe HTTP sunucunun
185 belgeleri uzak bir sunucudan alıp istemciye sunmasını sağlayarak bir
186 vekil sunucu gibi davranması nedeniyle <em>ters vekalet</em> adı
187 verilir. Belgelerin istemciye özkaynağın bulunduğu sunucudan
188 geliyormuş gibi değilde doğrudan isteği yaptığı sunucudan geliyormuş
189 gibi sunulması nedeniyle bu işlem normal vekaletten farklıdır.</p>
191 <p>Aşağıdaki örnekte, istemci <code>/foo/</code> dizini altından bir belge
192 istemekte, sunucu ise bu belgeyi <code>dahili.mesela.dom</code>
193 üzerindeki <code>/bar/</code> dizininden alıp istemciye yerel sunucudan
194 geliyormuş gibi sunmaktadır:</p>
196 <div class="example"><p><code>
197 ProxyPass /foo/ http://dahili.mesela.dom/bar/<br />
198 ProxyPassReverse /foo/ http://dahili.mesela.dom/bar/<br />
201 <p><code class="directive"><a href="./mod/mod_proxy.html#proxypass">ProxyPass</a></code> sunucuyu uygun
202 belgeleri alması için yapılandırırken <code class="directive"><a href="./mod/mod_proxy.html#proxypassreverse">ProxyPassReverse</a></code> yönergesi <code>dahili.mesela.dom</code>
203 sunucusundan kaynaklanan yönlendirmeleri yeniden yazar. Yalnız,
204 belgelerin içindeki hiperbağların yeniden yazılmayacağına dikkat ediniz.
205 Dolayısıyla, belge içinde <code>dahili.mesela.dom</code>’u ismiyle hedef
206 alan mutlak hiperbağlar varsa bunlar istemci tarafından vekil sunucudan
207 değil doğrudan <code>dahili.mesela.dom</code>’dan istenecektir.</p>
208 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
209 <div class="section">
210 <h2><a name="rewrite" id="rewrite">Yeniden Yazma Motoru</a></h2>
212 <p>Daha güçlü ikameler gerektiğinde <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> modülü
213 tarafından sağlanan yeniden yazma motoru işe yarayabilir. Bu modüldeki
214 yönergeler sunulacak içeriğin yerine karar vermek için kaynak IP adresi,
215 tarayıcı türü gibi isteğe özgü özellikleri kullanırlar.
216 <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> modülü buna ek olarak isteğin nasıl ele
217 alınacağına karar vermek için harici yazılımları ve veritabanlarını
218 kullanabilir. Yeniden yazma motoru yukarıda değinilen üç eşleşme türünü
219 de uygulayabilecek yetenektedir: Dahili yönlendirmeler (rumuzlar),
220 harici yönlendirmeler ve vekalet. <code class="module"><a href="./mod/mod_rewrite.html">mod_rewrite</a></code> modülü
221 tarafından sağlanan yeteneklerin ayrıntılı açıklamaları ve bunların
222 kullanım örnekleri <a href="misc/rewriteguide.html">URL Yeniden Yazma
223 Rehberi</a>nde bulunmaktadır.</p>
224 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
225 <div class="section">
226 <h2><a name="notfound" id="notfound">Dosya orada yok</a></h2>
228 <p>Kaçınılmaz olarak, dosya sisteminde mevcut olmayan dosyalar için de
229 istek yapılacaktır. Bunun çeşitli sebepleri olabilir. Bazı durumlarda
230 bu, belgelerin yerlerininin değiştirilmesinin bir sonucu olabilir. Bu
231 durumda yapılacak en iyi şey, istemciyi belgeyi yeni yerinden istemesi
232 için bilgilendirmek amacıyla <a href="#redirect">URL yönlendirmesi</a>
233 kullanmaktır. Bu şekilde, içeriğin yeri değişse bile eski yer imlerinin
234 ve hiperbağların çalışmaya devam edeceklerinden emin olabilirsiniz.</p>
236 <p>"Dosya orada yok" ("File Not Found") hatalarının diğer bir bildik
237 sebebi de URL’lerin hiperbağlarda veya doğrudan tarayıcıda kasıtlı ya da
238 kasıtsız, yanlış yazılmasıdır. Bu tür sorunlarda yardımcı olması için
239 Apache <code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> (sic) adında bir modülle gelir. Bu
240 modül etkin kılındığında Apache, "Dosya orada yok" ("File Not Found")
241 hatalarının önünü kesip başka bir yerde benzer isimde bir dosya var mı
242 diye bakar. Böyle bir dosya varsa, <code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code>
243 istemciye dosyanın doğru yerini bildiren bir HTTP yönlendirmesi yollar.
244 Benzer çok sayıda dosya varsa bunlar istemciye bir liste halinde
247 <p><code class="module"><a href="./mod/mod_speling.html">mod_speling</a></code> modülünün en yararlı özelliklerinden biri
248 de dosya isimlerini harf büyüklüğüne duyarsız olarak arayabilmesidir.
249 Dosya isimlerinde harf büyüklüğünün önemli olduğu Unix benzeri sistemler
250 hakkında bilgisi olmayan kullanıcılara sahip sistemlerin kullanıcılarına
251 bu büyük yarar sağlar. Fakat modülün URL düzeltmekten başka şeyler için
252 de kullanılması, istemcilerden gelen neredeyse her isteğin URL
253 yönlendirmesine konu olmasına sebep olarak sunucunun yükünü
256 <p>Yerinde bulunmayan içeriğin bulunması çabalarının tümü Apache’nin 404
257 (Dosya orada yok) HTTP durum kodlu bir hata sayfası döndürmesine yol
258 açar. Bu sayfanın içeriği <code class="directive"><a href="./mod/core.html#errordocument">ErrorDocument</a></code> yönergesi ile denetlenebilir ve <a href="custom-error.html">Hata Yanıtlarının Kişiselleştirilmesi</a> ve <a href="misc/custom_errordocs.html">Uluslararası Hata Yanıtları</a>
259 belgelerinde anlatıldığı gibi oldukça esnek bir şekilde
260 kişiselleştirilebilir.</p>
262 <div class="bottomlang">
263 <p><span>Mevcut Diller: </span><a href="./en/urlmapping.html" hreflang="en" rel="alternate" title="English"> en </a> |
264 <a href="./ja/urlmapping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
265 <a href="./ko/urlmapping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
266 <a href="./tr/urlmapping.html" title="Türkçe"> tr </a></p>
267 </div><div id="footer">
268 <p class="apache">Copyright 2009 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
269 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="./faq/">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div>