<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
<!-- English Revision: 1838946 -->
<!-- =====================================================
 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.
-->

<manualpage metafile="sections.xml.meta">

<title>Yapılandırma Bölümleri</title>

<summary>
    <p><a href="configuring.html">Yapılandırma dosyaları</a>ndaki
       yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler,
       dosyalar, konaklar veya URL’lere uygulanmakla sınırlanabilir. Bu
       belgede, yapılandırma bölümü taşıyıcılarınının veya
       <code>.htaccess</code> dosyalarının, yapılandırma dosyalarındaki diğer
       yönergelerin etki alanlarını değiştirtirmek için nasıl kullanılacağı
       açıklanmıştır.</p>
</summary>

<section id="types"><title>Yapılandırma Bölümü Taşıyıcılarının Türleri</title>

    <related>
        <modulelist>
          <module>core</module>
          <module>mod_version</module>
          <module>mod_proxy</module>
        </modulelist>

        <directivelist>
          <directive type="section" module="core">Directory</directive>
          <directive type="section" module="core">DirectoryMatch</directive>
          <directive type="section" module="core">Files</directive>
          <directive type="section" module="core">FilesMatch</directive>
          <directive type="section" module="core">If</directive>
          <directive type="section" module="core">IfDefine</directive>
          <directive type="section" module="core">IfModule</directive>
          <directive type="section" module="mod_version">IfVersion</directive>
          <directive type="section" module="core">Location</directive>
          <directive type="section" module="core">LocationMatch</directive>
          <directive type="section" idtype="section" module="mod_md">MDomainSet</directive>
          <directive type="section" module="mod_proxy">Proxy</directive>
          <directive type="section" module="mod_proxy">ProxyMatch</directive>
          <directive type="section" module="core">VirtualHost</directive>
        </directivelist>
    </related>

    <p>İki temel taşıyıcı türü vardır. Taşıyıcıların çoğu her istek için
      değerlendirmeye alınır. Taşıyıcılardaki yönergeler ise sadece bu
      taşıyıcılarla eşleşen istekler için uygulanır. Diğer yandan,
      <directive type="section" module="core">IfDefine</directive>,
      <directive type="section" module="core">IfModule</directive> ve
      <directive type="section" module="mod_version">IfVersion</directive>
      taşıyıcıları sadece sunucu başlatılırken veya yeniden başlatılırken
      değerlendirmeye alınır. Başlatma sırasında gerektirdikleri koşullar
      sağlanıyorsa içerdikleri yönergeler tüm isteklere uygulanır. Aksi
      takdirde, içerdikleri yönergeler yok sayılır.</p>

    <p><directive type="section" module="core">IfDefine</directive> yönergesi
      sadece <program>httpd</program> komut satırında uygun parametreler
      tanımlanmışsa uygulanabilecek yönergeleri içerir. Örneğin, aşağıdaki
      yapılandırma ile tüm isteklerin diğer siteye yönlendirilebilmesi sadece
      sunucu <code>httpd -DClosedForNow</code> komut satırı ile başlatıldığı
      takdirde mümkün olur:</p>

    <highlight language="config">
&lt;IfDefine ClosedForNow&gt;
  Redirect "/" "http://otherserver.example.com/"
&lt;/IfDefine&gt;
    </highlight>

    <p><directive type="section" module="core">IfModule</directive> yönergesi
      sadece belli bir modülün sunucuda kullanılabilir durumda olması halinde
      uygulanabilecek yönergeleri içerir. Modülün ya sunucuyla birlikte durağan
      olarak derlenmiş olması ya da devingen olarak derlenmiş ve yapılandırma
      dosyasında yönergeden önce o modüle ilişkin bir <directive
      module="mod_so">LoadModule</directive> satırının bulunması gerekir. Bu
      yönergeyi sadece belli bir modülün varlığının veya yokluğunun
      yapılandırma dosyanızın çalışmasını etkilememesini istediğiniz durumlarda
      kullanmalısınız. Eksik modüllerle ilgili hata iletilerini
      engellediğinden, taşıyıcı içine, her zaman çalışması istenen yönergeler
      konulmamalıdır.</p>

    <p>Aşağıdaki örnekte, <directive module="mod_mime_magic"
      >MimeMagicFile</directive> yönergesi sadece
      <module>mod_mime_magic</module> modülü mevcutsa uygulanacaktır.</p>

    <highlight language="config">
