| <?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 |
| <Directory "/siteler/resimler"> |
| Require env local_referal |
| </Directory> |
| </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> |