mirror of
https://github.com/apache/httpd.git
synced 2025-04-18 22:24:07 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1915460 13f79535-47bb-0310-9956-ffa450edef68
250 lines
9.0 KiB
XML
250 lines
9.0 KiB
XML
<?xml version="1.0" encoding="EUC-KR" ?>
|
|
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
|
|
<?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
|
|
<!-- English Revision: 151408:1915443 (outdated) -->
|
|
|
|
<!--
|
|
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>요청의 성격에 따라 환경변수 설정을 변경한다</description>
|
|
<status>Base</status>
|
|
<sourcefile>mod_setenvif.c</sourcefile>
|
|
<identifier>setenvif_module</identifier>
|
|
|
|
|
|
<summary>
|
|
|
|
<p><module>mod_setenvif</module> 모듈은 요청의 성격이
|
|
정규표현식에 해당하는지 여부로 환경변수를 설정한다. 서버의
|
|
다른 부분이 행동을 결정할때 이 환경변수를 사용할 수 있다.</p>
|
|
|
|
<p>설정파일에 나오는 순서대로 지시어를 처리한다. 그래서
|
|
브라우저가 MSIE가 아니라 mozilla인 경우 <code>netscape</code>를
|
|
설정하는 아래 예와 같이 여러 지시어를 함께 사용할 수 있다.</p>
|
|
|
|
<example>
|
|
BrowserMatch ^Mozilla netscape<br />
|
|
BrowserMatch MSIE !netscape<br />
|
|
</example>
|
|
</summary>
|
|
|
|
<seealso><a href="../env.html">아파치의 환경변수</a></seealso>
|
|
|
|
<directivesynopsis>
|
|
<name>BrowserMatch</name>
|
|
<description>HTTP User-Agent에 따라 환경변수를 설정한다</description>
|
|
<syntax>BrowserMatch <em>regex [!]env-variable</em>[=<em>value</em>]
|
|
[[!]<em>env-variable</em>[=<em>value</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>는 <directive
|
|
module="mod_setenvif">SetEnvIf</directive> 지시어의 특별한
|
|
경우로, HTTP 요청 헤더 <code>User-Agent</code>에 따라 환경변수를
|
|
설정한다. 다음 두 줄은 같다:</p>
|
|
<example>
|
|
BrowserMatchNoCase Robot is_a_robot<br />
|
|
SetEnvIfNoCase User-Agent Robot is_a_robot<br />
|
|
</example>
|
|
|
|
<p>추가 예제:</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>대소문자를 구별하지않고 User-Agent에 따라 환경변수를
|
|
설정한다</description>
|
|
<syntax>BrowserMatchNoCase <em>regex [!]env-variable</em>[=<em>value</em>]
|
|
[[!]<em>env-variable</em>[=<em>value</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> 지시어는 <directive
|
|
module="mod_setenvif">BrowserMatch</directive> 지시어와
|
|
의미상 같다. 그러나 이 지시어는 대소문자를 구별하지않는다.
|
|
예를 들어:</p>
|
|
<example>
|
|
BrowserMatchNoCase mac platform=macintosh<br />
|
|
BrowserMatchNoCase win platform=windows<br />
|
|
</example>
|
|
|
|
<p><directive>BrowserMatch</directive>와
|
|
<directive>BrowserMatchNoCase</directive> 지시어는
|
|
<directive module="mod_setenvif">SetEnvIf</directive>와
|
|
<directive module="mod_setenvif">SetEnvIfNoCase</directive>
|
|
지시어의 특별한 경우다. 다음 주 줄은 같다:</p>
|
|
<example>
|
|
BrowserMatchNoCase Robot is_a_robot<br />
|
|
SetEnvIfNoCase User-Agent Robot is_a_robot<br />
|
|
</example>
|
|
</usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>SetEnvIf</name>
|
|
<description>요청의 성질에 따라 환경변수를 설정한다</description>
|
|
<syntax>SetEnvIf <em>attribute
|
|
regex [!]env-variable</em>[=<em>value</em>]
|
|
[[!]<em>env-variable</em>[=<em>value</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> 지시어는 요청의 성질에
|
|
따라 환경변수를 정의한다. 첫번째 아규먼트 <em>attribute</em>는
|
|
다음 세가지중 하나다:</p>
|
|
|
|
<ol>
|
|
<li>HTTP 요청 헤더 (더 자세한 정보는 <a
|
|
href="http://www.rfc-editor.org/rfc/rfc2616.txt">RFC2616</a>
|
|
참고); 예를 들어: <code>Host</code>, <code>User-Agent</code>,
|
|
<code>Referer</code>, <code>Accept-Language</code>. 정규표현식을
|
|
사용하여 여러 요청 헤더를 지칭할 수 있다.</li>
|
|
|
|
<li>요청의 다음 성질중 하나:
|
|
<ul>
|
|
<li><code>Remote_Host</code> - (있다면) 요청하는 클라이언트의
|
|
호스트명</li>
|
|
|
|
<li><code>Remote_Addr</code> - 요청하는 클라이언트의 IP 주소</li>
|
|
|
|
<li><code>Server_Addr</code> - 요청을 받는 서버의 IP 주소
|
|
(2.0.43 버전 이후에만)</li>
|
|
|
|
<li><code>Request_Method</code> - 사용한 메써드 이름
|
|
(<code>GET</code>, <code>POST</code>, <em>등등</em>)</li>
|
|
|
|
<li><code>Request_Protocol</code> - 요청의 프로토콜 이름과
|
|
버전 (<em>예를 들어</em>, "HTTP/0.9", "HTTP/1.1", <em>등.</em>)</li>
|
|
|
|
<li><code>Request_URI</code> - HTTP 요청에서 요청한 자원
|
|
-- 일반적으로 URL에서 질의문자열을 제외한 스킴(scheme)과
|
|
호스트 이후 부분</li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>요청과 연관된 환경변수 이름. 그래서 <directive>SetEnvIf</directive>
|
|
지시어는 이전 지시어의 결과를 검사할 수 있다. 이전에
|
|
<code>SetEnvIf[NoCase]</code> 지시어로 정의한 환경변수만을
|
|
검사할 수 있다. '이전'이란 (서버전역과 같이) 더 넓은 영역 혹은
|
|
지시어의 현재 영역 이전을 뜻한다. 요청 성질이 아니고 정규표현식이
|
|
아닌 <em>attribute</em>는 환경변수로 취급한다.</li>
|
|
</ol>
|
|
|
|
<p>두번째 아규먼트는 (<em>regex</em>) <a
|
|
href="http://www.pcre.org/">Perl 호환 정규표현식</a>이다.
|
|
이는 POSIX.2 egrep의 정규표현식과 비슷하다. <em>regex</em>가
|
|
<em>attribute</em>에 대응하면 나머지 아규먼트를 처리한다.</p>
|
|
|
|
<p>나머지 아규먼트는 설정할 변수명과 (선택적인) 설정값들이다.
|
|
다음과 같은 형식이다</p>
|
|
|
|
<ol>
|
|
<li><code><em>varname</em></code>, 혹은</li>
|
|
|
|
<li><code>!<em>varname</em></code>, 혹은</li>
|
|
|
|
<li><code><em>varname</em>=<em>value</em></code></li>
|
|
</ol>
|
|
|
|
<p>첫번째 형태는 값으로 "1"을 사용한다. 두번째 형태는 변수가
|
|
이미 정의된 경우 변수를 제거하고, 세번째는 변수의 값으로
|
|
<code><em>value</em></code>를 설정한다. 아파치 2.0.51부터
|
|
<var>value</var>에 있는 <code>$1</code>..<code>$9</code>를
|
|
<var>regex</var>의 괄호친 하위표현식으로 대체한다.</p>
|
|
|
|
<example>
|
|
<title>예제:</title>
|
|
SetEnvIf Request_URI "\.gif$" object_is_image=gif<br />
|
|
SetEnvIf Request_URI "\.jpg$" object_is_image=jpg<br />
|
|
SetEnvIf Request_URI "\.xbm$" object_is_image=xbm<br />
|
|
:<br />
|
|
SetEnvIf Referer www\.mydomain\.com intra_site_referral<br />
|
|
:<br />
|
|
SetEnvIf object_is_image xbm XBIT_PROCESSING=1<br />
|
|
:<br />
|
|
SetEnvIf ^TS* ^[a-z].* HAVE_TS<br />
|
|
</example>
|
|
|
|
<p>처음 세 줄은 이미지 파일을 요청한 경우 환경변수
|
|
<code>object_is_image</code>를 설정한다. 네번째 줄은 페이지를
|
|
<code>www.mydomain.com</code> 웹사이트에서 참조한 경우
|
|
<code>intra_site_referral</code>을 설정한다.</p>
|
|
|
|
<p>마지막 예는 요청에 이름에 "TS"로 시작하고 값이 [a-z]
|
|
중 하나로 시작하는 헤더가 있는 경우 환경변수
|
|
<code>HAVE_TS</code>를 설정한다.</p>
|
|
</usage>
|
|
|
|
<seealso><a href="../env.html">아파치의 환경변수</a>에 더 많은
|
|
예제가 있다.
|
|
</seealso>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>SetEnvIfExpr</name>
|
|
<description>Sets environment variables based on an ap_expr expression</description>
|
|
<contextlist><context>server config</context><context>virtual host</context><context>directory</context><context>.htaccess</context></contextlist>
|
|
<usage><p>Documentation not yet translated. Please see English version of document.</p></usage>
|
|
</directivesynopsis>
|
|
|
|
<directivesynopsis>
|
|
<name>SetEnvIfNoCase</name>
|
|
<description>대소문자를 구별하지않고 요청의 성질에 따라 환경변수를
|
|
설정한다</description>
|
|
<syntax>SetEnvIfNoCase <em>attribute regex
|
|
[!]env-variable</em>[=<em>value</em>]
|
|
[[!]<em>env-variable</em>[=<em>value</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>는 의미상 <directive
|
|
module="mod_setenvif">SetEnvIf</directive> 지시어와 같지만,
|
|
대소문자를 구별하지않고 정규표현식을 찾는다. 예를 들어:</p>
|
|
<example>
|
|
SetEnvIfNoCase Host Apache\.Org site=apache
|
|
</example>
|
|
|
|
<p>이 경우 HTTP 요청 헤더 <code>Host:</code>가
|
|
<code>Apache.Org</code>, <code>apache.org</code> 등을 포함하면
|
|
<code>site</code> 환경변수를 "<code>apache</code>"로 설정한다.</p>
|
|
</usage>
|
|
</directivesynopsis>
|
|
</modulesynopsis>
|