&lt;IfModule mod_mime_magic.c&gt;
  MimeMagicFile "conf/magic"
&lt;/IfModule&gt;
    </highlight>

    <p><directive type="section" module="mod_version">IfVersion</directive>
      yönergesi sunucunun belli bir sürümünün çalıştırılması halinde
      uygulanabilecek yönergeleri içerebilmesi dışında <directive
      type="section" module="core">IfDefine</directive> ve <directive
      type="section" module="core">IfModule</directive> yönergeleri gibidir.
      <module>mod_version</module> modülü farklı httpd sürümleri ve farklı
      yapılandırmalarla büyük ağlarda çalışmayı mümkün kılmak veya sürüm
      denemeleri yapabilmek amacıyla tasarlanmıştır.</p>

    <highlight language="config">
&lt;IfVersion >= 2.4&gt;
  # burası sadece 2.4.0 veya daha üstü sürümlerde
  # iş görür.
&lt;/IfVersion&gt;
    </highlight>

    <p><directive type="section" module="core">IfDefine</directive>,
      <directive type="section" module="core">IfModule</directive> ve
      <directive type="section" module="mod_version">IfVersion</directive>
      yönergelerinin önüne "!" konularak olumsuz koşullar için uygulanabilir.
      Ayrıca, bu bölümler daha karmaşık sınırlamalar elde etmek amacıyla bir
      diğerinin içinde kullanılabilirler.</p>
</section>

<section id="file-and-web">
    <title>Dosya Sistemi, Site Alanı ve Mantıksal İfadeler</title>

    <p>En sık kullanılan yapılandırma bölümü taşıyıcıları dosya sistemindeki
      veya site alanındaki belli yerlerin yapılandırmalarını değiştirmekte
      kullanılanlardır. Öncelikle, bu ikisi arasındaki farkları bilmek
      önemlidir. Dosya sistemi disklerinizin işletim sistemi tarafından size
      gösterilen halidir. Örneğin, öntanımlı kurulumda Apache httpd, Unix
      sistemlerinde  <code>/usr/local/apache2</code> altındayken Windows
      sistemlerinde  <code>"c:/Program Files/Apache Group/Apache2"</code>
      altındadır. (Bilgi: Windows için bile, Apache httpd yapılandırma
      dosyalarında dosya yolu belirtilirken tersbölü değil normal bölü
      karakterleri kullanılır.) Site alanı ise sunucu tarafından istemciye
      sunulan dizin ağacıdır. Yani, site alanı içindeki <code>/dir/</code>
      dizini, Apache httpd’nin Unix üzerinde dosya sistemine öntanımlı olarak
      kurulduğu yer göz önüne alınarak, dosya sistemindeki
      <code>/usr/local/apache2/htdocs/dir/</code> dizinine karşılıktır. Site
      sayfaları veritabanlarından veya başka yerlerden devingen olarak
      üretilebildiğinden site alanlarının doğrudan dosya sistemine eşlenmesi
      gerekli değildir.</p>

  <section id="filesystem"><title>Dosya Sistemi Taşıyıcıları</title>

    <p><directive type="section" module="core">Directory</directive>
      ve <directive type="section" module="core">Files</directive>
      taşıyıcıları, <glossary ref="regex">düzenli ifade</glossary> karşılıkları
      ile beraber, yönergeleri dosya sisteminin parçalarına uygularlar. Bir
      <directive type="section" module="core">Directory</directive> bölümü
      içindeki yönergeler belli bir dosya sistemi dizinine ve onun alt
      dizinlerine uygulanır. Aynı etki <a href="howto/htaccess.html">.htaccess
      dosyaları</a> kullanılarak da sağlanabilir. Örneğin aşağıdaki
      yapılandırmada, <code>/var/web/dir1</code> dizini ve alt dizinlerinde
      dizin içeriğinin listelenmesi etkin kılınmaktadır.</p>

    <highlight language="config">
&lt;Directory "/var/web/dir1"&gt;
  Options +Indexes
