2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
4 <!-- English Revision: 1180828:1782252 (outdated) -->
5 <!-- =====================================================
6 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
7 Reviewed by: Orhan Berent <berent belgeler.org>
8 ========================================================== -->
11 Licensed to the Apache Software Foundation (ASF) under one or more
12 contributor license agreements. See the NOTICE file distributed with
13 this work for additional information regarding copyright ownership.
14 The ASF licenses this file to You under the Apache License, Version 2.0
15 (the "License"); you may not use this file except in compliance with
16 the License. You may obtain a copy of the License at
18 http://www.apache.org/licenses/LICENSE-2.0
20 Unless required by applicable law or agreed to in writing, software
21 distributed under the License is distributed on an "AS IS" BASIS,
22 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 See the License for the specific language governing permissions and
24 limitations under the License.
27 <modulesynopsis metafile="mod_setenvif.xml.meta">
29 <name>mod_setenvif</name>
30 <description>Ortam değişkenlerinin isteğin özelliklerine uygun olarak atanmasını sağlar</description>
32 <sourcefile>mod_setenvif.c</sourcefile>
33 <identifier>setenvif_module</identifier>
38 <p><module>mod_setenvif</module> modülü dahili ortam değişkenlerinin
39 isteğin farklı bileşenlerinin belirttiğiniz düzenli ifade ile eşleşmesine
40 bağlı olarak atanmasını mümkün kılar. Bu ortam değişkenleri sunucunun
41 çeşitli kısımlarında yapılacak eylemlerin yanında CGI betiklerinde ve SSI
42 sayfalarında kullanılabilir hale gelmelerine karar verilirken
45 <p>Yönergeler yapılandırma dosyasında yer aldıkları sıraya göre ele
46 alınırlar. Böylece daha karmaşık dizilimler kullanılabilir, bu örnekteki
47 tarayıcı Mozilla ise <code>netscape</code> ortam değişkeni atanmakta,
48 MSIE ise atanmamaktadır.</p>
51 BrowserMatch ^Mozilla netscape<br />
52 BrowserMatch MSIE !netscape<br />
56 <seealso><a href="../env.html">Apache HTTP Sunucusundaki Ortam Değişkenleri</a></seealso>
59 <name>BrowserMatch</name>
60 <description>Ortam değişkenlerini HTTP kullanıcı arayüzüne göre belirler.
62 <syntax>BrowserMatch <em>düzifd [!]ort-değişkeni</em>[=<em>değer</em>]
63 [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax>
64 <contextlist><context>server config</context>
65 <context>virtual host</context><context>directory</context>
66 <context>.htaccess</context></contextlist>
67 <override>FileInfo</override>
70 <p><directive>BrowserMatch</directive> yönergesi <directive
71 module="mod_setenvif" >SetEnvIf</directive> yönergesinin özel bir halidir
72 ve ortam değişkenlerine <code>User-Agent</code> HTTP istek başlığının
73 değerine göre atama yapar. Aşağıdaki iki satır aynı etkiye sahiptir:</p>
76 BrowserMatchNoCase Robot is_a_robot<br />
77 SetEnvIfNoCase User-Agent Robot is_a_robot<br />
80 <p>Başka örnekler:</p>
83 BrowserMatch ^Mozilla forms jpeg=yes browser=netscape<br />
84 BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript<br />
85 BrowserMatch MSIE !javascript<br />
91 <name>BrowserMatchNoCase</name>
92 <description>Ortam değişkenlerini HTTP kullanıcı arayüzünün harf büyüklüğüne
93 duyarsız eşleşmelerine bağlı olarak belirler.</description>
94 <syntax>BrowserMatchNoCase <em>düzifd [!]ort-değişkeni</em>[=<em>değer</em>]
95 [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax>
96 <contextlist><context>server config</context>
97 <context>virtual host</context><context>directory</context>
98 <context>.htaccess</context></contextlist>
99 <override>FileInfo</override>
103 <p><directive>BrowserMatchNoCase</directive> yönergesi sözdizimsel ve
104 anlamsal olarak <directive
105 module="mod_setenvif">BrowserMatch</directive> yönergesinin eşdeğeridir.
106 Ancak, eşleşmelerde harf büyüklüğüne duyarsızdır. Örnek:</p>
109 BrowserMatchNoCase mac platform=macintosh<br />
110 BrowserMatchNoCase win platform=windows<br />
113 <p><directive>BrowserMatch</directive> ve
114 <directive>BrowserMatchNoCase</directive> yönergeleri <directive
115 module="mod_setenvif">SetEnvIf</directive> ve <directive
116 module="mod_setenvif">SetEnvIfNoCase</directive> yönergelerinin özel
117 halleridir. Bu bakımda aşağıdaki iki satır aynı etkiye sahiptir:</p>
120 BrowserMatchNoCase Robot is_a_robot<br />
121 SetEnvIfNoCase User-Agent Robot is_a_robot<br />
127 <name>SetEnvIf</name>
128 <description>Ortam değişkenlerini isteğin özniteliklerine göre atar.
130 <syntax>SetEnvIf <em>öznitelik
131 düzifd [!]ort-değişkeni</em>[=<em>değer</em>]
132 [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax>
133 <contextlist><context>server config</context>
134 <context>virtual host</context><context>directory</context>
135 <context>.htaccess</context></contextlist>
136 <override>FileInfo</override>
139 <p><directive>SetEnvIf</directive> yönergesi ortam değişkenlerini isteğin
140 özniteliklerine göre tanımlar. İlk bileşen olarak belirtilen
141 <code><em>öznitelik</em></code> şu dört şeyden biri olabilir:</p>
144 <li>Bir HTTP istek başlığı alanı (ayrıntılı bilgi için bak: <a
145 href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a>);
146 örneğin: <code>Host</code>, <code>User-Agent</code>,
147 <code>Referer</code> ve <code>Accept-Language</code>. Bir düzenli
148 ifade kullanılarak birden fazla istek başlığı belirtilebilir.</li>
150 <li>İsteğin aşağıdaki bileşenlerinden biri:
152 <li><code>Remote_Host</code> - isteği yapan istemcinin konak ismi
155 <li><code>Remote_Addr</code> -isteği yapan istemcinin IP adresi</li>
157 <li><code>Server_Addr</code> - isteği alan sunucunun IP adresi
158 (sadece 2.0.43 sonrası sürümler için)</li>
160 <li><code>Request_Method</code> - kullanılan yöntemin ismi
161 (<code>GET</code>, <code>POST</code>, vs.)</li>
163 <li><code>Request_Protocol</code> - İsteğin yapıldığı protokolün
164 ismi ve numarası ("HTTP/0.9", "HTTP/1.1" gibi)</li>
166 <li><code>Request_URI</code> - HTTP istek satırında belirtilen
167 özkaynak; genellikle sorgu dizgesi olmaksızın şema ve konak ismini
168 içeren bir URL parçasıdır. Sorgu dizgeleriyle eşleşmeler hakkında
169 ayrıntılı bilgi edinmek için <module>mod_rewrite</module>
170 modülünün <directive module="mod_rewrite">RewriteCond</directive>
171 yönergesinin açıklamasına bakınız.</li>
175 <li>İstek ile evvelce ilişkilendirilmiş bir ortam değişkeninin ismi. Bu
176 sayede önceki bir eşleşmenin sonucuna karşı yeni bir sınama yapma
177 imkanı ortaya çıkar. Böyle bir sınama için sadece evvelce
178 <code>SetEnvIf[NoCase]</code> yönergeleri ile yapılmış atamalardaki
179 ortam değişkenleri kullanılabilir. ‘Evvelce’ derken, sunucu genelinde
180 veya bölüm içinde bu yönergeden önce yer alan
181 <code>SetEnvIf[NoCase]</code> yönerge satırları kastedilmektedir.
182 Ortam değişkenlerinin dikkate alınabilmesi için istek öznitelikleri
183 arasında hiçbir eşleşme olmaması ve <code><em>öznitelik</em></code>
184 olarak bir düzenli ifade belirtilmemiş olması gerekir.</li>
187 <p>İkinci bileşen (<code><em>düzifd</em></code>) bir <glossary
188 ref="regex">düzenli ifade</glossary>dir. <code><em>düzifd</em></code>
189 ile <code><em>öznitelik</em></code> eşleştiği takdirde yönergenin kalan
190 bileşenleri değerlendirmeye alınır.</p>
192 <p>Kalan bileşenler atanacak ortam değişkenlerinin isimleri ve isteğe
193 bağlı olarak bunlara atanacak değerlerden oluşur. Bunlar şöyle
197 <li><code><em>değişken-adı</em></code> veya</li>
199 <li><code>!<em>değişken-adı</em></code> ya da </li>
201 <li><code><em>değişken-adı</em>=<em>değer</em></code></li>
204 <p>İlk biçemde değişkene "1" değeri atanır. İkincisinde atanmış bir
205 değişken atanmamış yapılır. Üçüncüsünde ise değişkene belirtilen
206 <code><em>değer</em></code> bire bir atanır. 2.0.52 sürümünden itibaren
207 Apache httpd parantezli düzenli ifadelerin sonuçları ile değiştirilmek
208 üzere <code><em>value</em></code> içinde <code>$1</code>..<code>$9</code>
209 gösterimleri tanınmaktadır.</p>
211 <example><title>Örnek:</title>
212 SetEnvIf Request_URI "\.gif$" nesne_bir_resim=gif<br />
213 SetEnvIf Request_URI "\.jpg$" nesne_bir_resim=jpg<br />
214 SetEnvIf Request_URI "\.xbm$" nesne_bir_resim=xbm<br />
216 SetEnvIf Referer belgeler\.alanismi\.mesela\.dom dahili_site_istendi<br />
218 SetEnvIf object_is_image xbm XBIT_PROCESSING=1<br />
220 SetEnvIf ^TS ^[a-z] TS_VAR<br />
223 <p>İlk üçünde istek bir resim dosyası için yapılmışsa
224 <code>nesne_bir_resim</code> ortam değişkeni atanmakta, dördüncüsünde
225 istenen sayfa <code>belgeler.alanismi.mesela.dom</code> adlı sitede
226 bulunuyorsa <code>dahili_site_istendi</code> ortam değişkeni
229 <p>Son örnekte ise istekte "TS" ile başlayıp [a-z] arasındaki
230 karakterlerle devam eden bir başlık alanı varsa <code>TS_VAR</code>
231 ortam değişkeni atanmaktadır.</p>
234 <seealso><a href="../env.html">Apache HTTP Sunucusundaki Ortam Değişkenleri</a>
235 belgesinde daha fazla örnek bulunabilir.</seealso>
239 <name>SetEnvIfExpr</name>
240 <description>Bir ap_expr ifadesine dayanarak ortam değişkenlerine değer atar</description>
241 <syntax>SetEnvIfExpr <em>ifade
242 [!]ort-değişkeni</em>[=<em>değer</em>]
243 [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax>
244 <contextlist><context>server config</context>
245 <context>virtual host</context><context>directory</context>
246 <context>.htaccess</context></contextlist>
247 <override>FileInfo</override>
250 <p><directive>SetEnvIfExpr</directive> yönergesi bir
251 <directive type="section">If</directive> <code>ap_expr</code> ifadesine
252 dayanarak ortam değişkenlerine değer atar. Bu ifadeler çalışma anında
253 değerlendirilirerek <directive>SetEnvIf</directive> yönergesindeki gibi
254 <em>ort-değişkeni</em>ne uygulanır.</p>
257 SetEnvIfExpr "tolower(req('X-Sendfile')) == 'd:\images\very_big.iso')" iso_delivered
260 <p>Burada uygulamamızın her <code>X-Sendfile</code> göndermeye çalışmasında
261 ortam değişkenine <code>iso_delivered</code> değeri atanmaktadır.</p>
263 <p>Uzak IP adresi RFC 1918'e göre özel bir adres ise rfc1918 değişkenine 1
264 atanması daha kullanışlı bir örnek olurdu:</p>
267 SetEnvIfExpr "-R '10.0.0.0/8' || -R '172.16.0.0/12' || -R '192.168.0.0/16'" rfc1918
271 <seealso><a href="../expr.html">Expressions in Apache HTTP Server</a>,
272 for a complete reference and more examples.</seealso>
273 <seealso><directive type="section">If</directive> can be used to achive similar
275 <seealso><module>mod_filter</module></seealso>
279 <name>SetEnvIfNoCase</name>
280 <description>Ortam değişkenlerini isteğin özniteliklerinde harf büyüklüğüne
281 bağlı olmaksızın yapılmış tanımlara göre atar.</description>
282 <syntax>SetEnvIfNoCase <em>öznitelik
283 düzifd [!]ort-değişkeni</em>[=<em>değer</em>]
284 [[!]<em>ort-değişkeni</em>[=<em>değer</em>]] ...</syntax>
285 <contextlist><context>server config</context>
286 <context>virtual host</context><context>directory</context>
287 <context>.htaccess</context></contextlist>
288 <override>FileInfo</override>
291 <p><directive>SetEnvIfNoCase</directive> yönergesi sözdizimsel ve anlamsal
292 olarak <directive module="mod_setenvif">SetEnvIf</directive>
293 yönergesinin eşdeğeridir. Ancak, eşleşmelerde harf büyüklüğüne
294 duyarsızdır. Örnek:</p>
297 SetEnvIfNoCase Host Example\.Org site=example
300 <p>Burada, <code>Host:</code> HTTP istek başlığında
301 <code>Example.Org</code>, <code>example.org</code> veya harf büyüklüğünce
302 farklı benzerleri belirtilmişse <code>site</code> ortam değişkenine
303 "<code>example</code>" değeri atanmaktadır.</p>