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