&lt;/Directory&gt;
    </highlight>

    <p>Bir <directive type="section" module="core">Files</directive> bölümü
      içindeki yönergeler, hangi dizinde bulunduğuna bakılmaksızın ismi
      belirtilen dosyalara uygulanır. Örneğin, aşağıdaki yapılandırma
      yönergeleri yapılandırma dosyasının ana bölümüne yerleştirildiği takdirde
      <code>gizli.html</code> isimli dosyalara nerede bulunursa bulunsun
      erişime izin vermeyecektir.</p>

    <highlight language="config">
&lt;Files "gizli.html"&gt;
  Require all denied
&lt;/Files&gt;
    </highlight>

    <p>Dosya sisteminin belli bir yerindeki belli dosyalarla ilgili yaptırımlar
      için <directive type="section" module="core">Files</directive> ve
      <directive type="section" module="core">Directory</directive> bölümleri
      birlikte kullanılabilir. Örneğin, aşağıdaki yapılandırma
      <code>/var/web/dir1/gizli.html</code>,
      <code>/var/web/dir1/subdir2/gizli.html</code>,
      <code>/var/web/dir1/subdir3/gizli.html</code> ve
      <code>/var/web/dir1/</code> altında bulunabilecek diğer tüm
      <code>gizli.html</code> dosyalarına erişimi yasaklar.</p>

    <highlight language="config">
&lt;Directory "/var/web/dir1"&gt;<br />
  &lt;Files "gizli.html"&gt;<br />
    Require all denied
  &lt;/Files&gt;<br />
&lt;/Directory&gt;
    </highlight>
  </section>

  <section id="webspace"><title>Site Alanı Taşıyıcıları</title>

    <p><directive type="section" module="core">Location</directive> yönergesi
      ve yönergenin <glossary ref="regex">düzenli ifade</glossary> karşılığı
      site alanındaki içerik için yapılandırmayı değiştirir.  Örneğin aşağıdaki
      yapılandırma, <code>/gizli</code> ile başlayan URL yollarına erişimi
      engeller. Özellikle, <code>http://siteniz.mesela.dom/gizli</code>,
      <code>http://siteniz.mesela.dom/gizli123</code> ve
      <code>http://siteniz.mesela.dom/gizli/dir/dosya.html</code>
      istekleri yanında <code>/gizli</code> ile başlayan diğer isteklere de
      uygulanır.</p>

    <highlight language="config">
&lt;LocationMatch "^/gizli"&gt;
    Require all denied
&lt;/LocationMatch&gt;
    </highlight>

    <p>Dosya sistemi ile etkileşime girmeyen herşey için
      <directive type="section" module="core">Location</directive>
      yönergesi gerekir. Aşağıdaki örnekte, belli bir URL’nin
      <module>mod_status</module> modülü tarafından sağlanan bir dahili
      Apache eylemcisine nasıl eşlenebileceği gösterilmiştir. Bu örnek
      için dosya sisteminde <code>server-status</code> adında bir dosya
      veya dizin bulunması gerekli değildir.</p>

    <highlight language="config">
&lt;Location "/server-status"&gt;
    SetHandler server-status
&lt;/Location&gt;
    </highlight>
  </section>

  <section id="overlapping-webspace"><title>Site Alanında Çakışma</title>
    <p>Belli bölümler ve yönergeler değerlendirilirken çakışan iki URL bir URL
    olarak dikkate alınır. <directive type="section" module="core"
    >Location</directive> yönergesi için bu şöyle olurdu:</p>

    <highlight language="config">
&lt;Location "/foo"&gt;
&lt;/Location&gt;
&lt;Location "/foo/bar"&gt;
&lt;/Location>
    </highlight>

    <p>Diğer yandan <directive type="section" module="mod_alias">Takma
      adlar</directive> tam tersi eşlenir:</p>

    <highlight language="config">
Alias "/foo/bar" "/srv/www/uncommon/bar"
Alias "/foo"     "/srv/www/common/foo"
    </highlight>

    <p>Aynısı <directive module="mod_proxy">ProxyPass</directive>
      yönergeleri için de geçerlidir:</p>

    <highlight language="config">
