| <?xml version="1.0"?> |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd"> |
| <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?> |
| <!-- English Revision: 1727648 --> |
| <!-- ===================================================== |
| 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. |
| --> |
| |
| <modulesynopsis metafile="mod_setenvif.xml.meta"> |
| |
| <name>mod_setenvif</name> |
| <description>Ortam değişkenlerinin isteğin özelliklerine uygun olarak atanmasını sağlar</description> |
| <status>Base</status> |
| <sourcefile>mod_setenvif.c</sourcefile> |
| <identifier>setenvif_module</identifier> |
| |
| |
| <summary> |
| |
| <p><module>mod_setenvif</module> modülü dahili ortam değişkenlerinin |
| isteğin farklı bileşenlerinin belirttiğiniz düzenli ifade ile eşleşmesine |
| bağlı olarak atanmasını mümkün kılar. Bu ortam değişkenleri sunucunun |
| çeşitli kısımlarında yapılacak eylemlerin yanında CGI betiklerinde ve SSI |
| sayfalarında kullanılabilir hale gelmelerine karar verilirken |
| kullanılır.</p> |
| |
| <p>Yönergeler yapılandırma dosyasında yer aldıkları sıraya göre ele |
| alınırlar. Böylece daha karmaşık dizilimler kullanılabilir, bu örnekteki |
| tarayıcı Mozilla ise <code>netscape</code> ortam değişkeni atanmakta, |
| MSIE ise atanmamaktadır.</p> |
| |
| <highlight language="config"> |
| BrowserMatch ^Mozilla netscape |
| BrowserMatch MSIE !netscape |
| </highlight> |
| |
| <p><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.</p> |
| </summary> |
| |
| <seealso><a href="../env.html">Apache HTTP Sunucusundaki Ortam Değişkenleri</a></seealso> |
| |
| <directivesynopsis> |
| <name>BrowserMatch</name> |
| <description>Ortam değişkenlerini HTTP kullanıcı arayüzüne göre belirler. |
| </description> |
| <syntax>BrowserMatch <em>düzifd [!]ort-değişkeni</em>[=<em>değer</em>] |
| [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>FileInfo</override> |
| |
| <usage> |
| <p><directive>BrowserMatch</directive> yönergesi <directive |
| module="mod_setenvif" >SetEnvIf</directive> yönergesinin özel bir halidir |
| ve ortam değişkenlerine <code>User-Agent</code> HTTP istek başlığının |
| değerine göre atama yapar. Aşağıdaki iki satır aynı etkiye sahiptir:</p> |
| |
| <highlight language="config"> |
| BrowserMatch Robot is_a_robot |
| SetEnvIf User-Agent Robot is_a_robot |
| </highlight> |
| |
| <p>Başka örnekler:</p> |
| |
| <highlight language="config"> |
| BrowserMatch ^Mozilla forms jpeg=yes browser=netscape |
| BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript |
| BrowserMatch MSIE !javascript |
| </highlight> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>BrowserMatchNoCase</name> |
| <description>Ortam değişkenlerini HTTP kullanıcı arayüzünün harf büyüklüğüne |
| duyarsız eşleşmelerine bağlı olarak belirler.</description> |
| <syntax>BrowserMatchNoCase <em>düzifd [!]ort-değişkeni</em>[=<em>değer</em>] |
| [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>FileInfo</override> |
| |
| <usage> |
| |
| <p><directive>BrowserMatchNoCase</directive> yönergesi sözdizimsel ve |
| anlamsal olarak <directive |
| module="mod_setenvif">BrowserMatch</directive> yönergesinin eşdeğeridir. |
| Ancak, eşleşmelerde harf büyüklüğüne duyarsızdır. Örnek:</p> |
| |
| <highlight language="config"> |
| BrowserMatchNoCase mac platform=macintosh |
| BrowserMatchNoCase win platform=windows |
| </highlight> |
| |
| <p><directive>BrowserMatch</directive> ve |
| <directive>BrowserMatchNoCase</directive> yönergeleri <directive |
| module="mod_setenvif">SetEnvIf</directive> ve <directive |
| module="mod_setenvif">SetEnvIfNoCase</directive> yönergelerinin özel |
| halleridir. Bu bakımda aşağıdaki iki satır aynı etkiye sahiptir:</p> |
| |
| <highlight language="config"> |
| BrowserMatchNoCase Robot is_a_robot |
| SetEnvIfNoCase User-Agent Robot is_a_robot |
| </highlight> |
| </usage> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SetEnvIf</name> |
| <description>Ortam değişkenlerini isteğin özniteliklerine göre atar. |
| </description> |
| <syntax>SetEnvIf <em>öznitelik |
| düzifd [!]ort-değişkeni</em>[=<em>değer</em>] |
| [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>FileInfo</override> |
| |
| <usage> |
| <p><directive>SetEnvIf</directive> yönergesi ortam değişkenlerini isteğin |
| özniteliklerine göre tanımlar. İlk bileşen olarak belirtilen |
| <code><em>öznitelik</em></code> şu dört şeyden biri olabilir:</p> |
| |
| <ol> |
| <li>Bir HTTP istek başlığı alanı (ayrıntılı bilgi için bak: <a |
| href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a>); |
| örneğin: <code>Host</code>, <code>User-Agent</code>, |
| <code>Referer</code> ve <code>Accept-Language</code>. Bir düzenli |
| ifade kullanılarak birden fazla istek başlığı belirtilebilir.</li> |
| |
| <li>İsteğin aşağıdaki bileşenlerinden biri: |
| <ul> |
| <li><code>Remote_Host</code> - isteği yapan istemcinin konak ismi |
| (varsa)</li> |
| |
| <li><code>Remote_Addr</code> -isteği yapan istemcinin IP adresi</li> |
| |
| <li><code>Server_Addr</code> - isteği alan sunucunun IP adresi |
| (sadece 2.0.43 sonrası sürümler için)</li> |
| |
| <li><code>Request_Method</code> - kullanılan yöntemin ismi |
| (<code>GET</code>, <code>POST</code>, vs.)</li> |
| |
| <li><code>Request_Protocol</code> - İsteğin yapıldığı protokolün |
| ismi ve numarası ("HTTP/0.9", "HTTP/1.1" gibi)</li> |
| |
| <li><code>Request_URI</code> - HTTP istek satırında belirtilen |
| özkaynak; genellikle sorgu dizgesi olmaksızın şema ve konak ismini |
| içeren bir URL parçasıdır. Sorgu dizgeleriyle eşleşmeler hakkında |
| ayrıntılı bilgi edinmek için <module>mod_rewrite</module> |
| modülünün <directive module="mod_rewrite">RewriteCond</directive> |
| yönergesinin açıklamasına bakınız.</li> |
| </ul> |
| </li> |
| |
| <li>İstek ile evvelce ilişkilendirilmiş bir ortam değişkeninin ismi. Bu |
| sayede önceki bir eşleşmenin sonucuna karşı yeni bir sınama yapma |
| imkanı ortaya çıkar. Böyle bir sınama için sadece evvelce |
| <code>SetEnvIf[NoCase]</code> yönergeleri ile yapılmış atamalardaki |
| ortam değişkenleri kullanılabilir. ‘Evvelce’ derken, sunucu genelinde |
| veya bölüm içinde bu yönergeden önce yer alan |
| <code>SetEnvIf[NoCase]</code> yönerge satırları kastedilmektedir. |
| Ortam değişkenlerinin dikkate alınabilmesi için istek öznitelikleri |
| arasında hiçbir eşleşme olmaması ve <code><em>öznitelik</em></code> |
| olarak bir düzenli ifade belirtilmemiş olması gerekir.</li> |
| </ol> |
| |
| <p>İkinci bileşen (<code><em>düzifd</em></code>) bir <glossary |
| ref="regex">düzenli ifade</glossary>dir. <code><em>düzifd</em></code> |
| ile <code><em>öznitelik</em></code> eşleştiği takdirde yönergenin kalan |
| bileşenleri değerlendirmeye alınır.</p> |
| |
| <p>Kalan bileşenler atanacak ortam değişkenlerinin isimleri ve isteğe |
| bağlı olarak bunlara atanacak değerlerden oluşur. Bunlar şöyle |
| belirtilebilir:</p> |
| |
| <ol> |
| <li><code><em>değişken-adı</em></code> veya</li> |
| |
| <li><code>!<em>değişken-adı</em></code> ya da </li> |
| |
| <li><code><em>değişken-adı</em>=<em>değer</em></code></li> |
| </ol> |
| |
| <p>İlk biçemde değişkene "1" değeri atanır. İkincisinde atanmış bir |
| değişken atanmamış yapılır. Üçüncüsünde ise değişkene belirtilen |
| <code><em>değer</em></code> bire bir atanır. 2.0.51 sürümünden itibaren |
| Apache httpd parantezli düzenli ifadelerin sonuçları ile değiştirilmek |
| üzere <code><em>value</em></code> içinde <code>$1</code>..<code>$9</code> |
| gösterimleri tanınmaktadır. <code>$0</code> bu kalıp ile eşleşen tüm dizgeye erişir.</p> |
| |
| <highlight language="config"> |
| SetEnvIf Request_URI "\.gif$" nesne_bir_resim=gif |
| SetEnvIf Request_URI "\.jpg$" nesne_bir_resim=jpg |
| SetEnvIf Request_URI "\.xbm$" nesne_bir_resim=xbm |
| |
| SetEnvIf Referer belgeler\.alanismi\.example\.com dahili_site_istendi |
| |
| SetEnvIf object_is_image xbm XBIT_PROCESSING=1 |
| |
| SetEnvIf Request_URI "\.(.*)$" EXTENSION=$1 |
| |
| SetEnvIf ^TS ^[a-z] TS_VAR |
| </highlight> |
| |
| <p>İlk üçünde istek bir resim dosyası için yapılmışsa |
| <code>nesne_bir_resim</code> ortam değişkeni atanmakta, dördüncüsünde |
| istenen sayfa <code>belgeler.alanismi.example.com</code> adlı sitede |
| bulunuyorsa <code>dahili_site_istendi</code> ortam değişkeni |
| atanmaktadır.</p> |
| |
| <p>Son örnekte ise istekte "TS" ile başlayıp [a-z] arasındaki |
| karakterlerle devam eden bir başlık alanı varsa <code>TS_VAR</code> |
| ortam değişkeni atanmaktadır.</p> |
| </usage> |
| |
| <seealso><a href="../env.html">Apache HTTP Sunucusundaki Ortam Değişkenleri</a> |
| belgesinde daha fazla örnek bulunabilir.</seealso> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SetEnvIfExpr</name> |
| <description>Bir ap_expr ifadesine dayanarak ortam değişkenlerine değer atar</description> |
| <syntax>SetEnvIfExpr <em>ifade |
| [!]ort-değişkeni</em>[=<em>değer</em>] |
| [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>FileInfo</override> |
| |
| <usage> |
| <p><directive>SetEnvIfExpr</directive> yönergesi bir <directive |
| module="core" type="section">If</directive> <code>ap_expr</code> |
| ifadesine dayanarak ortam değişkenlerine değer atar. Bu ifadeler çalışma |
| anında değerlendirilirerek <directive>SetEnvIf</directive> yönergesindeki |
| gibi <em>ort-değişkeni</em>ne uygulanır.</p> |
| |
| <highlight language="config"> |
| SetEnvIfExpr "tolower(req('X-Sendfile')) == 'd:\images\very_big.iso')" iso_delivered |
| </highlight> |
| |
| <p>Burada uygulamamızın her <code>X-Sendfile</code> göndermeye çalışmasında |
| ortam değişkenine <code>iso_delivered</code> değeri atanmaktadır.</p> |
| |
| <p>Uzak IP adresi RFC 1918'e göre özel bir adres ise rfc1918 değişkenine 1 |
| atanması daha kullanışlı bir örnek olurdu:</p> |
| |
| <highlight language="config"> |
| SetEnvIfExpr "-R '10.0.0.0/8' || -R '172.16.0.0/12' || -R '192.168.0.0/16'" rfc1918 |
| </highlight> |
| </usage> |
| |
| <seealso>Eksiksiz bir kılavuz ve daha fazla örnek için |
| <a href="../expr.html">Apache HTTP Sunucusundaki İfadeler</a> belgesine |
| bakınız.</seealso> |
| <seealso>Benzer sonuçlara ulaşmak için <directive module="core" |
| type="section">If</directive> yönergesi kullanılabilir.</seealso> |
| <seealso><module>mod_filter</module></seealso> |
| </directivesynopsis> |
| |
| <directivesynopsis> |
| <name>SetEnvIfNoCase</name> |
| <description>Ortam değişkenlerini isteğin özniteliklerinde harf büyüklüğüne |
| bağlı olmaksızın yapılmış tanımlara göre atar.</description> |
| <syntax>SetEnvIfNoCase <em>öznitelik |
| düzifd [!]ort-değişkeni</em>[=<em>değer</em>] |
| [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax> |
| <contextlist><context>server config</context> |
| <context>virtual host</context><context>directory</context> |
| <context>.htaccess</context></contextlist> |
| <override>FileInfo</override> |
| |
| <usage> |
| <p><directive>SetEnvIfNoCase</directive> yönergesi sözdizimsel ve anlamsal |
| olarak <directive module="mod_setenvif">SetEnvIf</directive> |
| yönergesinin eşdeğeridir. Ancak, eşleşmelerde harf büyüklüğüne |
| duyarsızdır. Örnek:</p> |
| |
| <highlight language="config"> |
| SetEnvIfNoCase Host Example\.Org site=example |
| </highlight> |
| |
| <p>Burada, <code>Host:</code> HTTP istek başlığında |
| <code>Example.Org</code>, <code>example.org</code> veya harf büyüklüğünce |
| farklı benzerleri belirtilmişse <code>site</code> ortam değişkenine |
| "<code>example</code>" değeri atanmaktadır.</p> |
| </usage> |
| </directivesynopsis> |
| </modulesynopsis> |