mirror of
https://github.com/apache/httpd.git
synced 2025-07-04 05:22:30 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1782254 13f79535-47bb-0310-9956-ffa450edef68
307 lines
13 KiB
XML
307 lines
13 KiB
XML
<?xml version="1.0"?>
|
||
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
||
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
|
||
<!-- English Revision: 1180828:1782252 (outdated) -->
|
||
<!-- =====================================================
|
||
Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
|
||
Reviewed by: Orhan Berent <berent belgeler.org>
|
||
========================================================== -->
|
||
|
||
<!--
|
||
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>
|
||
|
||
<example>
|
||
BrowserMatch ^Mozilla netscape<br />
|
||
BrowserMatch MSIE !netscape<br />
|
||
</example>
|
||
</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>
|
||
|
||
<example>
|
||
BrowserMatchNoCase Robot is_a_robot<br />
|
||
SetEnvIfNoCase User-Agent Robot is_a_robot<br />
|
||
</example>
|
||
|
||
<p>Başka örnekler:</p>
|
||
|
||
<example>
|
||
BrowserMatch ^Mozilla forms jpeg=yes browser=netscape<br />
|
||
BrowserMatch "^Mozilla/[2-3]" tables agif frames javascript<br />
|
||
BrowserMatch MSIE !javascript<br />
|
||
</example>
|
||
</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>
|
||
|
||
<example>
|
||
BrowserMatchNoCase mac platform=macintosh<br />
|
||
BrowserMatchNoCase win platform=windows<br />
|
||
</example>
|
||
|
||
<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>
|
||
|
||
<example>
|
||
BrowserMatchNoCase Robot is_a_robot<br />
|
||
SetEnvIfNoCase User-Agent Robot is_a_robot<br />
|
||
</example>
|
||
</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.52 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.</p>
|
||
|
||
<example><title>Örnek:</title>
|
||
SetEnvIf Request_URI "\.gif$" nesne_bir_resim=gif<br />
|
||
SetEnvIf Request_URI "\.jpg$" nesne_bir_resim=jpg<br />
|
||
SetEnvIf Request_URI "\.xbm$" nesne_bir_resim=xbm<br />
|
||
:<br />
|
||
SetEnvIf Referer belgeler\.alanismi\.mesela\.dom dahili_site_istendi<br />
|
||
:<br />
|
||
SetEnvIf object_is_image xbm XBIT_PROCESSING=1<br />
|
||
:<br />
|
||
SetEnvIf ^TS ^[a-z] TS_VAR<br />
|
||
</example>
|
||
|
||
<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.mesela.dom</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 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>
|
||
|
||
<example>
|
||
SetEnvIfExpr "tolower(req('X-Sendfile')) == 'd:\images\very_big.iso')" iso_delivered
|
||
</example>
|
||
|
||
<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>
|
||
|
||
<example>
|
||
SetEnvIfExpr "-R '10.0.0.0/8' || -R '172.16.0.0/12' || -R '192.168.0.0/16'" rfc1918
|
||
</example>
|
||
</usage>
|
||
|
||
<seealso><a href="../expr.html">Expressions in Apache HTTP Server</a>,
|
||
for a complete reference and more examples.</seealso>
|
||
<seealso><directive type="section">If</directive> can be used to achive similar
|
||
results.</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>
|
||
|
||
<example>
|
||
SetEnvIfNoCase Host Example\.Org site=example
|
||
</example>
|
||
|
||
<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>
|