ProxyPass "/special-area" "http://special.example.com" smax=5 max=10
ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofailover=On
    </highlight>
  </section>

  <section id="wildcards">
    <title>Dosya Adı Şablonları ve Düzenli İfadeler</title>

    <p><directive type="section" module="core">Directory</directive>,
      <directive type="section" module="core">Files</directive> ve
      <directive type="section" module="core">Location</directive>
      yönergelerinde, Standart C kütüphanesindeki <code>fnmatch</code>
      işlevindeki gibi kabuk tarzı dosya ismi kalıpları kullanılabilir. "*"
      karakteri herhangi bir karakter dizisi ile eşleşirken "?" karakteri tek
      tek karakterlerle ve "[<em>seq</em>]" kalıbı ise <em>seq</em> içindeki
      her karakterle eşleşir. "/" karakteri her hangi bir kalıp karakteri ile
      eşleşmez; açıkça belirtilmesi gerekir.</p>

    <p>Daha esnek bir eşleşmenin gerekli olduğu durumlar için her taşıyıcının
      bir düzenli ifade karşılığı vardır. <directive type="section"
      module="core">DirectoryMatch</directive>, <directive type="section"
      module="core">FilesMatch</directive> ve <directive type="section"
      module="core">LocationMatch</directive> yönergelerinde gerekli
      eşleşmeleri seçmek için perl uyumlu <glossary ref="regex">düzenli
      ifadelerin</glossary> kullanımına izin verilir. Ayrıca, yönergelerin
      uygulanışının düzenli ifade bölümleri kullanılarak nasıl
      değiştirileceğini öğrenmek için, aşağıda, yapılandırmanın
      katıştırılmasıyla ilgili bölüme de bakınız.</p>

    <p>Tüm kullanıcı dizinlerine ilişkin yapılandırmayı değiştirmek için dosya
      ismi kalıpları şöyle kullanılabilirdi:</p>

    <highlight language="config">
&lt;Directory "/home/*/public_html"&gt;
    Options Indexes
&lt;/Directory&gt;
    </highlight>

    <p>Düzenli ifade bölümleri kullanarak çeşitli türlerdeki resim dosyalarına
      erişimi bir defada yasaklayabiliriz:</p>

    <highlight language="config">
&lt;FilesMatch "\.(?i:gif|jpe?g|png)$"&gt;
    Require all denied
&lt;/FilesMatch&gt;
    </highlight>

    <p><strong>İsimli gruplar ve geriye başvurular</strong> içeren düzenli
      ifadeler ortama eklenirken ilgili isimler büyük harfli yapılır. Böylece,
      URL'lere ve dosya yolları elemanlarına <a href="expr.html">ifadelerin
      içinden</a> ve <module>mod_rewrite</module> gibi modüllerden başvurmak
      mümkün olur.</p>

<highlight language="config">
&lt;DirectoryMatch "^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)"&gt;
    require ldap-group "cn=%{env:MATCH_SITENAME},ou=combined,o=Example"
&lt;/DirectoryMatch&gt;
</highlight>
  </section>

  <section id="expressions"><title>Mantıksal İfadeler</title>
    <p><directive type="section" module="core">If</directive> yönergesi bir
      mantıksal ifade olarak belirtilebilen bir kurala bağlı olarak
      yapılandırmayı değiştirebilir. Örneğin, aşağıdaki yapılandırmada,
      <code>HTTP Referer</code> başlığı "http://www.example.com/" ile
      başlamıyorsa erişimi yasaklar.</p>

    <highlight language="config">
&lt;If "!(%{HTTP_REFERER} -strmatch 'http://www.example.com/*')"&gt;
    Require all denied
&lt;/If&gt;
    </highlight>
  </section>

  <section id="whichwhen"><title>Ne, Ne Zaman Kullanılır?</title>
    <p>Dosya sistemi taşıyıcıları ile site alanı taşıyıcıları arasında seçim
      yapmak aslında oldukça kolaydır. Dosya sisteminde bulunan nesnelere
      uygulanacak yönergeler için daima <directive type="section" module="core"
      >Directory</directive> veya <directive type="section" module="core"
      >Files</directive> kullanılır. Dosya sisteminde bulunmayan nesnelere
      (bir sayfanın bir veritabanı tarafından üretilmesi gibi) uygulanacak
      yönergeler için ise <directive type="section" module="core"
      >Location</directive> kullanılır.</p>

    <p>Dosya sistemindeki nesnelere erişimi kısıtlarken asla
      <directive type="section" module="core">Location</directive>
      kullanmamak önemlidir. Bunun sebebi farklı site alanı konumlarının
      (URL’ler) aynı dosya sistemi konumuna eşlenebilmesi dolayısıyla
      kısıtlamalarınızın etrafından dolaşılabilmesine izin vermesidir.
      Örneğin, aşağıdaki yapılandırmayı ele alalım:</p>

    <highlight language="config">
