]> granicus.if.org Git - apache/blob - docs/manual/sections.xml.tr
Remove useless <br \> in highlight blocks.
[apache] / docs / manual / sections.xml.tr
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
3 <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
4 <!-- English Revision: 1731194 -->
5 <!-- =====================================================
6  Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr>
7    Reviewed by: Orhan Berent <berent belgeler.gen.tr>
8 ========================================================== -->
9
10 <!--
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
17
18      http://www.apache.org/licenses/LICENSE-2.0
19
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.
25 -->
26
27 <manualpage metafile="sections.xml.meta">
28
29 <title>Yapılandırma Bölümleri</title>
30
31 <summary>
32     <p><a href="configuring.html">Yapılandırma dosyaları</a>ndaki
33        yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler,
34        dosyalar, konaklar veya URL’lere uygulanmakla sınırlanabilir. Bu
35        belgede, yapılandırma bölümü taşıyıcılarınının veya
36        <code>.htaccess</code> dosyalarının, yapılandırma dosyalarındaki diğer
37        yönergelerin etki alanlarını değiştirtirmek için nasıl kullanılacağı
38        açıklanmıştır.</p>
39 </summary>
40
41 <section id="types"><title>Yapılandırma Bölümü Taşıyıcılarının Türleri</title>
42
43     <related>
44         <modulelist>
45           <module>core</module>
46           <module>mod_version</module>
47           <module>mod_proxy</module>
48         </modulelist>
49
50         <directivelist>
51           <directive type="section" module="core">Directory</directive>
52           <directive type="section" module="core">DirectoryMatch</directive>
53           <directive type="section" module="core">Files</directive>
54           <directive type="section" module="core">FilesMatch</directive>
55           <directive type="section" module="core">If</directive>
56           <directive type="section" module="core">IfDefine</directive>
57           <directive type="section" module="core">IfModule</directive>
58           <directive type="section" module="mod_version">IfVersion</directive>
59           <directive type="section" module="core">Location</directive>
60           <directive type="section" module="core">LocationMatch</directive>
61           <directive type="section" module="mod_proxy">Proxy</directive>
62           <directive type="section" module="mod_proxy">ProxyMatch</directive>
63           <directive type="section" module="core">VirtualHost</directive>
64         </directivelist>
65     </related>
66
67     <p>İki temel taşıyıcı türü vardır. Taşıyıcıların çoğu her istek için
68       değerlendirmeye alınır. Taşıyıcılardaki yönergeler ise sadece bu
69       taşıyıcılarla eşleşen istekler için uygulanır. Diğer yandan,
70       <directive type="section" module="core">IfDefine</directive>,
71       <directive type="section" module="core">IfModule</directive> ve
72       <directive type="section" module="mod_version">IfVersion</directive>
73       taşıyıcıları sadece sunucu başlatılırken veya yeniden başlatılırken
74       değerlendirmeye alınır. Başlatma sırasında gerektirdikleri koşullar
75       sağlanıyorsa içerdikleri yönergeler tüm isteklere uygulanır. Aksi
76       takdirde, içerdikleri yönergeler yok sayılır.</p>
77
78     <p><directive type="section" module="core">IfDefine</directive> yönergesi
79       sadece <program>httpd</program> komut satırında uygun parametreler
80       tanımlanmışsa uygulanabilecek yönergeleri içerir. Örneğin, aşağıdaki
81       yapılandırma ile tüm isteklerin diğer siteye yönlendirilebilmesi sadece
82       sunucu <code>httpd -DClosedForNow</code> komut satırı ile başlatıldığı
83       takdirde mümkün olur:</p>
84
85     <highlight language="config">
86 &lt;IfDefine ClosedForNow&gt;
87   Redirect "/" "http://otherserver.example.com/"
88 &lt;/IfDefine&gt;
89     </highlight>
90
91     <p><directive type="section" module="core">IfModule</directive> yönergesi
92       sadece belli bir modülün sunucuda kullanılabilir durumda olması halinde
93       uygulanabilecek yönergeleri içerir. Modülün ya sunucuyla birlikte durağan
94       olarak derlenmiş olması ya da devingen olarak derlenmiş ve yapılandırma
95       dosyasında yönergeden önce o modüle ilişkin bir <directive
96       module="mod_so">LoadModule</directive> satırının bulunması gerekir. Bu
97       yönergeyi sadece belli bir modülün varlığının veya yokluğunun
98       yapılandırma dosyanızın çalışmasını etkilememesini istediğiniz durumlarda
99       kullanmalısınız. Eksik modüllerle ilgili hata iletilerini
100       engellediğinden, taşıyıcı içine, her zaman çalışması istenen yönergeler
101       konulmamalıdır.</p>
102
103     <p>Aşağıdaki örnekte, <directive module="mod_mime_magic"
104       >MimeMagicFile</directive> yönergesi sadece
105       <module>mod_mime_magic</module> modülü mevcutsa uygulanacaktır.</p>
106
107     <highlight language="config">
108 &lt;IfModule mod_mime_magic.c&gt;
109   MimeMagicFile "conf/magic"
110 &lt;/IfModule&gt;
111     </highlight>
112
113     <p><directive type="section" module="mod_version">IfVersion</directive>
114       yönergesi sunucunun belli bir sürümünün çalıştırılması halinde
115       uygulanabilecek yönergeleri içerebilmesi dışında <directive
116       type="section" module="core">IfDefine</directive> ve <directive
117       type="section" module="core">IfModule</directive> yönergeleri gibidir.
118       <module>mod_version</module> modülü farklı httpd sürümleri ve farklı
119       yapılandırmalarla büyük ağlarda çalışmayı mümkün kılmak veya sürüm
120       denemeleri yapabilmek amacıyla tasarlanmıştır.</p>
121
122     <highlight language="config">
123 &lt;IfVersion >= 2.4&gt;
124   # burası sadece 2.4.0 veya daha üstü sürümlerde
125   # iş görür.
126 &lt;/IfVersion&gt;
127     </highlight>
128
129     <p><directive type="section" module="core">IfDefine</directive>,
130       <directive type="section" module="core">IfModule</directive> ve
131       <directive type="section" module="mod_version">IfVersion</directive>
132       yönergelerinin önüne "!" konularak olumsuz koşullar için uygulanabilir.
133       Ayrıca, bu bölümler daha karmaşık sınırlamalar elde etmek amacıyla bir
134       diğerinin içinde kullanılabilirler.</p>
135 </section>
136
137 <section id="file-and-web">
138     <title>Dosya Sistemi, Site Alanı ve Mantıksal İfadeler</title>
139
140     <p>En sık kullanılan yapılandırma bölümü taşıyıcıları dosya sistemindeki
141       veya site alanındaki belli yerlerin yapılandırmalarını değiştirmekte
142       kullanılanlardır. Öncelikle, bu ikisi arasındaki farkları bilmek
143       önemlidir. Dosya sistemi disklerinizin işletim sistemi tarafından size
144       gösterilen halidir. Örneğin, öntanımlı kurulumda Apache httpd, Unix
145       sistemlerinde  <code>/usr/local/apache2</code> altındayken Windows
146       sistemlerinde  <code>"c:/Program Files/Apache Group/Apache2"</code>
147       altındadır. (Bilgi: Windows için bile, Apache httpd yapılandırma
148       dosyalarında dosya yolu belirtilirken tersbölü değil normal bölü
149       karakterleri kullanılır.) Site alanı ise sunucu tarafından istemciye
150       sunulan dizin ağacıdır. Yani, site alanı içindeki <code>/dir/</code>
151       dizini, Apache httpd’nin Unix üzerinde dosya sistemine öntanımlı olarak
152       kurulduğu yer göz önüne alınarak, dosya sistemindeki
153       <code>/usr/local/apache2/htdocs/dir/</code> dizinine karşılıktır. Site
154       sayfaları veritabanlarından veya başka yerlerden devingen olarak
155       üretilebildiğinden site alanlarının doğrudan dosya sistemine eşlenmesi
156       gerekli değildir.</p>
157
158   <section id="filesystem"><title>Dosya Sistemi Taşıyıcıları</title>
159
160     <p><directive type="section" module="core">Directory</directive>
161       ve <directive type="section" module="core">Files</directive>
162       taşıyıcıları, <glossary ref="regex">düzenli ifade</glossary> karşılıkları
163       ile beraber, yönergeleri dosya sisteminin parçalarına uygularlar. Bir
164       <directive type="section" module="core">Directory</directive> bölümü
165       içindeki yönergeler belli bir dosya sistemi dizinine ve onun alt
166       dizinlerine uygulanır. Aynı etki <a href="howto/htaccess.html">.htaccess
167       dosyaları</a> kullanılarak da sağlanabilir. Örneğin aşağıdaki
168       yapılandırmada, <code>/var/web/dir1</code> dizini ve alt dizinlerinde
169       dizin içeriğinin listelenmesi etkin kılınmaktadır.</p>
170
171     <highlight language="config">
172 &lt;Directory "/var/web/dir1"&gt;
173   Options +Indexes
174 &lt;/Directory&gt;
175     </highlight>
176
177     <p>Bir <directive type="section" module="core">Files</directive> bölümü
178       içindeki yönergeler, hangi dizinde bulunduğuna bakılmaksızın ismi
179       belirtilen dosyalara uygulanır. Örneğin, aşağıdaki yapılandırma
180       yönergeleri yapılandırma dosyasının ana bölümüne yerleştirildiği takdirde
181       <code>gizli.html</code> isimli dosyalara nerede bulunursa bulunsun
182       erişime izin vermeyecektir.</p>
183
184     <highlight language="config">
185 &lt;Files "gizli.html"&gt;
186   Require all denied
187 &lt;/Files&gt;
188     </highlight>
189
190     <p>Dosya sisteminin belli bir yerindeki belli dosyalarla ilgili yaptırımlar
191       için <directive type="section" module="core">Files</directive> ve
192       <directive type="section" module="core">Directory</directive> bölümleri
193       birlikte kullanılabilir. Örneğin, aşağıdaki yapılandırma
194       <code>/var/web/dir1/gizli.html</code>,
195       <code>/var/web/dir1/subdir2/gizli.html</code>,
196       <code>/var/web/dir1/subdir3/gizli.html</code> ve
197       <code>/var/web/dir1/</code> altında bulunabilecek diğer tüm
198       <code>gizli.html</code> dosyalarına erişimi yasaklar.</p>
199
200     <highlight language="config">
201 &lt;Directory "/var/web/dir1"&gt;<br />
202   &lt;Files "gizli.html"&gt;<br />
203     Require all denied
204   &lt;/Files&gt;<br />
205 &lt;/Directory&gt;
206     </highlight>
207   </section>
208
209   <section id="webspace"><title>Site Alanı Taşıyıcıları</title>
210
211     <p><directive type="section" module="core">Location</directive> yönergesi
212       ve yönergenin <glossary ref="regex">düzenli ifade</glossary> karşılığı
213       site alanındaki içerik için yapılandırmayı değiştirir.  Örneğin aşağıdaki
214       yapılandırma, <code>/gizli</code> ile başlayan URL yollarına erişimi
215       engeller. Özellikle, <code>http://siteniz.mesela.dom/gizli</code>,
216       <code>http://siteniz.mesela.dom/gizli123</code> ve
217       <code>http://siteniz.mesela.dom/gizli/dir/dosya.html</code>
218       istekleri yanında <code>/gizli</code> ile başlayan diğer isteklere de
219       uygulanır.</p>
220
221     <highlight language="config">
222 &lt;LocationMatch "^/gizli"&gt;
223     Require all denied
224 &lt;/LocationMatch&gt;
225     </highlight>
226
227     <p>Dosya sistemi ile etkileşime girmeyen herşey için
228       <directive type="section" module="core">Location</directive>
229       yönergesi gerekir. Aşağıdaki örnekte, belli bir URL’nin
230       <module>mod_status</module> modülü tarafından sağlanan bir dahili
231       Apache eylemcisine nasıl eşlenebileceği gösterilmiştir. Bu örnek
232       için dosya sisteminde <code>server-status</code> adında bir dosya
233       veya dizin bulunması gerekli değildir.</p>
234
235     <highlight language="config">
236 &lt;Location "/server-status"&gt;
237     SetHandler server-status
238 &lt;/Location&gt;
239     </highlight>
240   </section>
241
242   <section id="overlapping-webspace"><title>Site Alanında Çakışma</title>
243     <p>Belli bölümler ve yönergeler değerlendirilirken çakışan iki URL bir URL
244     olarak dikkate alınır. <directive type="section" module="core"
245     >Location</directive> yönergesi için bu şöyle olurdu:</p>
246
247     <highlight language="config">
248 &lt;Location "/foo"&gt;
249 &lt;/Location&gt;
250 &lt;Location "/foo/bar"&gt;
251 &lt;/Location>
252     </highlight>
253
254     <p>Diğer yandan <directive type="section" module="mod_alias">Takma
255       adlar</directive> tam tersi eşlenir:</p>
256
257     <highlight language="config">
258 Alias "/foo/bar" "/srv/www/uncommon/bar"
259 Alias "/foo" "/srv/www/common/foo"
260     </highlight>
261
262     <p>Aynısı <directive module="mod_proxy">ProxyPass</directive>
263       yönergeleri için de geçerlidir:</p>
264
265     <highlight language="config">
266 ProxyPass "/special-area" "http://special.example.com" smax=5 max=10
267 ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofailover=On
268     </highlight>
269   </section>
270
271   <section id="wildcards">
272     <title>Dosya Adı Şablonları ve Düzenli İfadeler</title>
273
274     <p><directive type="section" module="core">Directory</directive>,
275       <directive type="section" module="core">Files</directive> ve
276       <directive type="section" module="core">Location</directive>
277       yönergelerinde, Standart C kütüphanesindeki <code>fnmatch</code>
278       işlevindeki gibi kabuk tarzı dosya ismi kalıpları kullanılabilir. "*"
279       karakteri herhangi bir karakter dizisi ile eşleşirken "?" karakteri tek
280       tek karakterlerle ve "[<em>seq</em>]" kalıbı ise <em>seq</em> içindeki
281       her karakterle eşleşir. "/" karakteri her hangi bir kalıp karakteri ile
282       eşleşmez; açıkça belirtilmesi gerekir.</p>
283
284     <p>Daha esnek bir eşleşmenin gerekli olduğu durumlar için her taşıyıcının
285       bir düzenli ifade karşılığı vardır. <directive type="section"
286       module="core">DirectoryMatch</directive>, <directive type="section"
287       module="core">FilesMatch</directive> ve <directive type="section"
288       module="core">LocationMatch</directive> yönergelerinde gerekli
289       eşleşmeleri seçmek için perl uyumlu <glossary ref="regex">düzenli
290       ifadelerin</glossary> kullanımına izin verilir. Ayrıca, yönergelerin
291       uygulanışının düzenli ifade bölümleri kullanılarak nasıl
292       değiştirileceğini öğrenmek için, aşağıda, yapılandırmanın
293       katıştırılmasıyla ilgili bölüme de bakınız.</p>
294
295     <p>Tüm kullanıcı dizinlerine ilişkin yapılandırmayı değiştirmek için dosya
296       ismi kalıpları şöyle kullanılabilirdi:</p>
297
298     <highlight language="config">
299 &lt;Directory "/home/*/public_html"&gt;
300     Options Indexes
301 &lt;/Directory&gt;
302     </highlight>
303
304     <p>Düzenli ifade bölümleri kullanarak çeşitli türlerdeki resim dosyalarına
305       erişimi bir defada yasaklayabiliriz:</p>
306
307     <highlight language="config">
308 &lt;FilesMatch "\.(?i:gif|jpe?g|png)$"&gt;
309     Require all denied
310 &lt;/FilesMatch&gt;
311     </highlight>
312
313     <p><strong>İsimli gruplar ve geriye başvurular</strong> içeren düzenli
314       ifadeler ortama eklenirken ilgili isimler büyük harfli yapılır. Böylece,
315       URL'lere ve dosya yolları elemanlarına <a href="expr.html">ifadelerin
316       içinden</a> ve <module>mod_rewrite</module> gibi modüllerden başvurmak
317       mümkün olur.</p>
318
319 <highlight language="config">
320 &lt;DirectoryMatch "^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)"&gt;
321     require ldap-group "cn=%{env:MATCH_SITENAME},ou=combined,o=Example"
322 &lt;/DirectoryMatch&gt;
323 </highlight>
324   </section>
325
326   <section id="expressions"><title>Mantıksal İfadeler</title>
327     <p><directive type="section" module="core">If</directive> yönergesi bir
328       mantıksal ifade olarak belirtilebilen bir kurala bağlı olarak
329       yapılandırmayı değiştirebilir. Örneğin, aşağıdaki yapılandırmada,
330       <code>HTTP Referer</code> başlığı "http://www.example.com/" ile
331       başlamıyorsa erişimi yasaklar.</p>
332
333     <highlight language="config">
334 &lt;If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')"&gt;
335     Require all denied
336 &lt;/If&gt;
337     </highlight>
338   </section>
339
340   <section id="whichwhen"><title>Ne, Ne Zaman Kullanılır?</title>
341     <p>Dosya sistemi taşıyıcıları ile site alanı taşıyıcıları arasında seçim
342       yapmak aslında oldukça kolaydır. Dosya sisteminde bulunan nesnelere
343       uygulanacak yönergeler için daima <directive type="section" module="core"
344       >Directory</directive> veya <directive type="section" module="core"
345       >Files</directive> kullanılır. Dosya sisteminde bulunmayan nesnelere
346       (bir sayfanın bir veritabanı tarafından üretilmesi gibi) uygulanacak
347       yönergeler için ise <directive type="section" module="core"
348       >Location</directive> kullanılır.</p>
349
350     <p>Dosya sistemindeki nesnelere erişimi kısıtlarken asla
351       <directive type="section" module="core">Location</directive>
352       kullanmamak önemlidir. Bunun sebebi farklı site alanı konumlarının
353       (URL’ler) aynı dosya sistemi konumuna eşlenebilmesi dolayısıyla
354       kısıtlamalarınızın etrafından dolaşılabilmesine izin vermesidir.
355       Örneğin, aşağıdaki yapılandırmayı ele alalım:</p>
356
357     <highlight language="config">
358 &lt;Location "/dir/"&gt;
359     Require all denied
360 &lt;/Location&gt;
361     </highlight>
362
363     <p><code>http://siteniz.mesela.dom/dir/</code> için bir istek yapılmışsa
364       bu doğru çalışacaktır. Fakat dosya sistemi harf büyüklüğüne duyarsızsa
365       ne olacak? Kısıtlamanız, istek
366       <code>http://siteniz.mesela.dom/DIR/</code>
367       şeklinde yapılarak kolayca geçersiz kılınabilir. Halbuki <directive
368       type="section" module="core">Directory</directive> yönergesi isteğin
369       nasıl yapıldığına bakılmaksızın bu konumdan sunulan her türlü içeriğe
370       uygulanacaktı. (Dosya sistemi bağlarıyla bu da aşılabilir. Sembolik
371       bağlar kullanılarak aynı dizin dosya sisteminin bir çok yerine
372       yerleştirilebilir. <directive type="section" module="core"
373       >Directory</directive> yönergesi dosya yolunu sıfırlamaksızın sembolik
374       bağları izleyecektir. Bu bakımdan, en yüksek seviyede güvenlik için uygun
375       <directive module="core">Options</directive> yönergesi ile sembolik
376       bağların izlenmesi devredışı bırakılabilir.)</p>
377
378     <p>Belki de siz sırf harf büyüklüğüne duyarlı bir dosya sistemi
379       kullanıyorsunuz diye böyle uygulamalara ihtiyacınız olmadığını düşünüyor
380       olabilirsiniz, fakat aynı site alanını çok sayıda dosya sistemi konumuna
381       eşleyecek daha bir sürü yol bulunduğunu unutmayınız. Bu bakımdan dosya
382       sisteminde yapacağınız kısıtlamalarda daima dosya sistemi taşıyıcılarını
383       kullanmalısınız. Bununla birlikte bu kuralın da bir istisnası vardır.
384       Yapılandırma kısıtlamalarının bir <code>&lt;Location "/"&gt;</code> bölümü
385       içine koyulması, bu bölüme konan yönergelerin etki alanının belli bir URL
386       ile sınırlı olmaması nedeniyle mükemmelen güvenlidir.</p>
387   </section>
388
389   <section id="nesting"><title>Bölüm iç içeliği</title>
390     <p>Bazı bölüm türleri başka bölüm türlerinin içinde olabilir. Bir yandan,
391       <directive type="section" module="core">Files</directive> bölümü
392       <directive type="section" module="core">Directory</directive> bölümünün
393       içinde bulunabilirken diğer yandan bir <directive type="section"
394       module="core">If</directive> bölümü <directive type="section"
395       module="core">Directory</directive>, <directive type="section"
396       module="core">Location</directive> ve <directive
397       type="section" module="core">Files</directive> bölümlerinde bulunabilir.
398       Bu bölümlerin düzenli ifadeli türevleri de benzer tarzda davranır.</p>
399
400     <p>İç içe bölümler, aynı türdeki iç içe olmayan bölümlerin sonrasına
401       yerleştirilir.</p>
402   </section>
403
404 </section>
405
406 <section id="virtualhost"><title>Sanal Konaklar</title>
407
408     <p><directive type="section" module="core">VirtualHost</directive>
409       taşıyıcısının içinde belli bir konağa uygulanan yönergeler bulunur.
410       Aynı makinede çok sayıda konağı farklı yapılandırmalarla  sunuyorsanız
411       bu taşıyıcı çok işinize yarar. Daha fazla bilgi için
412       <a href="vhosts/">Sanal Konak Belgeleri</a> bölümüne bakınız.</p>
413 </section>
414
415 <section id="proxy"><title>Vekil</title>
416     <p><directive type="section" module="mod_proxy">Proxy</directive>
417       ve <directive type="section" module="mod_proxy">ProxyMatch</directive>
418       taşıyıcıları, sadece belli bir URL ile eşleşen <module>mod_proxy</module>
419       vekil sunucusu üzerinden erişilen sitelere uygulanan yapılandırma
420       yönergelerini bulundururlar. Örneğin aşağıdaki yapılandırma
421       <code>example.com</code> sitesine erişim için vekil sunucunun
422       sadece ağdaki bazı kullanıcılar tarafından kullanılabilmesini sağlayacaktır.</p>
423
424     <highlight language="config">
425 &lt;Proxy "http://www.example.com/*"&gt;
426     Require host bizimki.example.com
427 &lt;/Proxy&gt;
428     </highlight>
429 </section>
430
431 <section id="whatwhere"><title>Hangi Yönergelere İzin Veriliyor?</title>
432     <p>Hangi yönergelere hangi yapılandırma bölümlerinde izin verildiğini
433       öğrenmek için yönerge <a href="mod/directive-dict.html#Context"
434       >bağlamına</a> bakınız. <directive type="section"
435       module="core">Directory</directive> bölümlerinde
436       izin verilen herşeye sözdizimsel olarak ayrıca
437       <directive type="section" module="core">DirectoryMatch</directive>,
438       <directive type="section" module="core">Files</directive>,
439       <directive type="section" module="core">FilesMatch</directive>,
440       <directive type="section" module="core">Location</directive>,
441       <directive type="section" module="core">LocationMatch</directive>,
442       <directive type="section" module="mod_proxy">Proxy</directive>
443       ve <directive type="section" module="mod_proxy">ProxyMatch</directive>
444       bölümlerinde de izin verilir. Yine de bazı istisnai durumlar
445       mevcuttur:</p>
446
447     <ul>
448       <li><directive module="core">AllowOverride</directive> yönergesi sadece
449       <directive type="section" module="core">Directory</directive>
450       bölümlerinde çalışır.</li>
451
452       <li><directive module="core">Options</directive> yönergesinin
453       <code>FollowSymLinks</code> ve <code>SymLinksIfOwnerMatch</code>
454       seçenekleri sadece <directive type="section" module="core"
455       >Directory</directive> bölümlerinde veya <code>.htaccess</code>
456       dosyalarında çalışır.</li>
457
458       <li><directive module="core">Options</directive> yönergesi
459       <directive type="section" module="core">Files</directive> ve
460       <directive type="section" module="core">FilesMatch</directive>
461       bölümlerinde kullanılamaz.</li>
462     </ul>
463 </section>
464
465 <section id="merging"><title>Bölümler Nasıl Katıştırılır?</title>
466
467     <p>Yapılandırma bölümleri belli bir sıra ile uygulanır. Yapılandırma
468       yönergelerinin yorumlanışı üzerinde önemli etkilere sahip olabilmesi
469       nedeniyle neyin ne zaman çalıştığını anlamak çok önemlidir.</p>
470
471     <p>Yapılandırma bölümlerinin katıştırılma sırası şöyledir:</p>
472
473     <ol>
474       <li><directive type="section"
475       module="core">Directory</directive> (düzenli ifadeler hariç)
476       ve <code>.htaccess</code> aynı anda işleme sokulur
477       (<code>.htaccess</code> ile eğer izin verilmişse <directive
478       type="section" module="core">Directory</directive> içindeki bazı
479       yönergeler geçersiz kılınabileceği için).</li>
480
481       <li><directive type="section" module="core">DirectoryMatch</directive>
482       (ve <code>&lt;Directory "~"&gt;</code>).</li>
483
484       <li><directive type="section" module="core">Files</directive> ve
485       <directive type="section" module="core">FilesMatch</directive> aynı anda
486       işleme sokulur.</li>
487
488       <li><directive type="section" module="core">Location</directive>
489       ve <directive type="section" module="core">LocationMatch</directive>
490       aynı anda işleme sokulur.</li>
491
492       <li><directive type="section" module="core">If</directive>
493       </li>
494     </ol>
495
496     <p><directive type="section" module="core">Directory</directive>
497       bölümündekiler hariç, her grup, yapılandırma dosyasında bulundukları
498       sıraya göre işleme sokulurlar. Yukarıda 1. grup olan <directive
499       type="section" module="core">Directory</directive> bölümü en kısa dizin
500       elemanından en uzun dizin elemanına doğru işleme sokulur. Yani, örneğin,
501       <code>&lt;Directory "/var/web/dir"&gt;</code> bölümü <code>&lt;Directory
502       "/var/web/dir/subdir"&gt;</code> bölümünden önce işleme sokulacaktır. Eğer
503       aynı uzunlukta çok sayıda dizin varsa <directive type="section"
504       module="core">Directory</directive> bölümleri yapılandırma dosyasında
505       bulundukları sıraya göre işleme sokulurlar. <directive
506       module="core">Include</directive> yönergeleri ile yapılandırmaya dahil
507       edilen dosyaların içerikleri <directive module="core">Include</directive>
508       yönergesinin bulunduğu yere konulduktan sonra işleme sokulurlar.</p>
509
510     <p><directive type="section" module="core">VirtualHost</directive>
511       bölümlerinin içindeki bölümler, sanal konak tanımı dışındaki
512       karşılıklarından <em>sonra</em> uygulanırlar.</p>
513
514     <p>İstek <module>mod_proxy</module> tarafından sunulduğu takdirde,
515       <directive module="mod_proxy" type="section">Proxy</directive> taşıyıcısı
516       işlem sırasında <directive module="core" type="section"
517       >Directory</directive> taşıyıcısının yerini alır.</p>
518
519     <note><title>Bazı Teknik Bilgiler</title>
520       Aslında, isim dönüşüm aşamasından (<code>Aliases</code> ve
521       <code>DocumentRoots</code>, URL’leri dosya isimlerine eşlemek için
522       kullanılırken) hemen önce uygulanan bir
523       <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code> dizisi
524       vardır. Bu dizinin sonuçları isim dönüşüm aşaması tamamlandıktan sonra
525       tamamen elden çıkarılır.
526     </note>
527
528   <section id="relationship-module-configuration"><title>Modüllerle 
529     yapılandırma bölümleri arasındaki ilişki</title>
530   
531     <p>Yapılandırma bölümlerini okurken örneğin <module>mod_rewrite</module>  
532       gibi belli modüllerin yönergelerinin bu bölümlere nasıl katılacağı ve  
533       ne zaman nasıl işleneceği gibi sorular sıkça aklımızdan geçer. Bunun 
534       belli bir yanıtı yoktur ve biraz temel bilgi gerektirir. Her httpd 
535       modülü yapılandırmasını kendi yönetir ve httpd.conf içindeki 
536       yönergelerinin her biri belli bir bağlamdaki bir yapılandırmayı 
537       belirtir. httpd bir komutu okunduğu sırada çalıştırmaz.</p>
538     
539     <p>Çalışma anında, httpd çekirdeği geçerli isteğe hangilerinin 
540       uygulanacağını belirlemek için yukarıda açıklanan sırada tanımlı 
541       yapılandırma bölümlerini tekrar tekrar okur. Eşleşen ilk bölümün bu 
542       istek için geçerli yapılandırmayı içerdiği varsayılır. Eğer alt 
543       bölümlerden biri de eşleşmişse bu bölümlerde yönergeleri bulunan her 
544       modüle yapılandırmasını iki bölüm arasında katıştırma şansı verilir. 
545       Sonuç üçüncü bir yapılandırma olup işlem bütün yapılandırma bölümleri 
546       değerlendirilene kadar sürer.</p>
547     
548     <p>Yukarıdaki adımların ardından HTTP isteğiyle ilgili "asıl" işlem 
549       başlar: her modül ondan istenen görevleri gerçekleştirme şansına sahip 
550       olur. Nasıl davranacaklarını belirlemek için kendilerinin katıştırılmış 
551       son yapılandırmalarını http çekirdeğinden alabilirler.</p>
552     
553     <p>Sürecin tamamı bir örnekle görselleştirilebilir. Aşağıdaki örnekte 
554       belli bir HTTP başlığını ayarlamak için <module>mod_headers</module> 
555       modülünün <directive module="mod_headers">Header</directive> yönergesi 
556       kullanılmıştır. <code>/example/index.html</code> isteği için httpd 
557       <code>CustomHeaderName</code> başlığına hangi değeri atayacaktır?
558     </p>
559     <highlight language="config">
560
561 &lt;Directory "/"&gt;
562     Header set CustomHeaderName bir
563     &lt;FilesMatch ".*"&gt;
564         Header set CustomHeaderName yedi
565     &lt;/FilesMatch&gt;
566 &lt;/Directory&gt;
567
568 &lt;Directory "/example"&gt;
569     Header set CustomHeaderName iki
570 &lt;/Directory&gt;
571      
572     </highlight>    
573     <ul>
574         <li><directive>Directory</directive> "/" eşleşir ve ilk yapılandırma 
575           olarak <code>CustomHeaderName</code> başlığı <code>bir</code> 
576           değeriyle oluşturulur.</li>
577         
578         <li><directive>Directory</directive> "/example" eşleşir ve 
579           <module>mod_headers</module> modülünün koduna göre bir katıştırma 
580           durumundan yeni değer eskiyi geçersiz kılacağından yeni bir 
581           yapılandırma ile <code>CustomHeaderName</code> başlığının değeri 
582           <code>iki</code> yapılır.</li>
583         
584         <li><directive>FilesMatch</directive> ".*" eşleşir ve başka bir 
585           katıştırma fırsatı doğar: <code>CustomHeaderName</code> başlığının 
586           değeri <code>yedi</code> yapılır.</li>
587         
588         <li>Neticede HHP isteğinin sonraki adımlarında 
589           <module>mod_headers</module> çağrılıp <code>yedi</code> değeri 
590           atanmış <code>CustomHeaderName</code> başlığını işleme sokması 
591           istenecektir. <module>mod_headers</module> normalde işini yapmak 
592           için bu yapılandırmayı kullanacaktır. Fakat bundan, bir yönergenin  
593           gerekli olmaması veya kullanımdan kaldırılması ve benzeri nedenlerle 
594           yapılandırmada iptal edilmesi gibi daha karmaşık bir eylemi bir 
595           modülün gerçekleştiremeyeceği anlamı çıkarılmamalıdır.</li>
596     </ul>
597
598     <p><directive>Directory</directive> ile aynı katıştırma sırasından dolayı 
599       bu durum .htaccess için de geçerlidir. Burada anlaşılması gereken husus, 
600       <directive>Directory</directive> ve <directive>FilesMatch</directive> 
601       gibi yapılandırma bölümlerinin <directive 
602       module="mod_headers">Header</directive> veya <directive 
603       module="mod_rewrite">RewriteRule</directive> gibi modüle özgü 
604       yönergelerle karşılaştırılmamasıdır, çünkü bunlar farklı seviyelerde 
605       işlem görür.
606     </p>
607   </section>
608
609   <section id="merge-examples"><title>Bazı Örnekler</title>
610
611     <p>Aşağıdaki yapay örnekte katıştırma sırası gösterilmiştir. Hepsinin aynı
612       isteğe uygulandığı varsayımıyla, bu örnekteki yönergeler A &gt; B &gt; C
613       &gt; D &gt; E sırasıyla uygulanacaktır.</p>
614
615     <highlight language="config">
616 &lt;Location "/"&gt;
617     E
618 &lt;/Location&gt;
619
620 &lt;Files "f.html"&gt;
621     D
622 &lt;/Files&gt;
623
624 &lt;VirtualHost *&gt;
625 &lt;Directory "/a/b"&gt;
626     B
627 &lt;/Directory&gt;
628 &lt;/VirtualHost&gt;
629
630 &lt;DirectoryMatch "^.*b$"&gt;
631     C
632 &lt;/DirectoryMatch&gt;
633
634 &lt;Directory "/a/b"&gt;
635     A
636 &lt;/Directory&gt;
637     </highlight>
638
639     <p>Daha somut bir örnek olarak aşağıdakini ele alalım.
640       <directive module="core" type="section">Directory</directive>
641       bölümlerindeki erişim sınırlamaları ne olursa olsun <directive
642       module="core" type="section">Location</directive> bölümü son olarak
643       değerlendirmeye alınacak ve sunucuya sınırsız erişim verecektir.
644       Başka bir deyişle, katıştırma sırası önemlidir, bu nedenle dikkatli
645       olmalısınız!</p>
646
647     <highlight language="config">
648 &lt;Location "/"&gt;
649     Require all granted
650 &lt;/Location&gt;
651
652 # Alooo!  Bu &lt;Directory&gt; bölümünün hiçbir hükmü yok.
653 &lt;Directory "/"&gt;
654     &lt;RequireAll&gt;
655         Require all granted
656         Require not host kkadam.example.com
657     &lt;/RequireAll&gt;
658 &lt;/Directory&gt;
659     </highlight>
660
661   </section>
662
663 </section>
664 </manualpage>