github.com/krum110487/go-htaccess@v0.0.0-20240316004156-60641c8e7598/tests/data/apache_2_2_34/manual/vhosts/mass.html.tr.utf8 (about)

     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  <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
     5  <!--
     6          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     7                This file is generated from xml source: DO NOT EDIT
     8          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
     9        -->
    10  <title>Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma - Apache HTTP Sunucusu Sürüm 2.2</title>
    11  <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
    12  <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
    13  <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /><link rel="stylesheet" type="text/css" href="../style/css/prettify.css" />
    14  <script src="../style/scripts/prettify.min.js" type="text/javascript">
    15  </script>
    16  
    17  <link href="../images/favicon.ico" rel="shortcut icon" /><link href="http://httpd.apache.org/docs/current/vhosts/mass.html" rel="canonical" /></head>
    18  <body id="manual-page"><div id="page-header">
    19  <p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p>
    20  <p class="apache">Apache HTTP Sunucusu Sürüm 2.2</p>
    21  <img alt="" src="../images/feather.gif" /></div>
    22  <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
    23  <div id="path">
    24  <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="../">Sürüm 2.2</a> &gt; <a href="./">Sanal Konaklar</a></div><div id="page-content"><div class="retired"><h4>Please note</h4>
    25              <p> This document refers to a legacy release (<strong>2.2</strong>) of Apache httpd. The active release (<strong>2.4</strong>) is documented <a href="http://httpd.apache.org/docs/current">here</a>. If you have not already upgraded, please follow <a href="http://httpd.apache.org/docs/current/upgrading.html">this link</a> for more information.</p>
    26          <p>You may follow <a href="http://httpd.apache.org/docs/current/vhosts/mass.html">this link</a> to go to the current version of this document.</p></div><div id="preamble"><h1>Devingen olarak Yapılandırılan Kitlesel Sanal Barındırma</h1>
    27  <div class="toplang">
    28  <p><span>Mevcut Diller: </span><a href="../en/vhosts/mass.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
    29  <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
    30  <a href="../tr/vhosts/mass.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
    31  </div>
    32  
    33  
    34      <p>Bu belgede sanal konakların sonu belirsiz bir şekilde artışı karşısında
    35        Apache httpd sunucusunun nasıl daha verimli kullanılacağı açıklanmıştır.
    36      </p>
    37  
    38  </div>
    39  <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#motivation">Amaç</a></li>
    40  <li><img alt="" src="../images/down.gif" /> <a href="#overview">Genel Bakış</a></li>
    41  <li><img alt="" src="../images/down.gif" /> <a href="#simple">Basit Devingen Sanal Konaklar</a></li>
    42  <li><img alt="" src="../images/down.gif" /> <a href="#homepages">Sanal Kişisel Sayfalar Sistemi</a></li>
    43  <li><img alt="" src="../images/down.gif" /> <a href="#combinations">Aynı Sunucuda Kişisel ve Kurumsal Sanal Konaklar</a></li>
    44  <li><img alt="" src="../images/down.gif" /> <a href="#ipbased">IP’ye dayalı sanal konakları daha verimli kılmak</a></li>
    45  <li><img alt="" src="../images/down.gif" /> <a href="#simple.rewrite"><code>mod_rewrite</code> ile Kurumsal Müşteriler Sistemi</a></li>
    46  <li><img alt="" src="../images/down.gif" /> <a href="#homepages.rewrite"><code>mod_rewrite</code> ile Kişisel Sayfalar Sistemi</a></li>
    47  <li><img alt="" src="../images/down.gif" /> <a href="#xtra-conf">Sanal konaklar için ayrı bir yapılandırma dosyası kullanmak</a></li>
    48  </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
    49  <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
    50  <div class="section">
    51  <h2><a name="motivation" id="motivation">Amaç</a></h2>
    52  
    53      <p>Burada açıklanan teknikler, <code>httpd.conf</code> dosyanızın
    54        örnekteki gibi, aslında hemen hemen birbirinin aynı çok sayıda
    55        <code>&lt;VirtualHost&gt;</code> bölümü içereceği zaman yapılacaklar ile
    56        ilgilidir.
    57      </p>
    58  
    59  <div class="example"><p><code>
    60  NameVirtualHost 111.22.33.44<br />
    61  &lt;VirtualHost 111.22.33.44&gt;<br />
    62  <span class="indent">
    63      ServerName                 musteri-1.dom<br />
    64      DocumentRoot        /siteler/musteri-1.dom/belgeler<br />
    65      ScriptAlias  /cgi-bin/  /siteler/musteri-1.dom/cgi-bin<br />
    66  </span>
    67  &lt;/VirtualHost&gt;<br />
    68  &lt;VirtualHost 111.22.33.44&gt;<br />
    69  <span class="indent">
    70      ServerName                 musteri-2.dom<br />
    71      DocumentRoot        /siteler/musteri-2.dom/belgeler<br />
    72      ScriptAlias  /cgi-bin/  /siteler/musteri-2.dom/cgi-bin<br />
    73  </span>
    74  &lt;/VirtualHost&gt;<br />
    75  # blah blah blah<br />
    76  &lt;VirtualHost 111.22.33.44&gt;<br />
    77  <span class="indent">
    78      ServerName                 musteri-N.dom<br />
    79      DocumentRoot        /siteler/musteri-N.dom/belgeler<br />
    80      ScriptAlias  /cgi-bin/  /siteler/musteri-N.dom/cgi-bin<br />
    81  </span>
    82  &lt;/VirtualHost&gt;
    83  </code></p></div>
    84  
    85      <p>Ana fikir, tüm durağan <code>&lt;VirtualHost&gt;</code>
    86        yapılandırmalarını devingen olarak çalışan tek bir
    87        <code>&lt;VirtualHost&gt;</code> bölümüyle değiştirmektir. Bunun elbette
    88        bazı getirileri olacaktır:</p>
    89  
    90      <ol>
    91        <li>Yapılandırma dosyanız küçüleceği için Apache daha çabuk
    92          başlatılabilecek ve daha az bellek harcayacaktır.</li>
    93  
    94        <li>Yeni sanal konakların eklenmesi, DNS’de yeni girdiler oluşturmak ve
    95          dosya sisteminde bununla ilgili dizinleri açmak dışında biraz daha
    96          basit olacaktır; en azından Apache’yi yeniden yapılandırmak ve yeniden
    97          başlatmak zorunda kalmayacaksınız.</li>
    98      </ol>
    99  
   100      <p>Ana götürüsü ise her sanal konak için ayrı birer günlük dosyasına sahip
   101        olamayacak olmanızdır. Öte yandan, dosya tanıtıcılarının sınırlı olması
   102        nedeniyle bunu yapmayı zaten istemezsiniz. Günlük kayıtları için bir
   103        fifo veya bir boru hattı oluşturmak ve diğer uçta çalışan bir süreç
   104        vasıtasıyla günlükleri müşterilere paylaştırmak daha iyidir (ayrıca, bu,
   105        istatistikleri toplamanızı da kolaylaştırır).</p>
   106  
   107  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   108  <div class="section">
   109  <h2><a name="overview" id="overview">Genel Bakış</a></h2>
   110  
   111      <p>Bir sanal konak iki bilgiye bakarak belirlenir: IP adresi ve HTTP
   112        isteğindeki <code>Host:</code> başlığının içeriği. Devingen sanal
   113        barındırma tekniği, isteği yerine getirmek için kullanılacak dosya
   114        yoluna bu bilgiyi kendiliğinden girmek esasına dayanır. Bu, Apache 2.0
   115        ile <code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> kullanarak oldukça kolay
   116        yapılabileceği gibi <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> da kullanılabilir. Bu
   117        modüllerin her ikisi de öntanımlı olarak devre dışıdır. Bu tekniği
   118        kullanmak isterseniz  Apache’yi yeniden yapılandırıp derleyerek bu iki
   119        modülü etkin duruma getirmeniz gerekir.</p>
   120  
   121      <p>Devingen sanal konağı normal bir sanal konak gibi göstermek için bazı
   122        şeyleri ’göstermelik’ olarak yapmak gerekir. Bunlardan en önemlisi,
   123        Apache tarafından göreli URL’lerden normal URL’leri ve benzerlerini
   124        üretmek için kullanılan sunucu ismidir. Sunucu ismi
   125        <code>ServerName</code> yönergesi ile yapılandırılır ve CGI’ler
   126        tarafından <code>SERVER_NAME</code> ortam değişkeni üzerinden
   127        kullanılır. Çalışma anındaki asıl değer <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code> yönergesi tarafından denetlenir.
   128        <code>UseCanonicalName Off</code> olduğunda sunucu ismi isteğin
   129        <code>Host:</code> başlık alanından elde edilir. <code>UseCanonicalName
   130        DNS</code> belirtilmişse, sunucu ismi, sanal konağın IP adresinden
   131        tersine DNS sorgusu yapılarak elde edilir. Birincisi isme dayalı sanal
   132        konaklar tarafından ikincisi ise IP’ye dayalı sanal konaklar tarafından
   133        kullanılır. Eğer Apache, istekte <code>Host:</code> başlığının olmayışı
   134        veya DNS sorgusunun başarısız olması sebebiyle sunucu ismini elde
   135        edemezse son çare olarak <code>ServerName</code> yönergesinde yazılı
   136        değeri kullanır.</p>
   137  
   138      <p>‘Göstermelik’ yapılan şeylerden biri de <code>DocumentRoot</code>
   139        yönergesi ile yapılandırılan belge kök dizini olup CGI’ler tarafından
   140        <code>DOCUMENT_ROOT</code> ortam değişkeni üzerinden kullanılır. Normal
   141        yapılandırmada <code class="module"><a href="../mod/core.html">core</a></code> modülü tarafından dosya isimlerini
   142        URI’lere eşlerken kullanılır. Fakat sunucu devingen sanal konakları
   143        kullanmak üzere yapılandırıldığında, eşleştirmeyi farklı yollardan yapan
   144        başka bir modül devreye girer (<code>mod_vhost_alias</code> veya
   145        <code>mod_rewrite</code>). <code>DOCUMENT_ROOT</code> ortam değişkenine
   146        değerini atamaktan sorumlu olan bu iki modülden biri kullanılmazsa CGI
   147        veya SSI belgeleri yanlış değerlerle üretilirler.</p>
   148  
   149  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   150  <div class="section">
   151  <h2><a name="simple" id="simple">Basit Devingen Sanal Konaklar</a></h2>
   152  
   153      <p>Yukarıda <a href="#motivation">Amaç</a> bölümünde özetlenen sanal konak
   154        düzenlemesinin <code>mod_vhost_alias</code> kullanarak daha soysal bir
   155        tarzda gerçekleştirilmiş halini içeren <code>httpd.conf</code> bölümü
   156        aşağıdadır.</p>
   157  
   158  <div class="example"><p><code>
   159  # sunucu ismini Host: başlığından elde edelim<br />
   160  UseCanonicalName Off<br />
   161  <br />
   162  # Bu günlükleme biçiminde ilk alana bakarak<br />
   163  # sanal konak günlükleri ayrıştırılabilir<br />
   164  LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon<br />
   165  CustomLog logs/access_log vcommon<br />
   166  <br />
   167  # istekleri yerine getirmek için kullanılacak<br />
   168  # dosya isimlerine sunucu ismini ekleyelim<br />
   169  VirtualDocumentRoot /siteler/%0/belgeler<br />
   170  VirtualScriptAlias  /siteler/%0/cgi-bin
   171  </code></p></div>
   172  
   173      <p>Bu yapılandırmayı IP’ye dayalı sanal konaklar için kullanmak isterseniz
   174        <code>UseCanonicalName Off</code> yerine <code>UseCanonicalName
   175        DNS</code> yazmanız yeterlidir. Böylece dosya ismine eklenecek konak
   176        ismi sanal konağın IP adresinden türetilir.</p>
   177  
   178  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   179  <div class="section">
   180  <h2><a name="homepages" id="homepages">Sanal Kişisel Sayfalar Sistemi</a></h2>
   181  
   182      <p>Bu sistem, yukarıdaki yapılandırmanın bir ISS’nin kişisel sayfalar
   183        sunucusuna uyarlanmasından başka bir şey değildir. Biraz daha karmaşık
   184        bir yapılandırma ile dosya isimlerine <code>/home/kullanıcı/</code>
   185        dizinlerini ekleyebiliriz. Farklı olarak her sanal konak için bir tane
   186        değil hepsi için bir tane <code>cgi-bin</code> olacaktır.</p>
   187  
   188  <div class="example"><p><code>
   189  # Son bölüm hariç yukarıdaki yapılandırma, burada...<br />
   190  <br />
   191  # sunucu ismine eklenecek dosya isimlerini oluşturalım<br />
   192  VirtualDocumentRoot /siteler/%2/belgeler<br />
   193  <br />
   194  # ortak cgi-bin dizini<br />
   195  ScriptAlias  /cgi-bin/  /siteler/std-cgi/<br />
   196  </code></p></div>
   197  
   198      <p><code class="module"><a href="../mod/mod_vhost_alias.html">mod_vhost_alias</a></code> belgesinde daha karmaşık
   199        <code>VirtualDocumentRoot</code> örnekleri vardır.</p>
   200  
   201  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   202  <div class="section">
   203  <h2><a name="combinations" id="combinations">Aynı Sunucuda Kişisel ve Kurumsal Sanal Konaklar</a></h2>
   204  
   205      <p>Daha karmaşık ayarlamalar yaparak Apache’inin normal
   206        <code>&lt;VirtualHost&gt;</code> bölümlerini farklı kitlesel sanal konak
   207        yapılandırmaları için kullanabilirsiniz. Örneğin, bireysel
   208        müşterileriniz için bir IP adresiniz, kurumsal müşterileriniz için de
   209        başka bir IP adresiniz olsun. Her biri için ayrı ayrı sanal konaklar
   210        ayarlamak yerine aşağıdaki gibi bir yapılandırma kullanabilirsiniz:</p>
   211  
   212  <div class="example"><p><code>
   213  UseCanonicalName Off<br />
   214  <br />
   215  LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon<br />
   216  <br />
   217  &lt;Directory /siteler/kurumsal&gt;<br />
   218  <span class="indent">
   219      Options FollowSymLinks<br />
   220      AllowOverride All<br />
   221  </span>
   222  &lt;/Directory&gt;<br />
   223  <br />
   224  &lt;Directory /siteler/bireysel&gt;<br />
   225  <span class="indent">
   226      Options FollowSymLinks<br />
   227      AllowOverride None<br />
   228  </span>
   229  &lt;/Directory&gt;<br />
   230  <br />
   231  &lt;VirtualHost 111.22.33.44&gt;<br />
   232  <span class="indent">
   233      ServerName kurumsal.iss.dom<br />
   234      <br />
   235      CustomLog logs/access_log.kurumsal vcommon<br />
   236      <br />
   237      VirtualDocumentRoot /siteler/kurumsal/%0/belgeler<br />
   238      VirtualScriptAlias  /siteler/kurumsal/%0/cgi-bin<br />
   239  </span>
   240  &lt;/VirtualHost&gt;<br />
   241  <br />
   242  &lt;VirtualHost 111.22.33.45&gt;<br />
   243  <span class="indent">
   244      ServerName bireysel.iss.dom<br />
   245      <br />
   246      CustomLog logs/access_log.bireysel vcommon<br />
   247      <br />
   248      VirtualDocumentRoot /siteler/bireysel/%0/belgeler<br />
   249      ScriptAlias         /cgi-bin/ /siteler/std-cgi/<br />
   250  </span>
   251  &lt;/VirtualHost&gt;
   252  </code></p></div>
   253  
   254      <div class="note"><h3>Bilginize</h3>
   255        <p>Eğer ilk <code>&lt;VirtualHost&gt;</code> bölümü bir <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> yönergesi içermezse ilgili IP
   256          için ters DNS sorgusu yapılır. Eğer sorgudan elde edilen isim
   257          sunucunun ismi değilse bu istenmeyen duruma bir çözüm olarak bir
   258          bilgilendirme bölümü (<code>ServerName isimsiz.iss.dom</code>)
   259          eklenebilir.</p>
   260      </div>
   261  
   262  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   263  <div class="section">
   264  <h2><a name="ipbased" id="ipbased">IP’ye dayalı sanal konakları daha verimli kılmak</a></h2>
   265  
   266      <p><a href="#simple">İlk örnekte</a> IP’ye dayalı sanal konaklar için
   267        kullanılmak istenirse yapılandırmada neyin nasıl değiştirileceği
   268        belirtilmişti. Her istek için ayrı bir DNS sorgusu gerekeceğinden bu
   269        başarım düşmesine yol açar. DNS sorgusu ihtiyacını ortadan kaldırmak
   270        için, bir çözüm olarak dosya sistemi, konak isimleri yerine IP
   271        adreslerine göre düzenlenebilir. Günlük kayıtları da IP adreslerine göre
   272        ayrıştırılacak şekilde ayarlanabilir.</p>
   273  
   274  <div class="example"><p><code>
   275  # Sunucu ismini IP adresinden ters DNS sorgusu ile elde edelim<br />
   276  UseCanonicalName DNS<br />
   277  <br />
   278  # Günlük kayıtları IP adreslerine göre ayrıştırılabilsin<br />
   279  LogFormat "%A %h %l %u %t \"%r\" %s %b" vcommon<br />
   280  CustomLog logs/access_log vcommon<br />
   281  <br />
   282  # dosya isimleri IP adreslerini içersin<br />
   283  VirtualDocumentRootIP /siteler/%0/belgeler<br />
   284  VirtualScriptAliasIP  /siteler/%0/cgi-bin<br />
   285  </code></p></div>
   286  
   287  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   288  <div class="section">
   289  <h2><a name="simple.rewrite" id="simple.rewrite"><code>mod_rewrite</code> ile Kurumsal Müşteriler Sistemi</a></h2>
   290  
   291      <p>Buradaki <code>httpd.conf</code> bölümü de <a href="#simple">ilk
   292        örnekteki</a> gibi elde edilmiştir. İlk yarı, bazı değişiklikler dışında
   293        yukarıdaki örneğe çok benzer. Bu değişiklikler yapılandırmanın
   294        <code>mod_rewrite</code> bölümünün düzgün çalışması ve geriye doğru
   295        uyumluluk için gereklidir. İkinci yarı, asıl işi yapan
   296        <code>mod_rewrite</code> yapılandırmasını içerir.</p>
   297  
   298      <p>Biraz uzmanlık gerektiren bazı kısımlar var: Öntanımlı olarak
   299        <code>mod_rewrite</code> diğer (<code>mod_alias</code>, vs. gibi) URI
   300        dönüşüm modüllerinden önce çalışır. Dolayısıyla bu modülleri kullanmak
   301        isterseniz, <code>mod_rewrite</code>’ı bunlara izin verecek şekilde
   302        yapılandırmalısınız. Ayrıca her devingen sanal konağa eşdeğer bir
   303        <code>ScriptAlias</code> yapmak için de biraz büyü yapmak gerekir.</p>
   304  
   305  <div class="example"><p><code>
   306  # Sunucu ismini Host: başlığınıdan alalım.<br />
   307  UseCanonicalName Off<br />
   308  <br />
   309  # Günlük dosyasından bilgileri ayıklayabilelim.<br />
   310  LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon<br />
   311  CustomLog logs/access_log vcommon<br />
   312  <br />
   313  &lt;Directory /siteler/hosts&gt;<br />
   314  <span class="indent">
   315      # ScriptAlias için yaptıklarımızla CGI betiklerini<br />
   316      # çalışmaya zorlayamayacağımızdan ExecCGI burada gerekli.<br />
   317      Options FollowSymLinks ExecCGI<br />
   318  </span>
   319  &lt;/Directory&gt;<br />
   320  <br />
   321  # İşin zor yanına geldik.<br />
   322  <br />
   323  RewriteEngine On<br />
   324  <br />
   325  # Host: başlığından elde edilen sunucu isminde harf<br />
   326  # büyüklükleri çeşitli olabilir. Hepsini küçük harf yapalım.<br />
   327  RewriteMap  lowercase  int:tolower<br />
   328  <br />
   329  ## önce normal belgelerle anlaşalım:<br />
   330  # Alias /icons/ çalışsın - diğer rumuzlar için yineleyelim<br />
   331  RewriteCond  %{REQUEST_URI}  !^/icons/<br />
   332  # CGI’ler de çalışsın.<br />
   333  RewriteCond  %{REQUEST_URI}  !^/cgi-bin/<br />
   334  # Biraz da büyü yapalım.<br />
   335  RewriteRule  ^/(.*)$  /siteler/${lowercase:%{SERVER_NAME}}/belgeler/$1<br />
   336  <br />
   337  ## Artık CGI’lerle anlaşabiliriz. - Bir MIME türü isteyelim.<br />
   338  RewriteCond  %{REQUEST_URI}  ^/cgi-bin/<br />
   339  RewriteRule  ^/(.*)$  /siteler/${lowercase:%{SERVER_NAME}}/cgi-bin/$1  [T=application/x-httpd-cgi]<br />
   340  <br />
   341  # Bu kadar!
   342  </code></p></div>
   343  
   344  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   345  <div class="section">
   346  <h2><a name="homepages.rewrite" id="homepages.rewrite"><code>mod_rewrite</code> ile Kişisel Sayfalar Sistemi</a></h2>
   347  
   348      <p>Burada da <a href="#homepages">ikinci örnekte</a> yaptıklarımızı
   349        yapıyoruz.</p>
   350  
   351  <div class="example"><p><code>
   352  RewriteEngine on<br />
   353  <br />
   354  RewriteMap   lowercase  int:tolower<br />
   355  <br />
   356  # CGI’ler çalışsın.<br />
   357  RewriteCond  %{REQUEST_URI}  !^/cgi-bin/<br />
   358  <br />
   359  # konak ismi doğru mu bakalım yoksa RewriteRule çalışmaz.<br />
   360  RewriteCond  ${lowercase:%{SERVER_NAME}}  ^www\.[a-z-]+\.isp\.dom$<br />
   361  <br />
   362  # URI’nin başına sanal konak ismini ekleyelim.<br />
   363  # [C], bunu bitirdikten sonra, sonraki rewrite ile devam et demek.<br />
   364  RewriteRule  ^(.+)  ${lowercase:%{SERVER_NAME}}$1  [C]<br />
   365  <br />
   366  # Artık asıl dosya ismini oluşturabiliriz.<br />
   367  RewriteRule  ^www\.([a-z-]+)\.isp\.dom/(.*) /home/$1/$2<br />
   368  <br />
   369  # Ortak CGI dizinini tanımlayalım.<br />
   370  ScriptAlias  /cgi-bin/  /siteler/std-cgi/
   371  </code></p></div>
   372  
   373  </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
   374  <div class="section">
   375  <h2><a name="xtra-conf" id="xtra-conf">Sanal konaklar için ayrı bir yapılandırma dosyası kullanmak</a></h2>
   376  
   377      <p>Burada, sanal konak isimlerinden belge kök dizini elde ederken
   378        <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modülünün daha gelişkin özelliklerinden
   379        yararlanarak isimleri ayrı bir dosyadan okutacağız. Bu, esnekliği
   380        artırır ama daha karmaşık bir yapılandırma gerekir.</p>
   381  
   382      <p>Aşağıdaki içeriğe sahip bir <code>vhost.map</code>dosyamız olsun:</p>
   383  
   384  <div class="example"><p><code>
   385  musteri-1.dom  /siteler/kurumsal/1<br />
   386  musteri-2.dom  /siteler/kurumsal/2<br />
   387  # ...<br />
   388  musteri-N.dom  /siteler/kurumsal/N<br />
   389  </code></p></div>
   390  
   391      <p><code>httpd.conf</code> dosyamız da şunları içerecektir:</p>
   392  
   393  <div class="example"><p><code>
   394  RewriteEngine on<br />
   395  <br />
   396  RewriteMap   lowercase  int:tolower<br />
   397  <br />
   398  # Eşlem dosyasını tanımlayalım<br />
   399  RewriteMap   vhost      txt:/siteler/conf/vhost.map<br />
   400  <br />
   401  # Rumuzları yukarıdaki gibi halledelim.<br />
   402  RewriteCond  %{REQUEST_URI}               !^/icons/<br />
   403  RewriteCond  %{REQUEST_URI}               !^/cgi-bin/<br />
   404  RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$<br />
   405  # Eşlemeyi dosyalar için de yapalım.<br />
   406  RewriteCond  ${vhost:%1}                  ^(/.*)$<br />
   407  RewriteRule  ^/(.*)$                      %1/belgeler/$1<br />
   408  <br />
   409  RewriteCond  %{REQUEST_URI}               ^/cgi-bin/<br />
   410  RewriteCond  ${lowercase:%{SERVER_NAME}}  ^(.+)$<br />
   411  RewriteCond  ${vhost:%1}                  ^(/.*)$<br />
   412  RewriteRule  ^/(.*)$                      %1/cgi-bin/$1
   413  </code></p></div>
   414  
   415  </div></div>
   416  <div class="bottomlang">
   417  <p><span>Mevcut Diller: </span><a href="../en/vhosts/mass.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
   418  <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
   419  <a href="../tr/vhosts/mass.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
   420  </div><div class="top"><a href="#page-header"><img src="../images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
   421  <script type="text/javascript"><!--//--><![CDATA[//><!--
   422  var comments_shortname = 'httpd';
   423  var comments_identifier = 'http://httpd.apache.org/docs/2.2/vhosts/mass.html';
   424  (function(w, d) {
   425      if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
   426          d.write('<div id="comments_thread"><\/div>');
   427          var s = d.createElement('script');
   428          s.type = 'text/javascript';
   429          s.async = true;
   430          s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
   431          (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
   432      }
   433      else { 
   434          d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
   435      }
   436  })(window, document);
   437  //--><!]]></script></div><div id="footer">
   438  <p class="apache">Copyright 2017 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>
   439  <p class="menu"><a href="../mod/">Modüller</a> | <a href="../mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="../glossary.html">Terimler</a> | <a href="../sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
   440  if (typeof(prettyPrint) !== 'undefined') {
   441      prettyPrint();
   442  }
   443  //--><!]]></script>
   444  </body></html>