&lt;Location "/dir/"&gt;
    Require all denied
&lt;/Location&gt;
    </highlight>

    <p><code>http://siteniz.mesela.dom/dir/</code> için bir istek yapılmışsa
      bu doğru çalışacaktır. Fakat dosya sistemi harf büyüklüğüne duyarsızsa
      ne olacak? Kısıtlamanız, istek
      <code>http://siteniz.mesela.dom/DIR/</code>
      şeklinde yapılarak kolayca geçersiz kılınabilir. Halbuki <directive
      type="section" module="core">Directory</directive> yönergesi isteğin
      nasıl yapıldığına bakılmaksızın bu konumdan sunulan her türlü içeriğe
      uygulanacaktı. (Dosya sistemi bağlarıyla bu da aşılabilir. Sembolik
      bağlar kullanılarak aynı dizin dosya sisteminin bir çok yerine
      yerleştirilebilir. <directive type="section" module="core"
      >Directory</directive> yönergesi dosya yolunu sıfırlamaksızın sembolik
      bağları izleyecektir. Bu bakımdan, en yüksek seviyede güvenlik için uygun
      <directive module="core">Options</directive> yönergesi ile sembolik
      bağların izlenmesi devredışı bırakılabilir.)</p>

    <p>Belki de siz sırf harf büyüklüğüne duyarlı bir dosya sistemi
      kullanıyorsunuz diye böyle uygulamalara ihtiyacınız olmadığını düşünüyor
      olabilirsiniz, fakat aynı site alanını çok sayıda dosya sistemi konumuna
      eşleyecek daha bir sürü yol bulunduğunu unutmayınız. Bu bakımdan dosya
      sisteminde yapacağınız kısıtlamalarda daima dosya sistemi taşıyıcılarını
      kullanmalısınız. Bununla birlikte bu kuralın da bir istisnası vardır.
      Yapılandırma kısıtlamalarının bir <code>&lt;Location "/"&gt;</code> bölümü
      içine koyulması, bu bölüme konan yönergelerin etki alanının belli bir URL
      ile sınırlı olmaması nedeniyle mükemmelen güvenlidir.</p>
  </section>

  <section id="nesting"><title>Bölüm iç içeliği</title>
    <p>Bazı bölüm türleri başka bölüm türlerinin içinde olabilir. Bir yandan,
      <directive type="section" module="core">Files</directive> bölümü
      <directive type="section" module="core">Directory</directive> bölümünün
      içinde bulunabilirken diğer yandan bir <directive type="section"
      module="core">If</directive> bölümü <directive type="section"
      module="core">Directory</directive>, <directive type="section"
      module="core">Location</directive> ve <directive
      type="section" module="core">Files</directive> bölümlerinde bulunabilir fakat 
      başka bir <directive type="section" module="core">If</directive> bölümünün 
      içinde bulunamaz. Bu bölümlerin düzenli ifadeli türevleri de benzer tarzda 
      davranır.</p>

    <p>İç içe bölümler, aynı türdeki iç içe olmayan bölümlerin sonrasına
      yerleştirilir.</p>
  </section>

</section>

<section id="virtualhost"><title>Sanal Konaklar</title>

    <p><directive type="section" module="core">VirtualHost</directive>
      taşıyıcısının içinde belli bir konağa uygulanan yönergeler bulunur.
      Aynı makinede çok sayıda konağı farklı yapılandırmalarla  sunuyorsanız
      bu taşıyıcı çok işinize yarar. Daha fazla bilgi için
      <a href="vhosts/">Sanal Konak Belgeleri</a> bölümüne bakınız.</p>
</section>

<section id="proxy"><title>Vekil</title>
    <p><directive type="section" module="mod_proxy">Proxy</directive>
      ve <directive type="section" module="mod_proxy">ProxyMatch</directive>
      taşıyıcıları, sadece belli bir URL ile eşleşen <module>mod_proxy</module>
      vekil sunucusu üzerinden erişilen sitelere uygulanan yapılandırma
      yönergelerini bulundururlar. Örneğin aşağıdaki yapılandırma
      <code>example.com</code> sitesine erişim için vekil sunucunun
      sadece ağdaki bazı kullanıcılar tarafından kullanılabilmesini sağlayacaktır.</p>

    <highlight language="config">
