24
24
<a href="./ko/sections.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
25
25
<a href="./tr/sections.html" title="Türkçe"> tr </a></p>
27
<p><a href="configuring.html">Yapılandırma dosyaları</a>ndaki
28
yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler,
29
dosyalar, konaklar veya URL’lere uygulanmakla sınırlanabilir. Bu belgede,
30
yapılandırma bölümü taşıyıcılarınının veya <code>.htaccess</code>
31
dosyalarının, yapılandırma dosyalarındaki diğer yönergelerin etki alanlarını
27
<p><a href="configuring.html">Yapılandırma dosyaları</a>ndaki
28
yönergeler sunucunun tamamına uygulanacağı gibi sadece belli dizinler,
29
dosyalar, konaklar veya URL’lere uygulanmakla sınırlanabilir. Bu belgede,
30
yapılandırma bölümü taşıyıcılarınının veya <code>.htaccess</code>
31
dosyalarının, yapılandırma dosyalarındaki diğer yönergelerin etki alanlarını
32
32
değiştirtirmek için nasıl kullanılacağı açıklanmıştır.</p>
34
34
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#types">Yapılandırma Bölümü Taşıyıcılarının Türleri</a></li>
45
45
<table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yönergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/core.html">core</a></code></li><li><code class="module"><a href="./mod/mod_version.html">mod_version</a></code></li><li><code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code></li><li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#files"><Files></a></code></li><li><code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code></li><li><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code></li><li><code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code></li><li><code class="directive"><a href="./mod/core.html#location"><Location></a></code></li><li><code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code></li><li><code class="directive"><a href="./mod/mod_proxy.html#proxymatch"><ProxyMatch></a></code></li><li><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code></li></ul></td></tr></table>
47
<p>İki temel taşıyıcı türü vardır. Taşıyıcıların çoğu her istek için
48
değerlendirmeye alınır. Taşıyıcılardaki yönergeler ise sadece bu taşıyıcılarla
49
eşleşen istekler için uygulanır. Diğer yandan, <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code>, <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> ve <code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code> taşıyıcıları sadece sunucu başlatılırken veya yeniden
50
başlatılırken değerlendirmeye alınır. Başlatma sırasında gerektirdikleri
51
koşullar sağlanıyorsa içerdikleri yönergeler tüm isteklere uygulanır.
47
<p>İki temel taşıyıcı türü vardır. Taşıyıcıların çoğu her istek için
48
değerlendirmeye alınır. Taşıyıcılardaki yönergeler ise sadece bu taşıyıcılarla
49
eşleşen istekler için uygulanır. Diğer yandan, <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code>, <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> ve <code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code> taşıyıcıları sadece sunucu başlatılırken veya yeniden
50
başlatılırken değerlendirmeye alınır. Başlatma sırasında gerektirdikleri
51
koşullar sağlanıyorsa içerdikleri yönergeler tüm isteklere uygulanır.
52
52
Aksi takdirde, içerdikleri yönergeler yok sayılır.</p>
54
<p><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> yönergesi
55
sadece <code class="program"><a href="./programs/httpd.html">httpd</a></code> komut satırında uygun parametreler
56
tanımlanmışsa uygulanabilecek yönergeleri içerir. Örneğin, aşağıdaki
57
yapılandırma ile tüm isteklerin diğer siteye yönlendirilebilmesi sadece
58
sunucu <code>httpd -DClosedForNow</code> komut satırı ile başlatıldığı
54
<p><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> yönergesi
55
sadece <code class="program"><a href="./programs/httpd.html">httpd</a></code> komut satırında uygun parametreler
56
tanımlanmışsa uygulanabilecek yönergeleri içerir. Örneğin, aşağıdaki
57
yapılandırma ile tüm isteklerin diğer siteye yönlendirilebilmesi sadece
58
sunucu <code>httpd -DClosedForNow</code> komut satırı ile başlatıldığı
59
59
takdirde mümkün olur:</p>
61
61
<div class="example"><p><code>
69
<p><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> yönergesi
70
sadece belli bir modülün sunucuda kullanılabilir durumda olması halinde
71
uygulanabilecek yönergeleri içerir. Modülün ya sunucuyla birlikte durağan
72
olarak derlenmiş olması ya da devingen olarak derlenmiş ve yapılandırma
73
dosyasında yönergeden önce o modüle ilişkin bir <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> satırının bulunması gerekir. Bu yönergeyi sadece
74
belli bir modülün varlığının veya yokluğunun yapılandırma dosyanızın
75
çalışmasını etkilememesini istediğiniz durumlarda kullanmalısınız. Eksik
76
modüllerle ilgili hata iletilerini engellediğinden, taşıyıcı içine, her
69
<p><code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> yönergesi
70
sadece belli bir modülün sunucuda kullanılabilir durumda olması halinde
71
uygulanabilecek yönergeleri içerir. Modülün ya sunucuyla birlikte durağan
72
olarak derlenmiş olması ya da devingen olarak derlenmiş ve yapılandırma
73
dosyasında yönergeden önce o modüle ilişkin bir <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> satırının bulunması gerekir. Bu yönergeyi sadece
74
belli bir modülün varlığının veya yokluğunun yapılandırma dosyanızın
75
çalışmasını etkilememesini istediğiniz durumlarda kullanmalısınız. Eksik
76
modüllerle ilgili hata iletilerini engellediğinden, taşıyıcı içine, her
77
77
zaman çalışması istenen yönergeler konulmamalıdır.</p>
79
<p>Aşağıdaki örnekte, <code class="directive"><a href="./mod/mod_mime_magic.html#mimemagicfiles">MimeMagicFiles</a></code> yönergesi sadece
79
<p>Aşağıdaki örnekte, <code class="directive"><a href="./mod/mod_mime_magic.html#mimemagicfiles">MimeMagicFiles</a></code> yönergesi sadece
80
80
<code class="module"><a href="./mod/mod_mime_magic.html">mod_mime_magic</a></code> modülü mevcutsa uygulanacaktır.</p>
82
82
<div class="example"><p><code>
90
<p><code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code>
91
yönergesi sunucunun belli bir sürümünün çalıştırılması halinde uygulanabilecek
92
yönergeleri içerebilmesi dışında <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> ve <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> yönergeleri gibidir. <code class="module"><a href="./mod/mod_version.html">mod_version</a></code>
93
modülü farklı httpd sürümleri ve farklı yapılandırmalarla büyük ağlarda
94
çalışmayı mümkün kılmak veya sürüm denemeleri yapabilmek amacıyla
90
<p><code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code>
91
yönergesi sunucunun belli bir sürümünün çalıştırılması halinde uygulanabilecek
92
yönergeleri içerebilmesi dışında <code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code> ve <code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> yönergeleri gibidir. <code class="module"><a href="./mod/mod_version.html">mod_version</a></code>
93
modülü farklı httpd sürümleri ve farklı yapılandırmalarla büyük ağlarda
94
çalışmayı mümkün kılmak veya sürüm denemeleri yapabilmek amacıyla
95
95
tasarlanmıştır.</p>
97
97
<div class="example"><p><code>
106
106
<p><code class="directive"><a href="./mod/core.html#ifdefine"><IfDefine></a></code>,
107
107
<code class="directive"><a href="./mod/core.html#ifmodule"><IfModule></a></code> ve
108
<code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code>
109
yönergelerinin önüne "!" konularak olumsuz koşullar için uygulanabilir.
110
Ayrıca, bu bölümler daha karmaşık sınırlamalar elde etmek amacıyla bir
108
<code class="directive"><a href="./mod/mod_version.html#ifversion"><IfVersion></a></code>
109
yönergelerinin önüne "!" konularak olumsuz koşullar için uygulanabilir.
110
Ayrıca, bu bölümler daha karmaşık sınırlamalar elde etmek amacıyla bir
111
111
diğerinin içinde kullanılabilirler.</p>
112
112
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
113
113
<div class="section">
114
114
<h2><a name="file-and-web" id="file-and-web">Dosya Sistemi ve Site Alanı</a></h2>
116
<p>En sık kullanılan yapılandırma bölümü taşıyıcıları dosya sistemindeki
117
veya site alanındaki belli yerlerin yapılandırmalarını değiştirmekte
118
kullanılanlardır. Öncelikle, bu ikisi arasındaki farkları bilmek önemlidir.
119
Dosya sistemi disklerinizin işletim sistemi tarafından size gösterilen halidir.
120
Örneğin, öntanımlı kurulumda Apache, Unix sistemlerinde
121
<code>/usr/local/apache2</code> altındayken Windows sistemlerinde
122
<code>"c:/Program Files/Apache Group/Apache2"</code> altındadır.
123
(Bilgi: Windows için bile, Apache’de dosya yolu belirtilirken tersbölü
124
değil normal bölü karakterleri kullanılır.) Site alanı ise sunucu tarafından
125
istemciye sunulan dizin ağacıdır. Yani, site alanı içindeki <code>/dir/</code>
126
dizini, Apache’nin Unix üzerinde dosya sistemine öntanımlı olarak kurulduğu
127
yer göz önüne alınarak, dosya sistemindeki
128
<code>/usr/local/apache2/htdocs/dir/</code> dizinine karşılıktır. Site
129
sayfaları veritabanlarından veya başka yerlerden devingen olarak
130
üretilebildiğinden site alanlarının doğrudan dosya sistemine eşlenmesi
116
<p>En sık kullanılan yapılandırma bölümü taşıyıcıları dosya sistemindeki
117
veya site alanındaki belli yerlerin yapılandırmalarını değiştirmekte
118
kullanılanlardır. Öncelikle, bu ikisi arasındaki farkları bilmek önemlidir.
119
Dosya sistemi disklerinizin işletim sistemi tarafından size gösterilen halidir.
120
Örneğin, öntanımlı kurulumda Apache, Unix sistemlerinde
121
<code>/usr/local/apache2</code> altındayken Windows sistemlerinde
122
<code>"c:/Program Files/Apache Group/Apache2"</code> altındadır.
123
(Bilgi: Windows için bile, Apache’de dosya yolu belirtilirken tersbölü
124
değil normal bölü karakterleri kullanılır.) Site alanı ise sunucu tarafından
125
istemciye sunulan dizin ağacıdır. Yani, site alanı içindeki <code>/dir/</code>
126
dizini, Apache’nin Unix üzerinde dosya sistemine öntanımlı olarak kurulduğu
127
yer göz önüne alınarak, dosya sistemindeki
128
<code>/usr/local/apache2/htdocs/dir/</code> dizinine karşılıktır. Site
129
sayfaları veritabanlarından veya başka yerlerden devingen olarak
130
üretilebildiğinden site alanlarının doğrudan dosya sistemine eşlenmesi
131
131
gerekli değildir.</p>
133
133
<h3><a name="filesystem" id="filesystem">Dosya Sistemi Taşıyıcıları</a></h3>
135
135
<p><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
136
136
ve <code class="directive"><a href="./mod/core.html#files"><Files></a></code> taşıyıcıları,
137
<a class="glossarylink" href="./glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> karşılıkları ile beraber,
138
yönergeleri dosya sisteminin parçalarına uygularlar. Bir <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümü içindeki yönergeler
139
belli bir dosya sistemi dizinine ve onun alt dizinlerine uygulanır. Aynı etki
140
<a href="howto/htaccess.html">.htaccess dosyaları</a> kullanılarak da
141
sağlanabilir. Örneğin aşağıdaki yapılandırmada, <code>/var/web/dir1</code>
137
<a class="glossarylink" href="./glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> karşılıkları ile beraber,
138
yönergeleri dosya sisteminin parçalarına uygularlar. Bir <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümü içindeki yönergeler
139
belli bir dosya sistemi dizinine ve onun alt dizinlerine uygulanır. Aynı etki
140
<a href="howto/htaccess.html">.htaccess dosyaları</a> kullanılarak da
141
sağlanabilir. Örneğin aşağıdaki yapılandırmada, <code>/var/web/dir1</code>
142
142
dizini ve alt dizinlerinde dizin içeriğinin listelenmesi etkin kılınmaktadır.</p>
144
144
<div class="example"><p><code>
149
149
</Directory>
150
150
</code></p></div>
152
<p>Bir <code class="directive"><a href="./mod/core.html#files"><Files></a></code> bölümü
153
içindeki yönergeler, hangi dizinde bulunduğuna bakılmaksızın ismi
154
belirtilen dosyalara uygulanır. Örneğin, aşağıdaki yapılandırma yönergeleri
155
yapılandırma dosyasının ana bölümüne yerleştirildiği takdirde
156
<code>gizli.html</code> isimli dosyalara nerede bulunursa bulunsun erişime
152
<p>Bir <code class="directive"><a href="./mod/core.html#files"><Files></a></code> bölümü
153
içindeki yönergeler, hangi dizinde bulunduğuna bakılmaksızın ismi
154
belirtilen dosyalara uygulanır. Örneğin, aşağıdaki yapılandırma yönergeleri
155
yapılandırma dosyasının ana bölümüne yerleştirildiği takdirde
156
<code>gizli.html</code> isimli dosyalara nerede bulunursa bulunsun erişime
157
157
izin vermeyecektir.</p>
159
159
<div class="example"><p><code>
166
166
</code></p></div>
168
<p>Dosya sisteminin belli bir yerindeki belli dosyalarla ilgili yaptırımlar
168
<p>Dosya sisteminin belli bir yerindeki belli dosyalarla ilgili yaptırımlar
169
169
için <code class="directive"><a href="./mod/core.html#files"><Files></a></code> ve
170
<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümleri
171
birlikte kullanılabilir. Örneğin, aşağıdaki yapılandırma
170
<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümleri
171
birlikte kullanılabilir. Örneğin, aşağıdaki yapılandırma
172
172
<code>/var/web/dir1/gizli.html</code>,
173
173
<code>/var/web/dir1/subdir2/gizli.html</code>,
174
<code>/var/web/dir1/subdir3/gizli.html</code> ve
175
<code>/var/web/dir1/</code> altında bulunabilecek diğer tüm
174
<code>/var/web/dir1/subdir3/gizli.html</code> ve
175
<code>/var/web/dir1/</code> altında bulunabilecek diğer tüm
176
176
<code>gizli.html</code> dosyalarına erişimi yasaklar.</p>
178
178
<div class="example"><p><code>
192
192
<h3><a name="webspace" id="webspace">Site Alanı Taşıyıcıları</a></h3>
194
<p><code class="directive"><a href="./mod/core.html#location"><Location></a></code> yönergesi ve
195
yönergenin <a class="glossarylink" href="./glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> karşılığı site
196
alanındaki içerik için yapılandırmayı değiştirir. Örneğin aşağıdaki
197
yapılandırma, <code>/gizli</code> ile başlayan URL yollarına erişimi engeller.
194
<p><code class="directive"><a href="./mod/core.html#location"><Location></a></code> yönergesi ve
195
yönergenin <a class="glossarylink" href="./glossary.html#regex" title="sözlüğe bakınız">düzenli ifade</a> karşılığı site
196
alanındaki içerik için yapılandırmayı değiştirir. Örneğin aşağıdaki
197
yapılandırma, <code>/gizli</code> ile başlayan URL yollarına erişimi engeller.
198
198
Özellikle, <code>http://siteniz.mesela.dom/gizli</code>,
199
199
<code>http://siteniz.mesela.dom/gizli123</code> ve
200
<code>http://siteniz.mesela.dom/gizli/dir/dosya.html</code>
201
istekleri yanında <code>/gizli</code> ile başlayan diğer isteklere de
200
<code>http://siteniz.mesela.dom/gizli/dir/dosya.html</code>
201
istekleri yanında <code>/gizli</code> ile başlayan diğer isteklere de
204
204
<div class="example"><p><code>
210
210
</Location>
211
211
</code></p></div>
213
<p>Dosya sistemi ile etkileşime girmeyen herşey için
214
<code class="directive"><a href="./mod/core.html#location"><Location></a></code> yönergesi gerekir.
215
Aşağıdaki örnekte, belli bir URL’nin <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> modülü
216
tarafından sağlanan bir dahili Apache eylemcisine nasıl eşlenebileceği
217
gösterilmiştir. Bu örnek için dosya sisteminde <code>server-status</code>
213
<p>Dosya sistemi ile etkileşime girmeyen herşey için
214
<code class="directive"><a href="./mod/core.html#location"><Location></a></code> yönergesi gerekir.
215
Aşağıdaki örnekte, belli bir URL’nin <code class="module"><a href="./mod/mod_status.html">mod_status</a></code> modülü
216
tarafından sağlanan bir dahili Apache eylemcisine nasıl eşlenebileceği
217
gösterilmiştir. Bu örnek için dosya sisteminde <code>server-status</code>
218
218
adında bir dosya veya dizin bulunması gerekli değildir.</p>
220
220
<div class="example"><p><code>
231
231
<p><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>,
232
232
<code class="directive"><a href="./mod/core.html#files"><Files></a></code> ve
233
<code class="directive"><a href="./mod/core.html#location"><Location></a></code> yönergelerinde,
234
Standart C kütüphanesindeki <code>fnmatch</code> işlevindeki gibi kabuk tarzı
235
dosya ismi kalıpları kullanılabilir. "*" karakteri herhangi bir karakter
233
<code class="directive"><a href="./mod/core.html#location"><Location></a></code> yönergelerinde,
234
Standart C kütüphanesindeki <code>fnmatch</code> işlevindeki gibi kabuk tarzı
235
dosya ismi kalıpları kullanılabilir. "*" karakteri herhangi bir karakter
236
236
dizisi ile eşleşirken "?" karakteri tek tek karakterlerle ve "[<em>seq</em>]"
237
kalıbı ise <em>seq</em> içindeki her karakterle eşleşir. "/" karakteri her
237
kalıbı ise <em>seq</em> içindeki her karakterle eşleşir. "/" karakteri her
238
238
hangi bir kalıp karakteri ile eşleşmez; açıkça belirtilmesi gerekir.</p>
240
<p>Daha esnek bir eşleşmenin gerekli olduğu durumlar için her taşıyıcının bir
241
düzenli ifade karşılığı vardır. <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code> ve <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code> yönergelerinde gerekli eşleşmeleri seçmek için
242
perl uyumlu <a class="glossarylink" href="./glossary.html#regex" title="sözlüğe bakınız">düzenli ifadelerin</a> kullanımına
240
<p>Daha esnek bir eşleşmenin gerekli olduğu durumlar için her taşıyıcının bir
241
düzenli ifade karşılığı vardır. <code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>, <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code> ve <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code> yönergelerinde gerekli eşleşmeleri seçmek için
242
perl uyumlu <a class="glossarylink" href="./glossary.html#regex" title="sözlüğe bakınız">düzenli ifadelerin</a> kullanımına
243
243
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>
245
<p>Tüm kullanıcı dizinlerine ilişkin yapılandırmayı değiştirmek için dosya
245
<p>Tüm kullanıcı dizinlerine ilişkin yapılandırmayı değiştirmek için dosya
246
246
ismi kalıpları şöyle kullanılabilirdi:</p>
248
248
<div class="example"><p><code>
269
269
<h3><a name="whichwhen" id="whichwhen">Ne, Ne Zaman Kullanılır?</a></h3>
271
<p>Dosya sistemi taşıyıcıları ile site alanı taşıyıcıları arasında seçim
272
yapmak aslında oldukça kolaydır. Dosya sisteminde bulunan nesnelere
273
uygulanacak yönergeler için daima <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> veya <code class="directive"><a href="./mod/core.html#files"><Files></a></code> kullanılır. Dosya sisteminde bulunmayan nesnelere
274
(bir sayfanın bir veritabanı tarafından üretilmesi gibi) uygulanacak
271
<p>Dosya sistemi taşıyıcıları ile site alanı taşıyıcıları arasında seçim
272
yapmak aslında oldukça kolaydır. Dosya sisteminde bulunan nesnelere
273
uygulanacak yönergeler için daima <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> veya <code class="directive"><a href="./mod/core.html#files"><Files></a></code> kullanılır. Dosya sisteminde bulunmayan nesnelere
274
(bir sayfanın bir veritabanı tarafından üretilmesi gibi) uygulanacak
275
275
yönergeler için ise <code class="directive"><a href="./mod/core.html#location"><Location></a></code> kullanılır.</p>
277
<p>Dosya sistemindeki nesnelere erişimi kısıtlarken asla <code class="directive"><a href="./mod/core.html#location"><Location></a></code> kullanmamak önemlidir.
278
Bunun sebebi farklı site alanı konumlarının (URL’ler) aynı dosya sistemi
279
konumuna eşlenebilmesi dolayısıyla kısıtlamalarınızın etrafından
280
dolaşılabilmesine izin vermesidir. Örneğin, aşağıdaki yapılandırmayı
277
<p>Dosya sistemindeki nesnelere erişimi kısıtlarken asla <code class="directive"><a href="./mod/core.html#location"><Location></a></code> kullanmamak önemlidir.
278
Bunun sebebi farklı site alanı konumlarının (URL’ler) aynı dosya sistemi
279
konumuna eşlenebilmesi dolayısıyla kısıtlamalarınızın etrafından
280
dolaşılabilmesine izin vermesidir. Örneğin, aşağıdaki yapılandırmayı
283
283
<div class="example"><p><code>
289
289
</Location>
290
290
</code></p></div>
292
<p><code>http://siteniz.mesela.dom/dir/</code> için bir istek yapılmışsa
293
bu doğru çalışacaktır. Fakat dosya sistemi harf büyüklüğüne duyarsızsa
294
ne olacak? Kısıtlamanız, istek <code>http://siteniz.mesela.dom/DIR/</code>
295
şeklinde yapılarak kolayca geçersiz kılınabilir. Halbuki <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> yönergesi isteğin nasıl
296
yapıldığına bakılmaksızın bu konumdan sunulan her türlü içeriğe uygulanacaktı.
297
(Dosya sistemi bağlarıyla bu da aşılabilir. Sembolik bağlar kullanılarak aynı
292
<p><code>http://siteniz.mesela.dom/dir/</code> için bir istek yapılmışsa
293
bu doğru çalışacaktır. Fakat dosya sistemi harf büyüklüğüne duyarsızsa
294
ne olacak? Kısıtlamanız, istek <code>http://siteniz.mesela.dom/DIR/</code>
295
şeklinde yapılarak kolayca geçersiz kılınabilir. Halbuki <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> yönergesi isteğin nasıl
296
yapıldığına bakılmaksızın bu konumdan sunulan her türlü içeriğe uygulanacaktı.
297
(Dosya sistemi bağlarıyla bu da aşılabilir. Sembolik bağlar kullanılarak aynı
298
298
dizin dosya sisteminin bir çok yerine yerleştirilebilir. <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> yönergesi dosya yolunu
299
sıfırlamaksızın sembolik bağları izleyecektir. Bu bakımdan, en yüksek
300
seviyede güvenlik için uygun <code class="directive"><a href="./mod/core.html#options">Options</a></code>
299
sıfırlamaksızın sembolik bağları izleyecektir. Bu bakımdan, en yüksek
300
seviyede güvenlik için uygun <code class="directive"><a href="./mod/core.html#options">Options</a></code>
301
301
yönergesi ile sembolik bağların izlenmesi devredışı bırakılabilir.)</p>
303
<p>Belki de siz sırf harf büyüklüğüne duyarlı bir dosya sistemi
304
kullanıyorsunuz diye böyle uygulamalara ihtiyacınız olmadığını
305
düşünüyor olabilirsiniz, fakat aynı site alanını çok sayıda dosya
306
sistemi konumuna eşleyecek daha bir sürü yol bulunduğunu unutmayınız.
307
Bu bakımdan dosya sisteminde yapacağınız kısıtlamalarda daima dosya
308
sistemi taşıyıcılarını kullanmalısınız. Bununla birlikte bu kuralın da
309
bir istisnası vardır. Yapılandırma kısıtlamalarının bir
310
<code><Location/></code> bölümü içine koyulması, bu bölüme konan
303
<p>Belki de siz sırf harf büyüklüğüne duyarlı bir dosya sistemi
304
kullanıyorsunuz diye böyle uygulamalara ihtiyacınız olmadığını
305
düşünüyor olabilirsiniz, fakat aynı site alanını çok sayıda dosya
306
sistemi konumuna eşleyecek daha bir sürü yol bulunduğunu unutmayınız.
307
Bu bakımdan dosya sisteminde yapacağınız kısıtlamalarda daima dosya
308
sistemi taşıyıcılarını kullanmalısınız. Bununla birlikte bu kuralın da
309
bir istisnası vardır. Yapılandırma kısıtlamalarının bir
310
<code><Location/></code> bölümü içine koyulması, bu bölüme konan
311
311
yönergelerin etki alanının belli bir URL ile sınırlı olmaması nedeniyle
312
312
mükemmelen güvenlidir.</p>
361
361
<li><code class="directive"><a href="./mod/core.html#allowoverride">AllowOverride</a></code> yönergesi sadece
362
362
<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümlerinde çalışır.</li>
364
<li><code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergesinin
365
<code>FollowSymLinks</code> ve <code>SymLinksIfOwnerMatch</code>
366
seçenekleri sadece <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümlerinde veya <code>.htaccess</code>
364
<li><code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergesinin
365
<code>FollowSymLinks</code> ve <code>SymLinksIfOwnerMatch</code>
366
seçenekleri sadece <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümlerinde veya <code>.htaccess</code>
367
367
dosyalarında çalışır.</li>
369
<li><code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergesi
370
<code class="directive"><a href="./mod/core.html#files"><Files></a></code> ve
371
<code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>
369
<li><code class="directive"><a href="./mod/core.html#options">Options</a></code> yönergesi
370
<code class="directive"><a href="./mod/core.html#files"><Files></a></code> ve
371
<code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code>
372
372
bölümlerinde kullanılamaz.</li>
374
374
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
375
375
<div class="section">
376
376
<h2><a name="mergin" id="mergin">Bölümler Nasıl Katıştırılır?</a></h2>
378
<p>Yapılandırma bölümleri belli bir sıra ile uygulanır. Yapılandırma
379
yönergelerinin yorumlanışı üzerinde önemli etkilere sahip olabilmesi
378
<p>Yapılandırma bölümleri belli bir sıra ile uygulanır. Yapılandırma
379
yönergelerinin yorumlanışı üzerinde önemli etkilere sahip olabilmesi
380
380
nedeniyle neyin ne zaman çalıştığını anlamak çok önemlidir.</p>
382
382
<p>Yapılandırma bölümlerinin katıştırılma sırası şöyledir:</p>
385
385
<li><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> (düzenli ifadeler hariç)
386
ve <code>.htaccess</code> aynı anda işleme sokulur
387
(<code>.htaccess</code> ile eğer izin verilmişse <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> içindeki bazı
386
ve <code>.htaccess</code> aynı anda işleme sokulur
387
(<code>.htaccess</code> ile eğer izin verilmişse <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> içindeki bazı
388
388
yönergeler geçersiz kılınabileceği için).</li>
390
390
<li><code class="directive"><a href="./mod/core.html#directorymatch"><DirectoryMatch></a></code>
393
393
<li><code class="directive"><a href="./mod/core.html#files"><Files></a></code> ve <code class="directive"><a href="./mod/core.html#filesmatch"><FilesMatch></a></code> aynı anda işleme sokulur.</li>
395
395
<li><code class="directive"><a href="./mod/core.html#location"><Location></a></code>
396
ve <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code>
396
ve <code class="directive"><a href="./mod/core.html#locationmatch"><LocationMatch></a></code>
397
397
aynı anda işleme sokulur.</li>
400
400
<p><code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
401
bölümündekiler hariç, her grup, yapılandırma dosyasında bulundukları
402
sıraya göre işleme sokulurlar. Yukarıda 1. grup olan <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümü en kısa
403
dizin elemanından en uzun dizin elemanına doğru işleme sokulur.
404
Yani, örneğin, <code><Directory /var/web/dir></code> bölümü
405
<code><Directory /var/web/dir/subdir></code> bölümünden önce
406
işleme sokulacaktır. Eğer aynı uzunlukta çok sayıda dizin varsa
407
<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümleri
408
yapılandırma dosyasında bulundukları sıraya göre işleme sokulurlar.
409
<code class="directive"><a href="./mod/core.html#include">Include</a></code> yönergeleri ile
410
yapılandırmaya dahil edilen dosyaların içerikleri <code class="directive"><a href="./mod/core.html#include">Include</a></code> yönergesinin bulunduğu yere
401
bölümündekiler hariç, her grup, yapılandırma dosyasında bulundukları
402
sıraya göre işleme sokulurlar. Yukarıda 1. grup olan <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümü en kısa
403
dizin elemanından en uzun dizin elemanına doğru işleme sokulur.
404
Yani, örneğin, <code><Directory /var/web/dir></code> bölümü
405
<code><Directory /var/web/dir/subdir></code> bölümünden önce
406
işleme sokulacaktır. Eğer aynı uzunlukta çok sayıda dizin varsa
407
<code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümleri
408
yapılandırma dosyasında bulundukları sıraya göre işleme sokulurlar.
409
<code class="directive"><a href="./mod/core.html#include">Include</a></code> yönergeleri ile
410
yapılandırmaya dahil edilen dosyaların içerikleri <code class="directive"><a href="./mod/core.html#include">Include</a></code> yönergesinin bulunduğu yere
411
411
konulduktan sonra işleme sokulurlar.</p>
413
<p><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code>
414
bölümlerinin içindeki bölümler, sanal konak tanımı dışındaki
413
<p><code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></a></code>
414
bölümlerinin içindeki bölümler, sanal konak tanımı dışındaki
415
415
karşılıklarından <em>sonra</em> uygulanırlar.</p>
417
<p>İstek <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> tarafından sunulduğu takdirde,
418
<code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code> taşıyıcısı
419
işlem sırasında <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
417
<p>İstek <code class="module"><a href="./mod/mod_proxy.html">mod_proxy</a></code> tarafından sunulduğu takdirde,
418
<code class="directive"><a href="./mod/mod_proxy.html#proxy"><Proxy></a></code> taşıyıcısı
419
işlem sırasında <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code>
420
420
taşıyıcısının yerini alır.</p>
422
422
<p>Sonraki bölümler öncekileri geçersiz kılmak üzere işleme alınırlar.</p>
424
424
<div class="note"><h3>Bazı Teknik Bilgiler</h3>
425
Aslında, isim dönüşüm aşamasından (<code>Aliases</code> ve
426
<code>DocumentRoots</code>, URL’leri dosya isimlerine eşlemek için
427
kullanılırken) hemen önce uygulanan bir
428
<code><Location></code>/<code><LocationMatch></code>
429
dizisi vardır. Bu dizinin sonuçları isim dönüşüm aşaması tamamlandıktan
425
Aslında, isim dönüşüm aşamasından (<code>Aliases</code> ve
426
<code>DocumentRoots</code>, URL’leri dosya isimlerine eşlemek için
427
kullanılırken) hemen önce uygulanan bir
428
<code><Location></code>/<code><LocationMatch></code>
429
dizisi vardır. Bu dizinin sonuçları isim dönüşüm aşaması tamamlandıktan
430
430
sonra tamamen elden çıkarılır.
433
433
<h3><a name="merge-examples" id="merge-examples">Bazı Örnekler</a></h3>
435
<p>Aşağıdaki yapay örnekte katıştırma sırası gösterilmiştir. Hepsinin
436
aynı isteğe uygulandığı varsayımıyla, bu örnekteki yönergeler
435
<p>Aşağıdaki yapay örnekte katıştırma sırası gösterilmiştir. Hepsinin
436
aynı isteğe uygulandığı varsayımıyla, bu örnekteki yönergeler
437
437
A > B > C > D > E sırasıyla uygulanacaktır.</p>
439
439
<div class="example"><p><code>
462
462
</code></p></div>
464
<p>Daha somut bir örnek olarak aşağıdakini ele alalım. <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümlerindeki erişim sınırlamaları
465
ne olursa olsun <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
466
bölümü son olarak değerlendirmeye alınacak ve sunucuya sınırsız erişim
467
verecektir. Başka bir deyişle, katıştırma sırası önemlidir, bu nedenle
464
<p>Daha somut bir örnek olarak aşağıdakini ele alalım. <code class="directive"><a href="./mod/core.html#directory"><Directory></a></code> bölümlerindeki erişim sınırlamaları
465
ne olursa olsun <code class="directive"><a href="./mod/core.html#location"><Location></a></code>
466
bölümü son olarak değerlendirmeye alınacak ve sunucuya sınırsız erişim
467
verecektir. Başka bir deyişle, katıştırma sırası önemlidir, bu nedenle
468
468
dikkatli olmalısınız!</p>
470
470
<div class="example"><p><code>