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="<-" alt="<-" src="../images/left.gif" /></a></div> 23 <div id="path"> 24 <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.2</a> > <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"> en </a> | 29 <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 30 <a href="../tr/vhosts/mass.html" title="Türkçe"> tr </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><VirtualHost></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 <VirtualHost 111.22.33.44><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 </VirtualHost><br /> 68 <VirtualHost 111.22.33.44><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 </VirtualHost><br /> 75 # blah blah blah<br /> 76 <VirtualHost 111.22.33.44><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 </VirtualHost> 83 </code></p></div> 84 85 <p>Ana fikir, tüm durağan <code><VirtualHost></code> 86 yapılandırmalarını devingen olarak çalışan tek bir 87 <code><VirtualHost></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><VirtualHost></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 <Directory /siteler/kurumsal><br /> 218 <span class="indent"> 219 Options FollowSymLinks<br /> 220 AllowOverride All<br /> 221 </span> 222 </Directory><br /> 223 <br /> 224 <Directory /siteler/bireysel><br /> 225 <span class="indent"> 226 Options FollowSymLinks<br /> 227 AllowOverride None<br /> 228 </span> 229 </Directory><br /> 230 <br /> 231 <VirtualHost 111.22.33.44><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 </VirtualHost><br /> 241 <br /> 242 <VirtualHost 111.22.33.45><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 </VirtualHost> 252 </code></p></div> 253 254 <div class="note"><h3>Bilginize</h3> 255 <p>Eğer ilk <code><VirtualHost></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 <Directory /siteler/hosts><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 </Directory><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"> en </a> | 418 <a href="../ko/vhosts/mass.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> | 419 <a href="../tr/vhosts/mass.html" title="Türkçe"> tr </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&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>