&lt;Proxy "http://www.example.com/*"&gt;
    Require host bizimki.example.com
&lt;/Proxy&gt;
    </highlight>
</section>

<section id="whatwhere"><title>Hangi Yönergelere İzin Veriliyor?</title>
    <p>Hangi yönergelere hangi yapılandırma bölümlerinde izin verildiğini
      öğrenmek için yönerge <a href="mod/directive-dict.html#Context"
      >bağlamına</a> bakınız. <directive type="section"
      module="core">Directory</directive> bölümlerinde
      izin verilen herşeye sözdizimsel olarak ayrıca
      <directive type="section" module="core">DirectoryMatch</directive>,
      <directive type="section" module="core">Files</directive>,
      <directive type="section" module="core">FilesMatch</directive>,
      <directive type="section" module="core">Location</directive>,
      <directive type="section" module="core">LocationMatch</directive>,
      <directive type="section" module="mod_proxy">Proxy</directive>
      ve <directive type="section" module="mod_proxy">ProxyMatch</directive>
      bölümlerinde de izin verilir. Yine de bazı istisnai durumlar
      mevcuttur:</p>

    <ul>
      <li><directive module="core">AllowOverride</directive> yönergesi sadece
      <directive type="section" module="core">Directory</directive>
      bölümlerinde çalışır.</li>

      <li><directive module="core">Options</directive> yönergesinin
      <code>FollowSymLinks</code> ve <code>SymLinksIfOwnerMatch</code>
      seçenekleri sadece <directive type="section" module="core"
      >Directory</directive> bölümlerinde veya <code>.htaccess</code>
      dosyalarında çalışır.</li>

      <li><directive module="core">Options</directive> yönergesi
      <directive type="section" module="core">Files</directive> ve
      <directive type="section" module="core">FilesMatch</directive>
      bölümlerinde kullanılamaz.</li>
    </ul>
</section>

