summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/manual/env.html.en571
-rw-r--r--docs/manual/env.xml353
-rw-r--r--docs/manual/filter.html.en79
-rw-r--r--docs/manual/filter.xml67
-rw-r--r--docs/manual/handler.html.en167
-rw-r--r--docs/manual/handler.xml145
6 files changed, 901 insertions, 481 deletions
diff --git a/docs/manual/env.html.en b/docs/manual/env.html.en
index 6b0b273479..73fd74493b 100644
--- a/docs/manual/env.html.en
+++ b/docs/manual/env.html.en
@@ -1,20 +1,8 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Environment Variables in Apache</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="center">Environment Variables in Apache</h1>
-
+<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ --><title>Environment Variables in Apache- Apache HTTP Server</title><link href="./style/manual.css" type="text/css" rel="stylesheet"/></head><body><blockquote><div align="center"><img src="./images/sub.gif" alt="[APACHE DOCUMENTATION]"/><h3>Apache HTTP Server Version 2.0</h3></div><h1 align="center">Environment Variables in Apache</h1>
<p>The Apache HTTP Server provides a mechanism for storing
information in named variables that are called <em>environment
variables</em>. This information can be used to control various
@@ -22,7 +10,7 @@
also used as a mechanism to communicate with external programs
such as CGI scripts. This document discusses different ways to
manipulate and use these variables.</p>
-
+
<p>Although these variables are referred to as <em>environment
variables</em>, they are not the same as the environment
variables controlled by the underlying operating system.
@@ -34,260 +22,219 @@
server itself runs, you must use the standard environment
manipulation mechanisms provided by your operating system
shell.</p>
-
- <ul>
- <li><a href="#setting">Setting Environment Variables</a></li>
-
- <li><a href="#using">Using Environment Variables</a></li>
-
- <li><a href="#special">Special Purpose Environment
- Variables</a></li>
-
- <li><a href="#examples">Examples</a></li>
- </ul>
- <hr />
-
- <h2><a id="setting" name="setting">Setting Environment
- Variables</a></h2>
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="mod/mod_env.html">mod_env</a><br />
- <a href="mod/mod_rewrite.html">mod_rewrite</a><br />
- <a href="mod/mod_setenvif.html">mod_setenvif</a><br />
- <a href="mod/mod_unique_id.html">mod_unique_id</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a
- href="mod/mod_setenvif.html#BrowserMatch">BrowserMatch</a><br />
- <a
- href="mod/mod_setenvif.html#BrowserMatchNoCase">BrowserMatchNoCase</a><br />
- <a href="mod/mod_env.html#passenv">PassEnv</a><br />
- <a
- href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br />
- <a href="mod/mod_env.html#setenv">SetEnv</a><br />
- <a
- href="mod/mod_setenvif.html#SetEnvIf">SetEnvIf</a><br />
- <a
- href="mod/mod_setenvif.html#SetEnvIfNoCase">SetEnvIfNoCase</a><br />
- <a href="mod/mod_env.html#unsetenv">UnsetEnv</a><br />
- </td>
- </tr>
- </table>
-
- <h3>Basic Environment Manipulation</h3>
-
- <p>The most basic way to set an environment variable in Apache
- is using the unconditional <code>SetEnv</code> directive.
- Variables may also be passed from the environment of the shell
- which started the server using the <code>PassEnv</code>
- directive.</p>
-
- <h3>Conditional Per-Request Settings</h3>
-
- <p>For additional flexibility, the directives provided by
- mod_setenvif allow environment variables to be set on a
- per-request basis, conditional on characteristics of particular
- requests. For example, a variable could be set only when a
- specific browser (User-Agent) is making a request, or only when
- a specific Referer [sic] header is found. Even more flexibility
- is available through the mod_rewrite's <code>RewriteRule</code>
- which uses the <code>[E=...]</code> option to set environment
- variables.</p>
-
- <h3>Unique Identifiers</h3>
-
- <p>Finally, mod_unique_id sets the environment variable
- <code>UNIQUE_ID</code> for each request to a value which is
- guaranteed to be unique across "all" requests under very
- specific conditions.</p>
-
- <h3>Standard CGI Variables</h3>
-
- <p>In addition to all environment variables set within the
- Apache configuration and passed from the shell, CGI scripts and
- SSI pages are provided with a set of environment variables
- containing meta-information about the request as required by
- the <a href="http://cgi-spec.golux.com/">CGI
- specification</a>.</p>
-
- <h3>Some Caveats</h3>
-
- <ul>
- <li>It is not possible to override or change the standard CGI
- variables using the environment manipulation directives.</li>
-
- <li>When <a href="suexec.html">suexec</a> is used to launch
- CGI scripts, the environment will be cleaned down to a set of
- <em>safe</em> variables before CGI scripts are launched. The
- list of <em>safe</em> variables is defined at compile-time in
- <code>suexec.c</code>.</li>
-
- <li>For portability reasons, the names of environment
- variables may contain only letters, numbers, and the
- underscore character. In addition, the first character may
- not be a number. Characters which do not match this
- restriction will be replaced by an underscore when passed to
- CGI scripts and SSI pages.</li>
- </ul>
- <hr />
-
- <h2><a id="using" name="using">Using Environment
- Variables</a></h2>
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="mod/mod_access.html">mod_access</a><br />
- <a href="mod/mod_cgi.html">mod_cgi</a><br />
- <a href="mod/mod_headers.html">mod_headers</a><br />
- <a href="mod/mod_include.html">mod_include</a><br />
- <a href="mod/mod_log_config.html">mod_log_config</a><br />
- <a href="mod/mod_rewrite.html">mod_rewrite</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a href="mod/mod_access.html#allow">Allow</a><br />
- <a
- href="mod/mod_log_config.html#customlog">CustomLog</a><br />
- <a href="mod/mod_access.html#deny">Deny</a><br />
- <a href="mod/mod_headers.html#Header">Header</a><br />
- <a
- href="mod/mod_log_config.html#logformat">LogFormat</a><br />
- <a
- href="mod/mod_rewrite.html#RewriteCond">RewriteCond</a><br />
- <a
- href="mod/mod_rewrite.html#RewriteRule">RewriteRule</a><br />
- </td>
- </tr>
- </table>
-
- <h3>CGI Scripts</h3>
-
- <p>One of the primary uses of environment variables is to
- communicate information to CGI scripts. As discussed above, the
- environment passed to CGI scripts includes standard
- meta-information about the request in addition to any variables
- set within the Apache configuration. For more details, see the
- <a href="howto/cgi.html">CGI tutorial</a>.</p>
-
- <h3>SSI Pages</h3>
-
- <p>Server-parsed (SSI) documents processed by mod_include's
- <code>INCLUDES</code> filter can print environment variables
- using the <code>echo</code> element, and can use environment
- variables in flow control elements to makes parts of a page
- conditional on characteristics of a request. Apache also
- provides SSI pages with the standard CGI environment variables
- as discussed above. For more details, see the <a
- href="howto/ssi.html">SSI tutorial</a>.</p>
-
- <h3>Access Control</h3>
-
- <p>Access to the server can be controlled based on the value of
- environment variables using the <code>allow from env=</code>
- and <code>deny from env=</code> directives. In combination with
- <code>SetEnvIf</code>, this allows for flexible control of
- access to the server based on characteristics of the client.
- For example, you can use these directives to deny access to a
- particular browser (User-Agent).</p>
-
- <h3>Conditional Logging</h3>
-
- <p>Environment variables can be logged in the access log using
- the <code>LogFormat</code> option <code>%e</code>. In addition,
- the decision on whether or not to log requests can be made
- based on the status of environment variables using the
- conditional form of the <code>CustomLog</code> directive. In
- combination with <code>SetEnvIf</code> this allows for flexible
- control of which requests are logged. For example, you can
- choose not to log requests for filenames ending in
- <code>gif</code>, or you can choose to only log requests from
- clients which are outside your subnet.</p>
-
- <h3>Conditional Response Headers</h3>
-
- <p>The <code>Header</code> directive can use the presence or
- absence of an environment variable to determine whether or not
- a certain HTTP header will be placed in the response to the
- client. This allows, for example, a certain response header to
- be sent only if a corresponding header is received in the
- request from the client.</p>
-
- <h3>URL Rewriting</h3>
-
- <p>The <code>%{ENV:...}</code> form of <em>TestString</em> in
- the <code>RewriteCond</code> allows mod_rewrite's rewrite
- engine to make decisions conditional on environment variables.
- Note that the variables accessible in mod_rewrite without the
- <code>ENV:</code> prefix are not actually environment
- variables. Rather, they are variables special to mod_rewrite
- which cannot be accessed from other modules.</p>
- <hr />
-
- <h2><a id="special" name="special">Special Purpose Environment
- Variables</a></h2>
-
- <p>Interoperability problems have led to the introduction of
- mechanisms to modify the way Apache behaves when talking to
- particular clients. To make these mechanisms as flexible as
- possible, they are invoked by defining environment variables,
- typically with <a
- href="mod/mod_setenvif.html#browsermatch">BrowserMatch</a>,
- though <a href="mod/mod_env.html#setenv">SetEnv</a> and <a
- href="mod/mod_env.html#passenv">PassEnv</a> could also be used,
- for example.</p>
-
- <h2>downgrade-1.0</h2>
-
- <p>This forces the request to be treated as a HTTP/1.0 request
- even if it was in a later dialect.</p>
-
- <h2>force-no-vary</h2>
-
- <p>This causes any <code>Vary</code> fields to be removed from
- the response header before it is sent back to the client. Some
- clients don't interpret this field correctly (see the <a
- href="misc/known_client_problems.html">known client
- problems</a> page); setting this variable can work around this
- problem. Setting this variable also implies
- <strong>force-response-1.0</strong>.</p>
-
- <h2>force-response-1.0</h2>
-
- <p>This forces an HTTP/1.0 response when set. It was originally
- implemented as a result of a problem with AOL's proxies. Some
- clients may not behave correctly when given an HTTP/1.1
- response, and this can be used to interoperate with them.</p>
-
- <h2>nokeepalive</h2>
-
- <p>This disables <a
- href="mod/core.html#keepalive">KeepAlive</a> when set.</p>
-
- <h2>redirect-carefully</h2>
-
- <p>This forces the server to be more careful when sending a redirect
- to the client. This is typically used when a client has a known
- problem handling redirects. This was originally implemented as a
- result of a problem with Microsoft's WebFolders software which has
- a problem handling redirects on directory resources via DAV
- methods.</p>
-
- <hr />
- <h2><a id="examples" name="examples">Examples</a></h2>
-
- <h3>Changing protocol behavior with misbehaving clients</h3>
-
- <p>We recommend that the following lines be included in
- httpd.conf to deal with known client problems.</p>
-<pre>
+ <ul><li><a href="#setting">Setting Environment Variables</a><ul><li><a href="#basic-manipulation">Basic Environment Manipulation</a></li><li><a href="#conditional">Conditional Per-Request Settings</a></li><li><a href="#unique-identifiers">Unique Identifiers</a></li><li><a href="#standard-cgi">Standard CGI Variables</a></li><li><a href="#caveats">Some Caveats</a></li></ul></li><li><a href="#using">Using Environment Variables</a><ul><li><a href="#cgi-scripts">CGI Scripts</a></li><li><a href="#ssi-pages">SSI Pages</a></li><li><a href="#access-control">Access Control</a></li><li><a href="#logging">Conditional Logging</a></li><li><a href="#response-headers">Conditional Response Headers</a></li><li><a href="#url-rewriting">URL Rewriting</a></li></ul></li><li><a href="#special">Special Purpose Environment Variables</a><ul><li><a href="#downgrade">downgrade-1.0</a></li><li><a href="#force-no-vary">force-no-vary</a></li><li><a href="#force-response">force-response-1.0</a></li><li><a href="#nokeepalive">nokeepalive</a></li><li><a href="#redirect-carefully">redirect-carefully</a></li></ul></li><li><a href="#examples">Examples</a><ul><li><a href="#misbehaving">Changing protocol behavior with misbehaving clients</a></li><li><a href="#no-img-log">Do not log requests for images in the access log</a></li><li><a href="#image-theft">Prevent "Image Theft"</a></li></ul></li></ul><hr/><h2><a name="setting">Setting Environment Variables</a></h2>
+
+ <table border="1"><tr><td valign="top"><strong>Related Modules</strong><br/><br/><code><a href="./mod/mod_env.html">mod_env</a></code>, <br/><code><a href="./mod/mod_rewrite.html">mod_rewrite</a></code>, <br/><code><a href="./mod/mod_setenvif.html">mod_setenvif</a></code>, <br/><code><a href="./mod/mod_unique_id.html">mod_unique_id</a></code><br/></td><td valign="top"><strong>Related Directives</strong><br/><br/><a href="./mod/mod_setenvif.html#browsermatch" class="directive"><code class="directive">BrowserMatch</code></a><br/><a href="./mod/mod_setenvif.html#browsermatchnocase" class="directive"><code class="directive">BrowserMatchNoCase</code></a><br/><a href="./mod/mod_env.html#passenv" class="directive"><code class="directive">PassEnv</code></a><br/><a href="./mod/mod_rewrite.html#rewriterule" class="directive"><code class="directive">RewriteRule</code></a><br/><a href="./mod/mod_env.html#setenv" class="directive"><code class="directive">SetEnv</code></a><br/><a href="./mod/mod_setenvif.html#setenvif" class="directive"><code class="directive">SetEnvIf</code></a><br/><a href="./mod/mod_setenvif.html#setenvifnocase" class="directive"><code class="directive">SetEnvIfNoCase</code></a><br/><a href="./mod/mod_env.html.html#unsetenv" class="directive"><code class="directive">UnsetEnv</code></a><br/></td></tr></table>
+
+ <h3><a name="basic-manipulation">Basic Environment Manipulation</a></h3>
+
+
+ <p>The most basic way to set an environment variable in Apache
+ is using the unconditional <a href="./mod/mod_env.html#setenv" class="directive"><code class="directive">SetEnv</code></a> directive. Variables may also be passed from
+ the environment of the shell which started the server using the
+ <a href="./mod/mod_env.html#passenv" class="directive"><code class="directive">PassEnv</code></a> directive.</p>
+
+
+ <h3><a name="conditional">Conditional Per-Request Settings</a></h3>
+
+
+ <p>For additional flexibility, the directives provided by
+ mod_setenvif allow environment variables to be set on a
+ per-request basis, conditional on characteristics of particular
+ requests. For example, a variable could be set only when a
+ specific browser (User-Agent) is making a request, or only when
+ a specific Referer [sic] header is found. Even more flexibility
+ is available through the mod_rewrite's <a href="./mod/mod_rewrite.html#rewriterule" class="directive"><code class="directive">RewriteRule</code></a> which uses the
+ <code>[E=...]</code> option to set environment variables.</p>
+
+
+ <h3><a name="unique-identifiers">Unique Identifiers</a></h3>
+
+
+ <p>Finally, mod_unique_id sets the environment variable
+ <code>UNIQUE_ID</code> for each request to a value which is
+ guaranteed to be unique across "all" requests under very
+ specific conditions.</p>
+
+
+ <h3><a name="standard-cgi">Standard CGI Variables</a></h3>
+
+
+ <p>In addition to all environment variables set within the
+ Apache configuration and passed from the shell, CGI scripts and
+ SSI pages are provided with a set of environment variables
+ containing meta-information about the request as required by
+ the <a href="http://cgi-spec.golux.com/">CGI
+ specification</a>.</p>
+
+
+ <h3><a name="caveats">Some Caveats</a></h3>
+
+
+ <ul>
+ <li>It is not possible to override or change the standard CGI
+ variables using the environment manipulation directives.</li>
+
+ <li>When <a href="suexec.html">suexec</a> is used to launch
+ CGI scripts, the environment will be cleaned down to a set of
+ <em>safe</em> variables before CGI scripts are launched. The
+ list of <em>safe</em> variables is defined at compile-time in
+ <code>suexec.c</code>.</li>
+
+ <li>For portability reasons, the names of environment
+ variables may contain only letters, numbers, and the
+ underscore character. In addition, the first character may
+ not be a number. Characters which do not match this
+ restriction will be replaced by an underscore when passed to
+ CGI scripts and SSI pages.</li>
+ </ul>
+
+ <h2><a name="using">Using Environment Variables</a></h2>
+
+
+ <table border="1"><tr><td valign="top"><strong>Related Modules</strong><br/><br/><code><a href="./mod/mod_access.html">mod_access</a></code>, <br/><code><a href="./mod/mod_cgi.html">mod_cgi</a></code>, <br/><code><a href="./mod/mod_headers.html">mod_headers</a></code>, <br/><code><a href="./mod/mod_include.html">mod_include</a></code>, <br/><code><a href="./mod/mod_log_config.html">mod_log_config</a></code>, <br/><code><a href="./mod/mod_rewrite.html">mod_rewrite</a></code><br/></td><td valign="top"><strong>Related Directives</strong><br/><br/><a href="./mod/mod_access.html#allow" class="directive"><code class="directive">Allow</code></a><br/><a href="./mod/mod_log_config.html#customlog" class="directive"><code class="directive">CustomLog</code></a><br/><a href="./mod/mod_access.html#deny" class="directive"><code class="directive">Deny</code></a><br/><a href="./mod/mod_headers.html#header" class="directive"><code class="directive">Header</code></a><br/><a href="./mod/mod_log_config.html#logformat" class="directive"><code class="directive">LogFormat</code></a><br/><a href="./mod/mod_rewrite.html#rewritecond" class="directive"><code class="directive">RewriteCond</code></a><br/><a href="./mod/mod_rewrite.html#rewriterule" class="directive"><code class="directive">RewriteRule</code></a><br/></td></tr></table>
+
+ <h3><a name="cgi-scripts">CGI Scripts</a></h3>
+
+
+ <p>One of the primary uses of environment variables is to
+ communicate information to CGI scripts. As discussed above, the
+ environment passed to CGI scripts includes standard
+ meta-information about the request in addition to any variables
+ set within the Apache configuration. For more details, see the
+ <a href="howto/cgi.html">CGI tutorial</a>.</p>
+
+
+ <h3><a name="ssi-pages">SSI Pages</a></h3>
+
+
+ <p>Server-parsed (SSI) documents processed by mod_include's
+ <code>INCLUDES</code> filter can print environment variables
+ using the <code>echo</code> element, and can use environment
+ variables in flow control elements to makes parts of a page
+ conditional on characteristics of a request. Apache also
+ provides SSI pages with the standard CGI environment variables
+ as discussed above. For more details, see the <a href="howto/ssi.html">SSI tutorial</a>.</p>
+
+
+ <h3><a name="access-control">Access Control</a></h3>
+
+
+ <p>Access to the server can be controlled based on the value of
+ environment variables using the <code>allow from env=</code>
+ and <code>deny from env=</code> directives. In combination with
+ <a href="./mod/mod_setenvif.html#setenvif" class="directive"><code class="directive">SetEnvIf</code></a>, this
+ allows for flexible control of access to the server based on
+ characteristics of the client. For example, you can use these
+ directives to deny access to a particular browser (User-Agent).
+ </p>
+
+
+ <h3><a name="logging">Conditional Logging</a></h3>
+
+
+ <p>Environment variables can be logged in the access log using
+ the <a href="./mod/mod_log_config.html#logformat" class="directive"><code class="directive">LogFormat</code></a>
+ option <code>%e</code>. In addition, the decision on whether
+ or not to log requests can be made based on the status of
+ environment variables using the conditional form of the
+ <a href="./mod/mod_log_config.html#customlog" class="directive"><code class="directive">CustomLog</code></a>
+ directive. In combination with <a href="./mod/mod_setenvif.html#setenvif" class="directive"><code class="directive">SetEnvIf</code></a> this allows for flexible control of which
+ requests are logged. For example, you can choose not to log
+ requests for filenames ending in <code>gif</code>, or you can
+ choose to only log requests from clients which are outside your
+ subnet.</p>
+
+
+ <h3><a name="response-headers">Conditional Response Headers</a></h3>
+
+
+ <p>The <a href="./mod/mod_headers.html#header" class="directive"><code class="directive">Header</code></a>
+ directive can use the presence or
+ absence of an environment variable to determine whether or not
+ a certain HTTP header will be placed in the response to the
+ client. This allows, for example, a certain response header to
+ be sent only if a corresponding header is received in the
+ request from the client.</p>
+
+
+ <h3><a name="url-rewriting">URL Rewriting</a></h3>
+
+
+ <p>The <code>%{ENV:...}</code> form of <em>TestString</em> in
+ the <a href="./mod/mod_rewrite.html#rewritecond" class="directive"><code class="directive">RewriteCond</code></a>
+ allows mod_rewrite's rewrite
+ engine to make decisions conditional on environment variables.
+ Note that the variables accessible in mod_rewrite without the
+ <code>ENV:</code> prefix are not actually environment
+ variables. Rather, they are variables special to mod_rewrite
+ which cannot be accessed from other modules.</p>
+
+ <h2><a name="special">Special Purpose Environment Variables</a></h2>
+
+
+ <p>Interoperability problems have led to the introduction of
+ mechanisms to modify the way Apache behaves when talking to
+ particular clients. To make these mechanisms as flexible as
+ possible, they are invoked by defining environment variables,
+ typically with <a href="./mod/mod_setenvif.html#browsermatch" class="directive"><code class="directive">BrowserMatch</code></a>,
+ though <a href="./mod/mod_env.html#setenv" class="directive"><code class="directive">SetEnv</code></a> and
+ <a href="./mod/mod_env.html#passenv" class="directive"><code class="directive">PassEnv</code></a> could also be used,
+ for example.</p>
+
+ <h3><a name="downgrade">downgrade-1.0</a></h3>
+
+
+ <p>This forces the request to be treated as a HTTP/1.0 request
+ even if it was in a later dialect.</p>
+
+
+ <h3><a name="force-no-vary">force-no-vary</a></h3>
+
+
+ <p>This causes any <code>Vary</code> fields to be removed from
+ the response header before it is sent back to the client. Some
+ clients don't interpret this field correctly (see the <a href="misc/known_client_problems.html">known client
+ problems</a> page); setting this variable can work around this
+ problem. Setting this variable also implies
+ <strong>force-response-1.0</strong>.</p>
+
+
+ <h3><a name="force-response">force-response-1.0</a></h3>
+
+
+ <p>This forces an HTTP/1.0 response when set. It was originally
+ implemented as a result of a problem with AOL's proxies. Some
+ clients may not behave correctly when given an HTTP/1.1
+ response, and this can be used to interoperate with them.</p>
+
+
+ <h3><a name="nokeepalive">nokeepalive</a></h3>
+
+
+ <p>This disables <a href="./mod/core.html#keepalive" class="directive"><code class="directive">KeepAlive</code></a> when set.</p>
+
+
+ <h3><a name="redirect-carefully">redirect-carefully</a></h3>
+
+
+ <p>This forces the server to be more careful when sending a redirect
+ to the client. This is typically used when a client has a known
+ problem handling redirects. This was originally implemented as a
+ result of a problem with Microsoft's WebFolders software which has
+ a problem handling redirects on directory resources via DAV
+ methods.</p>
+
+
+ <h2><a name="examples">Examples</a></h2>
+
+
+ <h3><a name="misbehaving">Changing protocol behavior with misbehaving clients</a></h3>
+
+
+ <p>We recommend that the following lines be included in
+ httpd.conf to deal with known client problems.</p>
+<blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code><pre>
#
# The following directives modify normal HTTP response behavior.
# The first directive disables keepalive for Netscape 2.x and browsers that
@@ -306,45 +253,43 @@ BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
-BrowserMatch "JDK/1\.0" force-response-1.0
-</pre>
-
- <h3>Do not log requests for images in the access log</h3>
-
- <p>This example keeps requests for images from appearing in the
- access log. It can be easily modified to prevent logging of
- particular directories, or to prevent logging of requests
- coming from particular hosts.</p>
-<pre>
- 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
-</pre>
-
- <h3>Prevent "Image Theft"</h3>
-
- <p>This example shows how to keep people not on your server
- from using images on your server as inline-images on their
- pages. This is not a recommended configuration, but it can work
- in limited circumstances. We assume that all your images are in
- a directory called /web/images.</p>
-<pre>
- SetEnvIf Referer "^http://www.example.com/" local_referal
- # Allow browsers that do not send Referer info
- SetEnvIf Referer "^$" local_referal
- &lt;Directory /web/images&gt;
- Order Deny,Allow
- Deny from all
- Allow from env=local_referal
- &lt;/Directory&gt;
-</pre>
-
- <p>For more information about this technique, see the
- ApacheToday tutorial " <a
- href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS">
+BrowserMatch "JDK/1\.0" force-response-1.0</pre></code></td></tr></table></blockquote>
+
+
+ <h3><a name="no-img-log">Do not log requests for images in the access log</a></h3>
+
+
+ <p>This example keeps requests for images from appearing in the
+ access log. It can be easily modified to prevent logging of
+ particular directories, or to prevent logging of requests
+ coming from particular hosts.</p>
+ <blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code><pre>
+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</pre></code></td></tr></table></blockquote>
+
+
+ <h3><a name="image-theft">Prevent "Image Theft"</a></h3>
+
+
+ <p>This example shows how to keep people not on your server
+ from using images on your server as inline-images on their
+ pages. This is not a recommended configuration, but it can work
+ in limited circumstances. We assume that all your images are in
+ a directory called /web/images.</p>
+ <blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code><pre>
+SetEnvIf Referer "^http://www.example.com/" local_referal
+# Allow browsers that do not send Referer info
+SetEnvIf Referer "^$" local_referal
+&lt;Directory /web/images&gt;
+ Order Deny,Allow
+ Deny from all
+ Allow from env=local_referal
+&lt;/Directory&gt;</pre></code></td></tr></table></blockquote>
+
+ <p>For more information about this technique, see the
+ ApacheToday tutorial " <a href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS">
Keeping Your Images from Adorning Other Sites</a>".</p>
- <!--#include virtual="footer.html" -->
- </body>
-</html>
-
+
+ </blockquote><h3 align="center">Apache HTTP Server Version 2.0</h3><a href="./"><img src="./images/index.gif" alt="Index"/></a><a href="./"><img src="./images/home.gif" alt="Home"/></a></body></html> \ No newline at end of file
diff --git a/docs/manual/env.xml b/docs/manual/env.xml
new file mode 100644
index 0000000000..263e3527dc
--- /dev/null
+++ b/docs/manual/env.xml
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
+
+<manualpage>
+ <relativepath href="."/>
+
+ <title>Environment Variables in Apache</title>
+
+ <summary>
+ <p>The Apache HTTP Server provides a mechanism for storing
+ information in named variables that are called <em>environment
+ variables</em>. This information can be used to control various
+ operations such as logging or access control. The variables are
+ also used as a mechanism to communicate with external programs
+ such as CGI scripts. This document discusses different ways to
+ manipulate and use these variables.</p>
+
+ <p>Although these variables are referred to as <em>environment
+ variables</em>, they are not the same as the environment
+ variables controlled by the underlying operating system.
+ Instead, these variables are stored and manipulated in an
+ internal Apache structure. They only become actual operating
+ system environment variables when they are provided to CGI
+ scripts and Server Side Include scripts. If you wish to
+ manipulate the operating system environment under which the
+ server itself runs, you must use the standard environment
+ manipulation mechanisms provided by your operating system
+ shell.</p>
+ </summary>
+
+ <section id="setting">
+ <title>Setting Environment Variables</title>
+ <related>
+ <modulelist>
+ <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.html">UnsetEnv</directive>
+ </directivelist>
+ </related>
+
+ <section id="basic-manipulation">
+ <title>Basic Environment Manipulation</title>
+
+ <p>The most basic way to set an environment variable in Apache
+ is using the unconditional <directive module="mod_env"
+ >SetEnv</directive> directive. Variables may also be passed from
+ the environment of the shell which started the server using the
+ <directive module="mod_env">PassEnv</directive> directive.</p>
+
+ </section>
+ <section id="conditional">
+ <title>Conditional Per-Request Settings</title>
+
+ <p>For additional flexibility, the directives provided by
+ mod_setenvif allow environment variables to be set on a
+ per-request basis, conditional on characteristics of particular
+ requests. For example, a variable could be set only when a
+ specific browser (User-Agent) is making a request, or only when
+ a specific Referer [sic] header is found. Even more flexibility
+ is available through the mod_rewrite's <directive
+ module="mod_rewrite">RewriteRule</directive> which uses the
+ <code>[E=...]</code> option to set environment variables.</p>
+
+ </section>
+ <section id="unique-identifiers">
+ <title>Unique Identifiers</title>
+
+ <p>Finally, mod_unique_id sets the environment variable
+ <code>UNIQUE_ID</code> for each request to a value which is
+ guaranteed to be unique across "all" requests under very
+ specific conditions.</p>
+
+ </section>
+ <section id="standard-cgi">
+ <title>Standard CGI Variables</title>
+
+ <p>In addition to all environment variables set within the
+ Apache configuration and passed from the shell, CGI scripts and
+ SSI pages are provided with a set of environment variables
+ containing meta-information about the request as required by
+ the <a href="http://cgi-spec.golux.com/">CGI
+ specification</a>.</p>
+
+ </section>
+ <section id="caveats">
+ <title>Some Caveats</title>
+
+ <ul>
+ <li>It is not possible to override or change the standard CGI
+ variables using the environment manipulation directives.</li>
+
+ <li>When <a href="suexec.html">suexec</a> is used to launch
+ CGI scripts, the environment will be cleaned down to a set of
+ <em>safe</em> variables before CGI scripts are launched. The
+ list of <em>safe</em> variables is defined at compile-time in
+ <code>suexec.c</code>.</li>
+
+ <li>For portability reasons, the names of environment
+ variables may contain only letters, numbers, and the
+ underscore character. In addition, the first character may
+ not be a number. Characters which do not match this
+ restriction will be replaced by an underscore when passed to
+ CGI scripts and SSI pages.</li>
+ </ul>
+ </section>
+ </section>
+ <section id="using">
+ <title>Using Environment Variables</title>
+
+ <related>
+ <modulelist>
+ <module>mod_access</module>
+ <module>mod_cgi</module>
+ <module>mod_headers</module>
+ <module>mod_include</module>
+ <module>mod_log_config</module>
+ <module>mod_rewrite</module>
+ </modulelist>
+ <directivelist>
+ <directive module="mod_access">Allow</directive>
+ <directive module="mod_log_config">CustomLog</directive>
+ <directive module="mod_access">Deny</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 Scripts</title>
+
+ <p>One of the primary uses of environment variables is to
+ communicate information to CGI scripts. As discussed above, the
+ environment passed to CGI scripts includes standard
+ meta-information about the request in addition to any variables
+ set within the Apache configuration. For more details, see the
+ <a href="howto/cgi.html">CGI tutorial</a>.</p>
+
+ </section>
+ <section id="ssi-pages">
+ <title>SSI Pages</title>
+
+ <p>Server-parsed (SSI) documents processed by mod_include's
+ <code>INCLUDES</code> filter can print environment variables
+ using the <code>echo</code> element, and can use environment
+ variables in flow control elements to makes parts of a page
+ conditional on characteristics of a request. Apache also
+ provides SSI pages with the standard CGI environment variables
+ as discussed above. For more details, see the <a
+ href="howto/ssi.html">SSI tutorial</a>.</p>
+
+ </section>
+ <section id="access-control">
+ <title>Access Control</title>
+
+ <p>Access to the server can be controlled based on the value of
+ environment variables using the <code>allow from env=</code>
+ and <code>deny from env=</code> directives. In combination with
+ <directive module="mod_setenvif">SetEnvIf</directive>, this
+ allows for flexible control of access to the server based on
+ characteristics of the client. For example, you can use these
+ directives to deny access to a particular browser (User-Agent).
+ </p>
+
+ </section>
+ <section id="logging">
+ <title>Conditional Logging</title>
+
+ <p>Environment variables can be logged in the access log using
+ the <directive module="mod_log_config">LogFormat</directive>
+ option <code>%e</code>. In addition, the decision on whether
+ or not to log requests can be made based on the status of
+ environment variables using the conditional form of the
+ <directive module="mod_log_config">CustomLog</directive>
+ directive. In combination with <directive module="mod_setenvif"
+ >SetEnvIf</directive> this allows for flexible control of which
+ requests are logged. For example, you can choose not to log
+ requests for filenames ending in <code>gif</code>, or you can
+ choose to only log requests from clients which are outside your
+ subnet.</p>
+
+ </section>
+ <section id="response-headers">
+ <title>Conditional Response Headers</title>
+
+ <p>The <directive module="mod_headers">Header</directive>
+ directive can use the presence or
+ absence of an environment variable to determine whether or not
+ a certain HTTP header will be placed in the response to the
+ client. This allows, for example, a certain response header to
+ be sent only if a corresponding header is received in the
+ request from the client.</p>
+
+ </section>
+ <section id="url-rewriting">
+ <title>URL Rewriting</title>
+
+ <p>The <code>%{ENV:...}</code> form of <em>TestString</em> in
+ the <directive module="mod_rewrite">RewriteCond</directive>
+ allows mod_rewrite's rewrite
+ engine to make decisions conditional on environment variables.
+ Note that the variables accessible in mod_rewrite without the
+ <code>ENV:</code> prefix are not actually environment
+ variables. Rather, they are variables special to mod_rewrite
+ which cannot be accessed from other modules.</p>
+ </section>
+ </section>
+
+ <section id="special">
+ <title>Special Purpose Environment Variables</title>
+
+ <p>Interoperability problems have led to the introduction of
+ mechanisms to modify the way Apache behaves when talking to
+ particular clients. To make these mechanisms as flexible as
+ possible, they are invoked by defining environment variables,
+ typically with <directive module="mod_setenvif">BrowserMatch</directive>,
+ though <directive module="mod_env">SetEnv</directive> and
+ <directive module="mod_env">PassEnv</directive> could also be used,
+ for example.</p>
+
+ <section id="downgrade">
+ <title>downgrade-1.0</title>
+
+ <p>This forces the request to be treated as a HTTP/1.0 request
+ even if it was in a later dialect.</p>
+
+ </section>
+ <section id="force-no-vary">
+ <title>force-no-vary</title>
+
+ <p>This causes any <code>Vary</code> fields to be removed from
+ the response header before it is sent back to the client. Some
+ clients don't interpret this field correctly (see the <a
+ href="misc/known_client_problems.html">known client
+ problems</a> page); setting this variable can work around this
+ problem. Setting this variable also implies
+ <strong>force-response-1.0</strong>.</p>
+
+ </section>
+ <section id="force-response">
+ <title>force-response-1.0</title>
+
+ <p>This forces an HTTP/1.0 response when set. It was originally
+ implemented as a result of a problem with AOL's proxies. Some
+ clients may not behave correctly when given an HTTP/1.1
+ response, and this can be used to interoperate with them.</p>
+
+ </section>
+ <section id="nokeepalive">
+ <title>nokeepalive</title>
+
+ <p>This disables <directive module="core">KeepAlive</directive> when set.</p>
+
+ </section>
+ <section id="redirect-carefully">
+ <title>redirect-carefully</title>
+
+ <p>This forces the server to be more careful when sending a redirect
+ to the client. This is typically used when a client has a known
+ problem handling redirects. This was originally implemented as a
+ result of a problem with Microsoft's WebFolders software which has
+ a problem handling redirects on directory resources via DAV
+ methods.</p>
+
+ </section>
+ </section>
+
+ <section id="examples">
+ <title>Examples</title>
+
+ <section id="misbehaving">
+ <title>Changing protocol behavior with misbehaving clients</title>
+
+ <p>We recommend that the following lines be included in
+ httpd.conf to deal with known client problems.</p>
+<example><pre>
+#
+# The following directives modify normal HTTP response behavior.
+# The first directive disables keepalive for Netscape 2.x and browsers that
+# spoof it. There are known problems with these browser implementations.
+# The second directive is for Microsoft Internet Explorer 4.0b2
+# which has a broken HTTP/1.1 implementation and does not properly
+# support keepalive when it is used on 301 or 302 (redirect) responses.
+#
+BrowserMatch "Mozilla/2" nokeepalive
+BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
+
+#
+# The following directive disables HTTP/1.1 responses to browsers which
+# are in violation of the HTTP/1.0 spec by not being able to grok a
+# basic 1.1 response.
+#
+BrowserMatch "RealPlayer 4\.0" force-response-1.0
+BrowserMatch "Java/1\.0" force-response-1.0
+BrowserMatch "JDK/1\.0" force-response-1.0</pre></example>
+
+ </section>
+ <section id="no-img-log">
+ <title>Do not log requests for images in the access log</title>
+
+ <p>This example keeps requests for images from appearing in the
+ access log. It can be easily modified to prevent logging of
+ particular directories, or to prevent logging of requests
+ coming from particular hosts.</p>
+ <example><pre>
+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</pre></example>
+
+ </section>
+ <section id="image-theft">
+ <title>Prevent "Image Theft"</title>
+
+ <p>This example shows how to keep people not on your server
+ from using images on your server as inline-images on their
+ pages. This is not a recommended configuration, but it can work
+ in limited circumstances. We assume that all your images are in
+ a directory called /web/images.</p>
+ <example><pre>
+SetEnvIf Referer "^http://www.example.com/" local_referal
+# Allow browsers that do not send Referer info
+SetEnvIf Referer "^$" local_referal
+&lt;Directory /web/images&gt;
+ Order Deny,Allow
+ Deny from all
+ Allow from env=local_referal
+&lt;/Directory&gt;</pre></example>
+
+ <p>For more information about this technique, see the
+ ApacheToday tutorial " <a
+ href="http://apachetoday.com/news_story.php3?ltsn=2000-06-14-002-01-PS">
+ Keeping Your Images from Adorning Other Sites</a>".</p>
+ </section>
+ </section>
+</manualpage>
+
+
+
+
diff --git a/docs/manual/filter.html.en b/docs/manual/filter.html.en
index 85c460ab38..75689e4963 100644
--- a/docs/manual/filter.html.en
+++ b/docs/manual/filter.html.en
@@ -1,47 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Filters - Apache HTTPD</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="center">Filters</h1>
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="mod/mod_deflate.html">mod_deflate</a><br />
- <a href="mod/mod_ext_filter.html">mod_ext_filter</a><br />
- <a href="mod/mod_include.html">mod_include</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a
- href="mod/mod_mime.html#addinputfilter">AddInputFilter</a><br />
- <a
- href="mod/mod_mime.html#addoutputfilter">AddOutputFilter</a><br />
- <a
- href="mod/mod_ext_filter.html#extfilterdefine">ExtFilterDefine</a><br />
- <a
- href="mod/mod_ext_filter.html#extfilteroptions">ExtFilterOptions</a><br />
- <a
- href="mod/core.html#setinputfilter">SetInputFilter</a><br />
- <a
- href="mod/core.html#setoutputfilter">SetOutputFilter</a><br />
- </td>
- </tr>
- </table>
-
+<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ --><title>Filters- Apache HTTP Server</title><link href="./style/manual.css" type="text/css" rel="stylesheet"/></head><body><blockquote><div align="center"><img src="./images/sub.gif" alt="[APACHE DOCUMENTATION]"/><h3>Apache HTTP Server Version 2.0</h3></div><h1 align="center">Filters</h1>
+ <p>This document describes the use of filters in Apache.</p>
+ <ul><li><a href="#filters">Filters</a></li></ul><hr/><h2><a name="filters">Filters</a></h2>
+
+ <table border="1"><tr><td valign="top"><strong>Related Modules</strong><br/><br/><code><a href="./mod/mod_deflate.html">mod_deflate</a></code>, <br/><code><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code>, <br/><code><a href="./mod/mod_include.html">mod_include</a></code><br/></td><td valign="top"><strong>Related Directives</strong><br/><br/><a href="./mod/mod_mime.html#addinputfilter" class="directive"><code class="directive">AddInputFilter</code></a><br/><a href="./mod/mod_mime.html#addoutputfilter" class="directive"><code class="directive">AddOutputFilter</code></a><br/><a href="./mod/mod_ext_filter.html#extfilterdefine" class="directive"><code class="directive">ExtFilterDefine</code></a><br/><a href="./mod/mod_ext_filter.html#extfilteroptions" class="directive"><code class="directive">ExtFilterOptions</code></a><br/><a href="./mod/core.html.html#setinputfilter" class="directive"><code class="directive">SetInputFilter</code></a><br/><a href="./mod/core.html.html#setoutputfilter" class="directive"><code class="directive">SetOutputFilter</code></a><br/></td></tr></table>
+
<p>A <em>filter</em> is a process that is applied to data that
is sent or received by the server. Data sent by clients to the
server is processed by <em>input filters</em> while data sent
@@ -53,25 +19,18 @@
as chunking and byte-range request handling. In addition, modules
can provide filters that are selectable using run-time
configuration directives. The set of filters that apply to data
- can be manipulated with the <code>SetInputFilter</code>,
- <code>SetOutputFilter</code>, <code>AddInputFilter</code>, and
- <code>AddOutputFilter</code> directives.</p>
+ can be manipulated with the <a href="./mod/core.html.html#setinputfilter" class="directive"><code class="directive">SetInputFilter</code></a>, <a href="./mod/core.html.html#setoutputfilter" class="directive"><code class="directive">SetOutputFilter</code></a>, <a href="./mod/mod_mime.html#addinputfilter" class="directive"><code class="directive">AddInputFilter</code></a>, and <a href="./mod/mod_mime.html#addoutputfilter" class="directive"><code class="directive">AddOutputFilter</code></a> directives.</p>
<p>The following user-selectable filters are currently provided
with the Apache HTTP Server distribution.</p>
-<dl>
-<dt>INCLUDES</dt> <dd>Server-Side Includes processing by <a
-href="mod/mod_include.html">mod_include</a></dd>
-<dt>DEFLATE</dt> <dd>Compress output before sending it to
-the client using <a href="mod/mod_deflate.html">mod_deflate</a></dd>
-</dl>
+ <dl>
+ <dt>INCLUDES</dt>
+ <dd>Server-Side Includes processing by <code><a href="./mod/mod_include.html">mod_include</a></code></dd>
+ <dt>DEFLATE</dt>
+ <dd>Compress output before sending it to the client using <code><a href="./mod/mod_include.html">mod_include</a></code></dd>
+ </dl>
- <p>In addition, the module <a
- href="mod/mod_ext_filter.html">mod_ext_filter</a> allows
+ <p>In addition, the module <code><a href="./mod/mod_ext_filter.html">mod_ext_filter</a></code> allows
for external programs to be defined as filters.</p>
-
- <!--#include virtual="footer.html" -->
- </body>
-</html>
-
+ </blockquote><h3 align="center">Apache HTTP Server Version 2.0</h3><a href="./"><img src="./images/index.gif" alt="Index"/></a><a href="./"><img src="./images/home.gif" alt="Home"/></a></body></html> \ No newline at end of file
diff --git a/docs/manual/filter.xml b/docs/manual/filter.xml
new file mode 100644
index 0000000000..ba58529f66
--- /dev/null
+++ b/docs/manual/filter.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
+
+<manualpage>
+ <relativepath href="."/>
+
+ <title>Filters</title>
+
+ <summary>
+ <p>This document describes the use of filters in Apache.</p>
+ </summary>
+
+ <section id="filters">
+ <title>Filters</title>
+ <related>
+ <modulelist>
+ <module>mod_deflate</module>
+ <module>mod_ext_filter</module>
+ <module>mod_include</module>
+ </modulelist>
+ <directivelist>
+ <directive module="mod_mime">AddInputFilter</directive>
+ <directive module="mod_mime">AddOutputFilter</directive>
+ <directive module="mod_ext_filter">ExtFilterDefine</directive>
+ <directive module="mod_ext_filter">ExtFilterOptions</directive>
+ <directive module="core.html">SetInputFilter</directive>
+ <directive module="core.html">SetOutputFilter</directive>
+ </directivelist>
+ </related>
+
+ <p>A <em>filter</em> is a process that is applied to data that
+ is sent or received by the server. Data sent by clients to the
+ server is processed by <em>input filters</em> while data sent
+ by the server to the client is processed by <em>output
+ filters</em>. Multiple filters can be applied to the data, and
+ the order of the filters can be explicitly specified.</p>
+
+ <p>Filters are used internally by Apache to perform functions such
+ as chunking and byte-range request handling. In addition, modules
+ can provide filters that are selectable using run-time
+ configuration directives. The set of filters that apply to data
+ can be manipulated with the <directive module="core.html"
+ >SetInputFilter</directive>, <directive module="core.html"
+ >SetOutputFilter</directive>, <directive module="mod_mime"
+ >AddInputFilter</directive>, and <directive module="mod_mime"
+ >AddOutputFilter</directive> directives.</p>
+
+ <p>The following user-selectable filters are currently provided
+ with the Apache HTTP Server distribution.</p>
+
+ <dl>
+ <dt>INCLUDES</dt>
+ <dd>Server-Side Includes processing by <module>mod_include</module></dd>
+ <dt>DEFLATE</dt>
+ <dd>Compress output before sending it to the client using <module
+ >mod_include</module></dd>
+ </dl>
+
+ <p>In addition, the module <module>mod_ext_filter</module> allows
+ for external programs to be defined as filters.</p>
+ </section>
+</manualpage>
+
+
+
+
diff --git a/docs/manual/handler.html.en b/docs/manual/handler.html.en
index f937095dcd..48648277e0 100644
--- a/docs/manual/handler.html.en
+++ b/docs/manual/handler.html.en
@@ -1,59 +1,13 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta name="generator" content="HTML Tidy, see www.w3.org" />
-
- <title>Apache's Handler Use</title>
- </head>
- <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
-
- <body bgcolor="#FFFFFF" text="#000000" link="#0000FF"
- vlink="#000080" alink="#FF0000">
- <!--#include virtual="header.html" -->
-
- <h1 align="center">Apache's Handler Use</h1>
-
- <ul>
- <li><a href="#definition">What is a Handler</a></li>
-
- <li><a href="#examples">Examples</a></li>
-
- <li><a href="#programmer">Programmer's Note</a></li>
- </ul>
- <hr />
-
- <h2><a id="definition" name="definition">What is a
- Handler</a></h2>
-
- <table border="1">
- <tr>
- <td valign="top"><strong>Related Modules</strong><br />
- <br />
- <a href="mod/mod_actions.html">mod_actions</a><br />
- <a href="mod/mod_asis.html">mod_asis</a><br />
- <a href="mod/mod_cgi.html">mod_cgi</a><br />
- <a href="mod/mod_imap.html">mod_imap</a><br />
- <a href="mod/mod_info.html">mod_info</a><br />
- <a href="mod/mod_mime.html">mod_mime</a><br />
- <a
- href="mod/mod_negotiation.html">mod_negotiation</a><br />
- <a href="mod/mod_status.html">mod_status</a><br />
- </td>
-
- <td valign="top"><strong>Related Directives</strong><br />
- <br />
- <a href="mod/mod_actions.html#action">Action</a><br />
- <a
- href="mod/mod_mime.html#addhandler">AddHandler</a><br />
- <a
- href="mod/mod_mime.html#removehandler">RemoveHandler</a><br />
- <a
- href="mod/mod_mime.html#sethandler">SetHandler</a><br />
- </td>
- </tr>
- </table>
+<html xmlns="http://www.w3.org/TR/xhtml1/strict"><head><!--
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ This file is generated from xml source: DO NOT EDIT
+ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ --><title>Apache's Handler Use- Apache HTTP Server</title><link href="./style/manual.css" type="text/css" rel="stylesheet"/></head><body><blockquote><div align="center"><img src="./images/sub.gif" alt="[APACHE DOCUMENTATION]"/><h3>Apache HTTP Server Version 2.0</h3></div><h1 align="center">Apache's Handler Use</h1>
+ <p>This document describes the use of Apache's Handlers.</p>
+ <ul><li><a href="#definition">What is a Handler</a></li><li><a href="#examples">Examples</a><ul><li><a href="#example1">Modifying static content using a CGI script</a></li><li><a href="#example2">Files with HTTP headers</a></li></ul></li><li><a href="#programmer">Programmer's Note</a></li></ul><hr/><h2><a name="definition">What is a Handler</a></h2>
+
+ <table border="1"><tr><td valign="top"><strong>Related Modules</strong><br/><br/><code><a href="./mod/mod_actions.html">mod_actions</a></code>, <br/><code><a href="./mod/mod_asis.html">mod_asis</a></code>, <br/><code><a href="./mod/mod_cgi.html">mod_cgi</a></code>, <br/><code><a href="./mod/mod_imap.html">mod_imap</a></code>, <br/><code><a href="./mod/mod_info.html">mod_info</a></code>, <br/><code><a href="./mod/mod_mime.html">mod_mime</a></code>, <br/><code><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>, <br/><code><a href="./mod/mod_status.html">mod_status</a></code><br/></td><td valign="top"><strong>Related Directives</strong><br/><br/><a href="./mod/mod_actions.html#action" class="directive"><code class="directive">Action</code></a><br/><a href="./mod/mod_mime.html#addhandler" class="directive"><code class="directive">AddHandler</code></a><br/><a href="./mod/mod_mime.html#removehandler" class="directive"><code class="directive">RemoveHandler</code></a><br/><a href="./mod/mod_mime.html#sethandler" class="directive"><code class="directive">SetHandler</code></a><br/></td></tr></table>
+
<p>A "handler" is an internal Apache representation of the
action to be performed when a file is called. Generally, files
@@ -66,13 +20,11 @@
can be specified without relation to file type. This is
advantageous both because it is a more elegant solution, and
because it also allows for both a type <strong>and</strong> a
- handler to be associated with a file. (See also <a
- href="mod/mod_mime.html#multipleext">Files with Multiple
+ handler to be associated with a file. (See also <a href="mod/mod_mime.html#multipleext">Files with Multiple
Extensions</a>.)</p>
<p>Handlers can either be built into the server or included in
- a module, or they can be added with the <a
- href="mod/mod_actions.html#action">Action</a> directive. The
+ a module, or they can be added with the <a href="./mod/mod_actions.html#action" class="directive"><code class="directive">Action</code></a> directive. The
built-in handlers in the standard distribution are as
follows:</p>
@@ -82,61 +34,63 @@
default to handle static content. (core)</li>
<li><strong>send-as-is</strong>: Send file with HTTP headers
- as is. (<a href="mod/mod_asis.html">mod_asis</a>)</li>
+ as is. (<code><a href="./mod/mod_asis.html">mod_asis</a></code>)</li>
<li><strong>cgi-script</strong>: Treat the file as a CGI
- script. (<a href="mod/mod_cgi.html">mod_cgi</a>)</li>
+ script. (<code><a href="./mod/mod_cgi.html">mod_cgi</a></code>)</li>
<li><strong>imap-file</strong>: Parse as an imagemap rule
- file. (<a href="mod/mod_imap.html">mod_imap</a>)</li>
+ file. (<code><a href="./mod/mod_imap.html">mod_imap</a></code>)</li>
<li><strong>server-info</strong>: Get the server's
- configuration information. (<a
- href="mod/mod_info.html">mod_info</a>)</li>
+ configuration information. (<code><a href="./mod/mod_info.html">mod_info</a></code>)</li>
<li><strong>server-status</strong>: Get the server's status
- report. (<a href="mod/mod_status.html">mod_status</a>)</li>
+ report. (<code><a href="./mod/mod_status.html">mod_status</a></code>)</li>
<li><strong>type-map</strong>: Parse as a type map file for
- content negotiation. (<a
- href="mod/mod_negotiation.html">mod_negotiation</a>)</li>
+ content negotiation. (<code><a href="./mod/mod_negotiation.html">mod_negotiation</a></code>)</li>
</ul>
- <hr />
-
- <h2><a id="examples" name="examples">Examples</a></h2>
-
- <h3>Modifying static content using a CGI script</h3>
-
- <p>The following directives will cause requests for files with
- the <code>html</code> extension to trigger the launch of the
- <code>footer.pl</code> CGI script.</p>
-<pre>
- Action add-footer /cgi-bin/footer.pl
- AddHandler add-footer .html
-</pre>
-
- <p>Then the CGI script is responsible for sending the
- originally requested document (pointed to by the
- <code>PATH_TRANSLATED</code> environment variable) and making
- whatever modifications or additions are desired.</p>
-
- <h3>Files with HTTP headers</h3>
-
- <p>The following directives will enable the
- <code>send-as-is</code> handler, which is used for files which
- contain their own HTTP headers. All files in the
- <code>/web/htdocs/asis/</code> directory will be processed by
- the <code>send-as-is</code> handler, regardless of their
- filename extensions.</p>
-<pre>
- &lt;Directory /web/htdocs/asis&gt;
- SetHandler send-as-is
- &lt;/Directory&gt;
-</pre>
- <hr />
-
- <h2><a id="programmer" name="programmer">Programmer's
- Note</a></h2>
+ <h2><a name="examples">Examples</a></h2>
+
+
+ <h3><a name="example1">Modifying static content using a CGI script</a></h3>
+
+
+ <p>The following directives will cause requests for files with
+ the <code>html</code> extension to trigger the launch of the
+ <code>footer.pl</code> CGI script.</p>
+
+ <blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code><code>
+ Action add-footer /cgi-bin/footer.pl<br>
+ AddHandler add-footer .html
+ </code></code></td></tr></table></blockquote>
+
+ <p>Then the CGI script is responsible for sending the
+ originally requested document (pointed to by the
+ <code>PATH_TRANSLATED</code> environment variable) and making
+ whatever modifications or additions are desired.</p>
+
+
+ <h3><a name="example2">Files with HTTP headers</a></h3>
+
+
+ <p>The following directives will enable the
+ <code>send-as-is</code> handler, which is used for files which
+ contain their own HTTP headers. All files in the
+ <code>/web/htdocs/asis/</code> directory will be processed by
+ the <code>send-as-is</code> handler, regardless of their
+ filename extensions.</p>
+
+ <blockquote><table cellpadding="10"><tr><td bgcolor="#eeeeee"><code><code>
+ &lt;Directory /web/htdocs/asis&gt;<br>
+ SetHandler send-as-is<br>
+ &lt;/Directory&gt;
+ </code></code></td></tr></table></blockquote>
+
+
+ <h2><a name="programmer">Programmer's Note</a></h2>
+
<p>In order to implement the handler features, an addition has
been made to the <a href="developer/API.html">Apache API</a> that
@@ -154,7 +108,4 @@
type. While it is not necessary, the naming convention for
handlers is to use a dash-separated word, with no slashes, so
as to not invade the media type name-space.</p>
- <!--#include virtual="footer.html" -->
- </body>
-</html>
-
+ </blockquote><h3 align="center">Apache HTTP Server Version 2.0</h3><a href="./"><img src="./images/index.gif" alt="Index"/></a><a href="./"><img src="./images/home.gif" alt="Home"/></a></body></html> \ No newline at end of file
diff --git a/docs/manual/handler.xml b/docs/manual/handler.xml
new file mode 100644
index 0000000000..3907bb4f20
--- /dev/null
+++ b/docs/manual/handler.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
+<?xml-stylesheet type="text/xsl" href="./style/manual.en.xsl"?>
+
+<manualpage>
+ <relativepath href="."/>
+
+ <title>Apache's Handler Use</title>
+
+ <summary>
+ <p>This document describes the use of Apache's Handlers.</p>
+ </summary>
+
+ <section id="definition">
+ <title>What is a Handler</title>
+ <related>
+ <modulelist>
+ <module>mod_actions</module>
+ <module>mod_asis</module>
+ <module>mod_cgi</module>
+ <module>mod_imap</module>
+ <module>mod_info</module>
+ <module>mod_mime</module>
+ <module>mod_negotiation</module>
+ <module>mod_status</module>
+ </modulelist>
+ <directivelist>
+ <directive module="mod_actions">Action</directive>
+ <directive module="mod_mime">AddHandler</directive>
+ <directive module="mod_mime">RemoveHandler</directive>
+ <directive module="mod_mime">SetHandler</directive>
+ </directivelist>
+ </related>
+
+
+ <p>A "handler" is an internal Apache representation of the
+ action to be performed when a file is called. Generally, files
+ have implicit handlers, based on the file type. Normally, all
+ files are simply served by the server, but certain file types
+ are "handled" separately.</p>
+
+ <p>Apache 1.1 adds the ability to use handlers explicitly.
+ Based on either filename extensions or on location, handlers
+ can be specified without relation to file type. This is
+ advantageous both because it is a more elegant solution, and
+ because it also allows for both a type <strong>and</strong> a
+ handler to be associated with a file. (See also <a
+ href="mod/mod_mime.html#multipleext">Files with Multiple
+ Extensions</a>.)</p>
+
+ <p>Handlers can either be built into the server or included in
+ a module, or they can be added with the <directive
+ module="mod_actions">Action</directive> directive. The
+ built-in handlers in the standard distribution are as
+ follows:</p>
+
+ <ul>
+ <li><strong>default-handler</strong>: Send the file using the
+ <code>default_handler()</code>, which is the handler used by
+ default to handle static content. (core)</li>
+
+ <li><strong>send-as-is</strong>: Send file with HTTP headers
+ as is. (<module>mod_asis</module>)</li>
+
+ <li><strong>cgi-script</strong>: Treat the file as a CGI
+ script. (<module>mod_cgi</module>)</li>
+
+ <li><strong>imap-file</strong>: Parse as an imagemap rule
+ file. (<module>mod_imap</module>)</li>
+
+ <li><strong>server-info</strong>: Get the server's
+ configuration information. (<module>mod_info</module>)</li>
+
+ <li><strong>server-status</strong>: Get the server's status
+ report. (<module>mod_status</module>)</li>
+
+ <li><strong>type-map</strong>: Parse as a type map file for
+ content negotiation. (<module>mod_negotiation</module>)</li>
+ </ul>
+ </section>
+ <section id="examples">
+ <title>Examples</title>
+
+ <section id="example1">
+ <title>Modifying static content using a CGI script</title>
+
+ <p>The following directives will cause requests for files with
+ the <code>html</code> extension to trigger the launch of the
+ <code>footer.pl</code> CGI script.</p>
+
+ <example><code>
+ Action add-footer /cgi-bin/footer.pl<br/>
+ AddHandler add-footer .html
+ </code></example>
+
+ <p>Then the CGI script is responsible for sending the
+ originally requested document (pointed to by the
+ <code>PATH_TRANSLATED</code> environment variable) and making
+ whatever modifications or additions are desired.</p>
+
+ </section>
+ <section id="example2">
+ <title>Files with HTTP headers</title>
+
+ <p>The following directives will enable the
+ <code>send-as-is</code> handler, which is used for files which
+ contain their own HTTP headers. All files in the
+ <code>/web/htdocs/asis/</code> directory will be processed by
+ the <code>send-as-is</code> handler, regardless of their
+ filename extensions.</p>
+
+ <example><code>
+ &lt;Directory /web/htdocs/asis&gt;<br/>
+ SetHandler send-as-is<br/>
+ &lt;/Directory&gt;
+ </code></example>
+
+ </section>
+ </section>
+ <section id="programmer">
+ <title>Programmer's Note</title>
+
+ <p>In order to implement the handler features, an addition has
+ been made to the <a href="developer/API.html">Apache API</a> that
+ you may wish to make use of. Specifically, a new record has
+ been added to the <code>request_rec</code> structure:</p>
+<pre>
+ char *handler
+</pre>
+
+ <p>If you wish to have your module engage a handler, you need
+ only to set <code>r-&gt;handler</code> to the name of the
+ handler at any time prior to the <code>invoke_handler</code>
+ stage of the request. Handlers are implemented as they were
+ before, albeit using the handler name instead of a content
+ type. While it is not necessary, the naming convention for
+ handlers is to use a dash-separated word, with no slashes, so
+ as to not invade the media type name-space.</p>
+ </section>
+</manualpage>
+
+
+
+
+