blob: a29508eac9141313f0a210ac5149d5cd4dfcfdab [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?>
<!-- English Revision: 1885047:1917055 (outdated) -->
<!-- =====================================================
Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr>
Reviewed by: Orhan Berent <berent belgeler.gen.tr>
========================================================== -->
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="env.xml.meta">
<title>Apache’de Ortam Değişkenleri</title>
<summary>
<p>Apache HTTP Sunucusunu etkileyen ortam değişkenleri iki çeşittir.</p>
<p>İlki, işletim sisteminin denetimindeki ortam değişkenleridir. Bu
değişkenlere değer atama işlemi sunucu başlatılmadan önce yapılır.
Bunlar yapılandırma dosyalarının içinde kullanılabilir. Ayrıca,
istenirse PassEnv yönergesi kullanılarak bunlar CGI betiklerine ve
SSI sayfalarına da aktarılabilir.</p>
<p>İkincisi ise, Apache HTTP Sunucusunun kendi ortam değişkenleridir.
Bu değişkenlerde saklanan bilgi erişim denetimi, günlük kaydı gibi
çeşitli işlemleri denetlemekte kullanılabilir. Değişkenler ayrıca, CGI
betikleri gibi harici uygulamalarla iletişim mekanizması olarak da
kullanılabilir. Bu belgede bu değişkenler üzerindeki işlemlere ve
kullanım şekillerine değinilmiştir.</p>
<p>Bu değişkenlere <em>ortam değişkenleri</em> dense de işletim sisteminin
ortam değişkenleri gibi değillerdir. Bunlar sadece Apache ortamında
geçerli değişkenler olup işletim sisteminin bu değişkenlerden haberi
olmaz. Sadece CGI betikleri ve SSI sayfaları gibi harici uygulamalar
tarafından üretilen ortam değişkenleri sistem ortamının değişkenleri
haline gelirler. İşletim sistemi ortamına çalışmakta olan sunucudan
müdahale etmek isterseniz işletim sisteminizin kabuğu tarafından sağlanan
standart ortam müdahale mekanizmalarını kullanmalısınız.</p>
</summary>
<section id="setting">
<title>Ortam Değişkenlerinin Atanması</title>
<related>
<modulelist>
<module>mod_cache</module>
<module>mod_env</module>
<module>mod_rewrite</module>
<module>mod_setenvif</module>
<module>mod_unique_id</module>
</modulelist>
<directivelist>
<directive module="mod_setenvif">BrowserMatch</directive>
<directive module="mod_setenvif">BrowserMatchNoCase</directive>
<directive module="mod_env">PassEnv</directive>
<directive module="mod_rewrite">RewriteRule</directive>
<directive module="mod_env">SetEnv</directive>
<directive module="mod_setenvif">SetEnvIf</directive>
<directive module="mod_setenvif">SetEnvIfNoCase</directive>
<directive module="mod_env">UnsetEnv</directive>
</directivelist>
</related>
<section id="basic-manipulation">
<title>Temel Ortamda Değişiklik</title>
<p>Apache ortamında bir ortam değişkenine müdahale etmenin en temel
yolu hiçbir koşula tabi olmayan <directive module="mod_env"
>SetEnv</directive> yönergesini kullanmaktır. Bu değişkenleri Apache
başlatılırken sistem ortam değişkenleri haline getirmek için
<directive module="mod_env">PassEnv</directive> yönergesi
kullanılabilir.</p>
</section>
<section id="conditional">
<title>İsteğe Bağlı Şartlı Atamalar</title>
<p>Esnekliği arttırmak için, <module>mod_setenvif</module> modülü ile
isteğin özelliklerine uygun olarak her isteğe özel değişkenler
atayabilmek mümkün kılınmıştır. Örneğin, bir değişken sadece isteği
yapan tarayıcıya özgü bir değerle veya sadece belli bir başlık
alanınına bağlı olarak atanabilir. Daha da esnek bir mekanizma,
ortam değişkeni atamak için <code>[E=...]</code> seçeneğinin
kullanıldığı <module>mod_rewrite</module> modülünün <directive
module="mod_rewrite" >RewriteRule</directive> yönergesi ile
sağlanmıştır.</p>
</section>
<section id="unique-identifiers">
<title>Eşsiz Betimleyiciler</title>
<p>Son olarak, <module>mod_unique_id</module> <code>UNIQUE_ID</code>
ortam değişkenine her istek için o isteğin çok özel koşullar altında
tüm diğer istekler arasında eşsizliğini garanti edecek bir değer
atar.</p>
</section>
<section id="standard-cgi">
<title>Standart CGI Değişkenleri</title>
<p>Apache yapılandırmasıyla atanan ve kabuğa aktarılan ortam
değişkenlerinden başka <a href="http://www.ietf.org/rfc/rfc3875">CGI
Belirtimi</a>nin gerektirdiği istekler hakkında temel bilgileri
içeren ortam değişkenlerinin CGI betikleri ve SSI sayfalarınca
atanabilmesi sağlanmıştır.</p>
</section>
<section id="caveats">
<title>Bazı Yetersizlikler</title>
<ul>
<li>Standart CGI değişkenlerini ortam değişkenlerine müdahale
yönergelerini kullanarak değiştirmek veya geçersiz kılmak mümkün
değildir.</li>
<li>CGI betiklerini çalıştırmak için <program>suexec</program>
kullanıldığında ortam, CGI betikleri çalıştırılmadan önce
<em>güvenilir</em> değişkenler kalacak şekilde temizlenir.
<em>Güvenilir</em> değişken listesi <code>suexec.c</code> içinde
derleme sırasında tanımlanır.</li>
<li>Taşınabilirlik adına, ortam değişkenlerinin isimleri sadece
harfler, rakamlar ve alt çizgi imlerini içerebilir. Bunlara ek
olarak ismin ilk karakteri bir rakam olmamalıdır. Değişkenler CGI
betiklerine ve SSI sayfalarına aktarılırken bu sınırlamalara uygun
olmayan karakterlerin yerlerine alt çizgi imleri konur.</li>
<li>Bir özel durum, CGI betiklerine ve benzerlerine ortam
değişkenleri üzerinden aktarılan HTTP başlıklarıdır (aşağıya
bakın). Bunlar büyük harfe dönüştürülür ve sadece tireler
altçizgilere dönüştürülür. Eğer HTTP başlığı geçersiz karakter
içeriyorsa başlığın tamamı yoksayılır. Böyle bir durumda ne
yapılacağı öğrenmek için <a href="#fixheader">aşağıya</a>
bakın.</li>
<li>İsteklerin işleme konması sırasında <directive
module="mod_env">SetEnv</directive> yönergesi geç çalıştırılır,
yani <directive module="mod_setenvif">SetEnvIf</directive> ve
<directive module="mod_rewrite">RewriteCond</directive> gibi
yönergeler <directive module="mod_env">SetEnv</directive> ile
atanan değişken değerlerini görmezler.</li>
<li><module>mod_autoindex</module> ile dizin listesi oluşturulması
veya bir <directive module="mod_dir" >DirectoryIndex</directive>
için yol aranması gibi bir dahili <glossary ref="subrequest">alt
istek</glossary> için sunucu yol araması yaparken isteklere özgü
ortam değişkenleri alt istekler tarafından miras alınMAZ. Buna ek
olarak, <module>mod_setenvif</module> modülünün devreye girdiği API
fazlarından dolayı yapılan alt isteklerde
<directive module="mod_setenvif">SetEnvIf</directive> yönergeleri
ayrı ayrı değerlendirilMEZ.</li>
</ul>
</section>
</section>
<section id="using">
<title>Ortam Değişkenlerinin Kullanımı</title>
<related>
<modulelist>
<module>mod_authz_host</module>
<module>mod_cgi</module>
<module>mod_ext_filter</module>
<module>mod_headers</module>
<module>mod_include</module>
<module>mod_log_config</module>
<module>mod_rewrite</module>
</modulelist>
<directivelist>
<directive module="mod_authz_core">Require</directive>
<directive module="mod_log_config">CustomLog</directive>
<directive module="mod_access_compat">Allow</directive>
<directive module="mod_access_compat">Deny</directive>
<directive module="mod_ext_filter">ExtFilterDefine</directive>
<directive module="mod_headers">Header</directive>
<directive module="mod_log_config">LogFormat</directive>
<directive module="mod_rewrite">RewriteCond</directive>
<directive module="mod_rewrite">RewriteRule</directive>
</directivelist>
</related>
<section id="cgi-scripts">
<title>CGI Betikleri</title>
<p>Ortam değişkenlerinin başlıca amaçlarından biri CGI betikleriyle
iletişim kurmaktır. Yukarıda bahsedildiği gibi CGI betiklerine
aktarılan ortam Apache yapılandırmasında atanan değişkenlere ek
olarak istek hakkında standart temel bilgileri de içerir. Bu konuda
ayrıntılı bilgi edinmek için <a href="howto/cgi.html">CGI
Öğreticisi</a>ne bakabilirsiniz.</p>
</section>
<section id="ssi-pages">
<title>SSI Sayfaları</title>
<p>Sunucu tarafında <module>mod_include</module> modülünün
<code>INCLUDES</code> süzgeci ile yorumlanan SSI sayfalarında ortam
değişkenleri <code>echo</code> elemanı ile basılabilir ve sayfayı
isteğin özelliklerine uygun olarak oluşturmak için ortam
değişkenleri akış denetim elemanları içinde kullanılabilir. Apache
ayrıca, yukarıda bahsedildiği gibi standart CGI ortam değişkenli SSI
sayfalarını da sağlayabilmektedir. Daha ayrıntılı bilgi edinmek için
<a href="howto/ssi.html" >SSI Öğreticisi</a>ne bakabilirsiniz.</p>
</section>
<section id="access-control">
<title>Erişim Denetimi</title>
<p><code>Require env</code> ve <code>Require not env</code>
yönergeleri sayesinde ortam değişkenlerine dayalı olarak sunucuya
erişim denetim altında tutulabilir. Bunlar <directive
module="mod_setenvif">SetEnvIf</directive> yönergesi ile birlikte
kullanılmak suretiyle sunucuya erişim isteğin özelliklerine bağlı
olarak daha esnek bir tarzda denetlenebilir. Örneğin, belli bir
tarayıcının sunucuya erişimi bu yönergelerle engellenebilir.</p>
</section>
<section id="logging">
<title>Şartlı Günlük Kaydı</title>
<p>Ortam değişkenleri <directive module="mod_log_config"
>LogFormat</directive> yönergesinin <code>%e</code> seçeneği
kullanılarak erişim günlüğüne kaydedilebilir. Bundan başka,
<directive module="mod_log_config">CustomLog</directive> yönergesi
sayesinde isteklerin günlüğe kaydedilip kaydedilmeyeceğine ortam
değişkenlerine dayalı olarak karar verilmesi sağlanabilir. Bunlar
<directive module="mod_setenvif">SetEnvIf</directive> yönergesi ile
birlikte kullanılmak suretiyle günlük kayıtları isteğin
özelliklerine bağlı olarak daha esnek bir tarzda denetlenebilir.
Örneğin, <code>gif</code> uzantılı dosyalar için yapılan isteklerin
günlüğe kaydedilmemesi veya sadece alt ağınızın dışından gelen
isteklerin günlüğe kaydedilmesini isteyebilirsiniz.</p>
</section>
<section id="response-headers">
<title>Şartlı Yanıt Başlıkları</title>
<p><directive module="mod_headers">Header</directive> yönergesi belli
bir yanıt başlığının istemciye gönderilip gönderilmeyeceğine belli
bir ortam değişkeninin varlığına bakarak karar vermek için
kullanılabilir. Böylece örneğin, belli bir başlığın istemciye
gönderilmesine istemciden belli bir başlığın alınıp alınmadığına
bağlı olarak karar verilebilir.</p>
</section>
<section id="external-filter">
<title>Harici Süzgeçlerin Etkinleştirilmesi</title>
<p><module>mod_ext_filter</module> tarafından yapılandırılan harici
süzgeçler <directive module="mod_ext_filter"
>ExtFilterDefine</directive> yönergesinin <code>disableenv=</code> ve
<code>enableenv=</code> seçenekleri kullanılarak bir ortam
değişkenine bağlı olarak etkinleştirilebilir.</p>
</section>
<section id="url-rewriting">
<title>URL Kurgulaması</title>
<p><directive module="mod_rewrite">RewriteCond</directive>
yönergesinin <em>SınamaDizgesi</em> olarak kullanılan
<code>%{ENV:<em>değişken</em>}</code> biçemi
<module>mod_rewrite</module> yeniden yazma motorunun ortam
değişkenlerine bağlı kararlar almasını mümkün kılar. Yalnız şuna
dikkat ediniz: <module>mod_rewrite</module>’ta <code>ENV:</code>
öneki kullanılmadan belirtilen değişkenler ortam değişkenleri
değillerdir. Onlar <module>mod_rewrite</module>’a özgü diğer
modüllerden erişilemeyen özel değişkenlerdir.</p>
</section>
</section>
<section id="special">
<title>Özel Amaçlı Ortam Değişkenleri</title>
<p>Birlikte çalışabilirlik sorunları Apache’nin belli istemcilerle
veri alışverişi sırasında davranışını değiştirmesini gerektirebilir.
Genellikle <directive module="mod_env" >SetEnv</directive> ve
<directive module="mod_env" >PassEnv</directive> yönergelerinden
başka <directive module="mod_setenvif" >BrowserMatch</directive>
gibi yönergelerle ortam değişkenleri atanarak bunu sağlayan
mekanizmaların olabildiğince esnek davranabilmesi sağlanabilir.</p>
<section id="downgrade">
<title><code>downgrade-1.0</code></title>
<p>İstek, daha yüksek bir HTTP protokolüyle yapılmış olsa bile
HTTP/1.0 isteği olarak ele alınır.</p>
</section>
<section id="force-gzip">
<title><code>force-gzip</code></title>
<p><code>DEFLATE</code> süzgeci etkinse tarayıcının tercih ettiği
kodlama koşulsuz olarak yoksayılarak sıkıştırılmış çıktı
gönderilir.</p>
</section>
<section id="force-no-vary">
<title><code>force-no-vary</code></title>
<p>İstemciye gönderilmeden önce yanıttan <code>Vary</code> alanının
çıkarılmasına sebep olur. Bazı istemciler bu alanı gerektiği gibi
yorumlayamazlar, bu değişken atanarak bu sorunla karşılaşılmamaya
çalışılır. Bu değişkenin atanması ayrıca
<strong>force-response-1.0</strong> değişkeninin de atanmasına sebep
olur.</p>
</section>
<section id="force-response">
<title><code>force-response-1.0</code></title>
<p>HTTP/1.0 isteği yapan istemcilere HTTP/1.0 yanıtı verilmesini zorunlu
kılar. AOL vekillerindeki bir sorun nedeniyle gerçeklenmiştir. Bazı
HTTP/1.0 istemciler HTTP/1.1 yanıtlarında doğru davranmayabilirler; bu
değişken atanarak bunların sorunları giderilebilir.</p>
</section>
<section id="gzip-only-text-html">
<title><code>gzip-only-text/html</code></title>
<p>Bu değişkene "1" değeri atandığında <code>text/html</code>’den
farklı içerik türleri için <module>mod_deflate</module> modülü
tarafından sağlanan <code>DEFLATE</code> çıktı süzgeci iptal
edilir. Sıkıştırılmış olarak saklanan dosyalar kullanıyorsanız bu
değişkeni <module>mod_negotiation</module> modülü de dikkate alır
(kimliğine bakarak sadece gzip için değil, tüm kodlamalar için bunu
yapar).</p>
</section>
<section id="no-gzip"><title><code>no-gzip</code></title>
<p>Bu değişken atandığında, <module>mod_deflate</module> modülünün
<code>DEFLATE</code> süzgeci kapatılır ve
<module>mod_negotiation</module> modülü kodlanmış kaynak teslimatını
reddeder.</p>
</section>
<section id="no-cache"><title>no-cache</title>
<p><em>2.2.12 sürümünden beri kullanılabilmektedir.</em></p>
<p>Atandığı takdirde, <module>mod_cache</module> artık
önbelleklenebilecek yanıtları kaydetmeyecektir. Bu ortam değişkeni bir
yanıtın halihazırda mevcut bir isteğe sunulmak üzere önbellekte olup
olmadığından etkilenmez.</p>
</section>
<section id="nokeepalive">
<title><code>nokeepalive</code></title>
<p>Bu değişken atandığında, <directive module="core"
>KeepAlive</directive> yönergesi iptal edilir.</p>
</section>
<section id="prefer-language">
<title><code>prefer-language</code></title>
<p>Değer olarak <code>en</code>, <code>ja</code> veya
<code>x-klingon</code> gibi bir dil kısaltması verilerek atanmışsa
<module>mod_negotiation</module> modülünün normal davranışını
değiştirerek belirtilen dilde bir teslimat yapılmaya çalışılır.
Böyle bir belge yoksa normal <a
href="content-negotiation.html">uzlaşım</a> süreci uygulanır.</p>
</section>
<section id="redirect-carefully">
<title><code>redirect-carefully</code></title>
<p>İstemciye bir yönlendirme gönderirken sunucuyu daha dikkatli olmaya
zorlar. Bu genellikle istemcinin yönlendirmeler konusunda sorunlu
olduğu bilindiği takdirde yararlı olur. Bu değişkenin gerçeklenme
sebebi, dizin kaynaklarına yönlendirmeler için DAV yöntemlerini
kullanan Microsoft'un WebFolders yazılımındaki bir sorundur.</p>
</section>
<section id="suppress-error-charset">
<title><code>suppress-error-charset</code></title>
<p><em>2.0.54 sürümünden beri mevcuttur.</em></p>
<p>Apache bir isteğe bir yönlendirme ile yanıt verdiğinde istemci
yönlendirmeyi kendiliğinden yapmaz veya yapamazsa kullanıcıya yanıtla
birlikte gönderilen metin gösterilir. Apache normal olarak bu metni
ISO-8859-1 ile kodlar.</p>
<p>Ancak, yönlendirmenin yapıldığı sayfa farklı bir karakter kümesine
sahipse bazı tarayıcı sürümleri asıl sayfanın karakter kodlaması yerine
yönlendirmenin kodlamasını kullanmaya çalışırlar. Bu özellikle Yunanca
gibi dillerde hedef sayfanın hatalı yorumlanmasına yol açar.</p>
<p>Bu ortam değişkeninin atanması Apache’nin yönlendirme için karakter
kümesi belirtmemesini sağlamak suretiyle hatalı tarayıcıların hedef
sayfayı yanlış karakter kodlamasıyla yorumlamasını önler.</p>
<note type="warning">
<title>Güvenlik Uyarısı</title>
<p>Hata sayfalarının bir karakter kümesi belirtilmeksizin yollanması,
HTTP/1.1 belirtimine uymayan ve karakter kümesini içeriğe bakarak
tahmin etmeye çalışan tarayıcılarda (MSIE) karşı siteden betik
saldırısı yorumuna sebep olabilir. Girdi verisindeki UTF-7 içerik
(istek betimleyici gibi) karşı siteden betik saldırılarını engellemek
için tasarlanmış normal önceleme mekanizmalarıyla öncelenmeyeceği için
böyle tarayıcılar UTF-7 karakter kodlaması kullanılarak kolayca
aldatılabilir.</p>
</note>
</section>
<section id="proxy"><title><code>force-proxy-request-1.0</code>,
<code>proxy-nokeepalive</code>, <code>proxy-sendchunked</code> ve
<code>proxy-sendcl</code>, <code>proxy-chain-auth</code>,
<code>proxy-interim-response</code>, <code>proxy-initial-not-pooled</code>
</title>
<p>Bu yönergeler <module>mod_proxy</module> modülünün normal protokol
davranışını değiştirirler. Daha ayrıntılı bilgi için
<module>mod_proxy</module> ve <module>mod_proxy_http</module>
belgelerine bakınız.</p>
</section>
</section>
<section id="examples">
<title>Örnekler</title>
<section id="fixheader">
<title>Bozuk başlıkların CGI betiklerine aktarılması</title>
<p>2.4 sürümünden itibaren, <module>mod_cgi</module> modülü ve diğer
modüllerde HTTP başlıklarının ortam değişkenlerine dönüştürülmesi
bağlamında Apache daha seçici davranmaktadır. Önce HTTP başlığındaki
geçersiz karakterlerin tamamı altçizgilere dönüştürülür. Bu, başlık
zerki yoluyla yapılan karşı-site-betiklerini-çalıştırma saldırısını
önlemeye yöneliktir. (Bakınız: <a
href="http://events.ccc.de/congress/2007/Fahrplan/events/2212.en.html"
>Unusual Web Bugs</a>, slide 19/20).</p>
<p>Bozuk başlıklar gönderdiği halde bunlara dokunulmamasını gerektiren
bir istemciniz varsa, <module>mod_setenvif</module> ve
<module>mod_headers</module> modüllerinin sunduğu yapıyı örnekteki gibi
kullanarak bu sorunun üstesinden gelebilirsiniz:</p>
<highlight language="config">
#
# Aşağıdaki satırlarla bir istemcinin gönderdiği bozuk
# Accept_Encoding başlıklarının istenildiği gibi işlenmesi
# sağlanabilir.
#
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
</highlight>
</section>
<section id="misbehaving">
<title>Protokolü yanlış yorumlayan tarayıcıların davranışlarının
değiştirilmesi</title>
<p>Önceki sürümlerde bilinen istemci davranışlarına karşı önlem olarak
aşağıdaki satırların <code>httpd.conf</code> içinde bulunması
önerilirdi. Fakat, böyle tarayıcılar artık ortalıkta görünmediğinden
bu yapılandırmaya da artık gerek kalmamıştır.</p>
<highlight language="config">
#
# Aşağıdaki yönergeler normal HTTP yanıt davranışını değiştirirler.
# İlk yönerge Netscape 2.x ve kendini öyle gösteren tarayıcılar için
# kalıcı bağlantıyı (keepalive) iptal eder. İkinci yönerge ise HTTP/1.1
# protokolü bozuk olan ve 301/302 durum kodlu yönlendirme yanıtları
# kullanıldığında kalıcı bağlantıları gerektiği gibi desteklemeyen
# Microsoft Internet Explorer 4.0b2 içindir.
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#
# Aşağıdaki yönergeler HTTP/1.0 yanıtlarından başkasına yabancı olan
# tarayıcılara HTTP/1.1 yanıtlarının gönderilmesini iptal eder.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
</highlight>
</section>
<section id="no-img-log">
<title>Resim isteklerinin erişim günlüğüne kaydedilmemesi</title>
<p>Bu örnek resim isteklerinin erişim günlüğüne yazılmasını engeller.
Bu örnek değiştirilerek belli dizinlerin veya belli konaklardan
gelen isteklerin günlüğe kaydedilmesini engellemek amacıyla da
kullanılabilir.</p>
<highlight language="config">
SetEnvIf Request_URI \.gif image-request
SetEnvIf Request_URI \.jpg image-request
SetEnvIf Request_URI \.png image-request
CustomLog "logs/access_log" common env=!image-request
</highlight>
</section>
<section id="image-theft">
<title>“Resim Hırsızlığı” için önlem alınması</title>
<p>Bu örnekte sunucunuzda bulunmayan sayfalarda sunucunuzdaki
resimlerin kullanılmasının nasıl önleneceği gösterilmiştir. Bu
yapılandırma önerilmemekle birlikte nadir durumlarda işe yarar. Tüm
resimlerin <code>/siteler/resimler</code> dizini altında tutulduğu
varsayılmıştır.</p>
<highlight language="config">
SetEnvIf Referer "^http://www\.example\.com/" local_referal
# Referrer bilgisi göndermeyen tarayıcılara izin verelim
SetEnvIf Referer "^$" local_referal
&lt;Directory "/siteler/resimler"&gt;
Require env local_referal
&lt;/Directory&gt;
</highlight>
<p>Bu teknik hakkında daha ayrıntılı bilgi edinmek için ServerWatch
üzerindeki "<a
href="http://www.serverwatch.com/tutorials/article.php/1132731"
>Diğer sitelerin sizin resimlerinizle donatılmasını engellemek</a>"
belgesine bakınız.</p>
</section>
</section>
</manualpage>