<section id="merging"><title>Bölümler Nasıl Katıştırılır?</title>

    <p>Yapılandırma bölümleri belli bir sıra ile uygulanır. Yapılandırma
      yönergelerinin yorumlanışı üzerinde önemli etkilere sahip olabilmesi
      nedeniyle neyin ne zaman çalıştığını anlamak çok önemlidir.</p>

    <p>Yapılandırma bölümlerinin katıştırılma sırası şöyledir:</p>

    <ol>
      <li><directive type="section"
      module="core">Directory</directive> (düzenli ifadeler hariç)
      ve <code>.htaccess</code> aynı anda işleme sokulur
      (<code>.htaccess</code> ile eğer izin verilmişse <directive
      type="section" module="core">Directory</directive> içindeki bazı
      yönergeler geçersiz kılınabileceği için).</li>

      <li><directive type="section" module="core">DirectoryMatch</directive>
      (ve <code>&lt;Directory "~"&gt;</code>).</li>

      <li><directive type="section" module="core">Files</directive> ve
      <directive type="section" module="core">FilesMatch</directive> aynı anda
      işleme sokulur.</li>

      <li><directive type="section" module="core">Location</directive>
      ve <directive type="section" module="core">LocationMatch</directive>
      aynı anda işleme sokulur.</li>

      <li><directive type="section" module="core">If</directive>
      </li>
    </ol>

    <p>Bazı önemli durumlar:</p>
    <ul>
        <li><directive type="section" module="core">Directory</directive>
        bölümündekiler hariç, her grup, yapılandırma dosyasında bulundukları
        sıraya göre işleme sokulurlar. Örneğin, 4. grupta <em>/foo/bar</em> için yapılan 
        bir istek <code>&lt;Location "/foo/bar"&gt;</code> ve <code>&lt;Location 
        "/foo"&gt;</code> bölümleriyle de eşleşir ve bunlar yapılandırma 
        dosyalarında bulundukları sıraya göre değerlendirilir.</li>
      
        <li>Yukarıda 1. grup olan <directive type="section" 
        module="core">Directory</directive> bölümü en kısa dizin elemanından en uzun 
        dizin elemanına doğru işleme sokulur. Yani, örneğin, <code>&lt;Directory 
        "/var/web/dir"&gt;</code> bölümü <code>&lt;Directory    
        "/var/web/dir/subdir"&gt;</code> bölümünden önce işleme sokulacaktır.</li>
    
        <li>Eğer aynı dizin için birden fazla <directive type="section"      
        module="core">Directory</directive> bölümü varsa bunlar yapılandırma 
        dosyasında bulundukları sıraya göre işleme sokulurlar.</li>
      
        <li><directive module="core">Include</directive> yönergeleri ile 
        yapılandırmaya dahil edilen dosyaların içerikleri <directive 
        module="core">Include</directive> yönergesinin bulunduğu yere konulduktan 
        sonra işleme sokulurlar.</li>

       <li><directive type="section" module="core">VirtualHost</directive>
       bölümlerinin içindeki bölümler, sanal konak tanımı dışındaki
       karşılıklarından <em>sonra</em> uygulanırlar. Bu yöntemle ana sunucu 
       yapılandırmasındaki tanımlar geçersiz kılınabilir</li>

       <li>İstek <module>mod_proxy</module> tarafından sunulduğu takdirde,
       <directive module="mod_proxy" type="section">Proxy</directive> taşıyıcısı
       işlem sırasında <directive module="core" type="section"
       >Directory</directive> taşıyıcısının yerini alır.</li>
    </ul>

    <note><title>Bazı Teknik Bilgiler</title>
      Aslında, isim dönüşüm aşamasından (<code>Aliases</code> ve
      <code>DocumentRoots</code>, URL’leri dosya isimlerine eşlemek için
      kullanılırken) hemen önce uygulanan bir
      <code>&lt;Location&gt;</code>/<code>&lt;LocationMatch&gt;</code> dizisi
      vardır. Bu dizinin sonuçları isim dönüşüm aşaması tamamlandıktan sonra
      tamamen elden çıkarılır.
    </note>

  <section id="relationship-module-configuration"><title>Modüllerle 
    yapılandırma bölümleri arasındaki ilişki</title>
  
    <p>Yapılandırma bölümlerini okurken örneğin <module>mod_rewrite</module>  
      gibi belli modüllerin yönergelerinin bu bölümlere nasıl katılacağı ve  
      ne zaman nasıl işleneceği gibi sorular sıkça aklımızdan geçer. Bunun 
      belli bir yanıtı yoktur ve biraz temel bilgi gerektirir. Her httpd 
      modülü yapılandırmasını kendi yönetir ve httpd.conf içindeki 
      yönergelerinin her biri belli bir bağlamdaki bir yapılandırmayı 
      belirtir. httpd bir komutu okunduğu sırada çalıştırmaz.</p>
    
    <p>Çalışma anında, httpd çekirdeği geçerli isteğe hangilerinin 
      uygulanacağını belirlemek için yukarıda açıklanan sırada tanımlı 
      yapılandırma bölümlerini tekrar tekrar okur. Eşleşen ilk bölümün bu 
      istek için geçerli yapılandırmayı içerdiği varsayılır. Eğer alt 
      bölümlerden biri de eşleşmişse bu bölümlerde yönergeleri bulunan her 
      modüle yapılandırmasını iki bölüm arasında katıştırma şansı verilir. 
      Sonuç üçüncü bir yapılandırma olup işlem bütün yapılandırma bölümleri 
      değerlendirilene kadar sürer.</p>
    
    <p>Yukarıdaki adımların ardından HTTP isteğiyle ilgili "asıl" işlem 
      başlar: her modül ondan istenen görevleri gerçekleştirme şansına sahip 
      olur. Nasıl davranacaklarını belirlemek için kendilerinin katıştırılmış 
      son yapılandırmalarını http çekirdeğinden alabilirler.</p>
    
    <p>Sürecin tamamı bir örnekle görselleştirilebilir. Aşağıdaki örnekte 
      belli bir HTTP başlığını ayarlamak için <module>mod_headers</module> 
      modülünün <directive module="mod_headers">Header</directive> yönergesi 
      kullanılmıştır. <code>/example/index.html</code> isteği için httpd 
      <code>CustomHeaderName</code> başlığına hangi değeri atayacaktır?
    </p>
    <highlight language="config">

&lt;Directory "/"&gt;
    Header set CustomHeaderName bir
    &lt;FilesMatch ".*"&gt;
        Header set CustomHeaderName yedi
    &lt;/FilesMatch&gt;
&lt;/Directory&gt;

&lt;Directory "/example"&gt;
    Header set CustomHeaderName iki
&lt;/Directory&gt;
     
    </highlight>    
    <ul>
        <li><directive>Directory</directive> "/" eşleşir ve ilk yapılandırma 
          olarak <code>CustomHeaderName</code> başlığı <code>bir</code> 
          değeriyle oluşturulur.</li>
        
        <li><directive>Directory</directive> "/example" eşleşir ve 
          <module>mod_headers</module> modülünün koduna göre bir katıştırma 
          durumundan yeni değer eskiyi geçersiz kılacağından yeni bir 
          yapılandırma ile <code>CustomHeaderName</code> başlığının değeri 
          <code>iki</code> yapılır.</li>
        
        <li><directive>FilesMatch</directive> ".*" eşleşir ve başka bir 
          katıştırma fırsatı doğar: <code>CustomHeaderName</code> başlığının 
          değeri <code>yedi</code> yapılır.</li>
        
        <li>Neticede HHP isteğinin sonraki adımlarında 
          <module>mod_headers</module> çağrılıp <code>yedi</code> değeri 
          atanmış <code>CustomHeaderName</code> başlığını işleme sokması 
          istenecektir. <module>mod_headers</module> normalde işini yapmak 
          için bu yapılandırmayı kullanacaktır. Fakat bundan, bir yönergenin  
          gerekli olmaması veya kullanımdan kaldırılması ve benzeri nedenlerle 
          yapılandırmada iptal edilmesi gibi daha karmaşık bir eylemi bir 
          modülün gerçekleştiremeyeceği anlamı çıkarılmamalıdır.</li>
    </ul>

    <p><directive>Directory</directive> ile aynı katıştırma sırasından dolayı 
      bu durum .htaccess için de geçerlidir. Burada anlaşılması gereken husus, 
      <directive>Directory</directive> ve <directive>FilesMatch</directive> 
      gibi yapılandırma bölümlerinin <directive 
      module="mod_headers">Header</directive> veya <directive 
      module="mod_rewrite">RewriteRule</directive> gibi modüle özgü 
      yönergelerle karşılaştırılmamasıdır, çünkü bunlar farklı seviyelerde 
      işlem görür.
    </p>
  </section>

  <section id="merge-examples"><title>Bazı Örnekler</title>

    <p>Aşağıdaki yapay örnekte katıştırma sırası gösterilmiştir. Hepsinin aynı
      isteğe uygulandığı varsayımıyla, bu örnekteki yönergeler A &gt; B &gt; C
      &gt; D &gt; E sırasıyla uygulanacaktır.</p>

    <highlight language="config">
&lt;Location "/"&gt;
    E
&lt;/Location&gt;

&lt;Files "f.html"&gt;
    D
&lt;/Files&gt;

&lt;VirtualHost *&gt;
    &lt;Directory "/a/b"&gt;
        B
    &lt;/Directory&gt;
&lt;/VirtualHost&gt;

&lt;DirectoryMatch "^.*b$"&gt;
    C
&lt;/DirectoryMatch&gt;

&lt;Directory "/a/b"&gt;
    A
&lt;/Directory&gt;
    </highlight>

    <p>Daha somut bir örnek olarak aşağıdakini ele alalım.
      <directive module="core" type="section">Directory</directive>
      bölümlerindeki erişim sınırlamaları ne olursa olsun <directive
      module="core" type="section">Location</directive> bölümü son olarak
      değerlendirmeye alınacak ve sunucuya sınırsız erişim verecektir.
      Başka bir deyişle, katıştırma sırası önemlidir, bu nedenle dikkatli
      olmalısınız!</p>

    <highlight language="config">
&lt;Location "/"&gt;
    Require all granted
&lt;/Location&gt;

# Alooo!  Bu &lt;Directory&gt; bölümünün hiçbir hükmü yok.
&lt;Directory "/"&gt;
    &lt;RequireAll&gt;
        Require all granted
        Require not host kkadam.example.com
    &lt;/RequireAll&gt;
&lt;/Directory&gt;
    </highlight>

  </section>

</section>
</manualpage>
