</p>
<p>Some examples of filtering in the standard Apache distribution are:</p>
<ul>
-<li>mod_includes, implements server-side includes.</li>
-<li>mod_ssl, implements SSL encryption (https).</li>
-<li>mod_deflate, implements compression/decompression on the fly.</li>
-<li>mod_charset_lite, transcodes between different character sets.</li>
-<li>mod_ext_filter, runs an external program as a filter.</li>
+<li><module>mod_include</module>, implements server-side includes.</li>
+<li><module>mod_ssl</module>, implements SSL encryption (https).</li>
+<li><module>mod_deflate</module>, implements compression/decompression on the fly.</li>
+<li><module>mod_charset_lite</module>, transcodes between different character sets.</li>
+<li><module>mod_ext_filter</module>, runs an external program as a filter.</li>
</ul>
-<p>Apache also uses a number of filters internally, to perform
+<p>Apache also uses a number of filters internally to perform
functions like chunking and byte-range handling.</p>
-<p>A wider range of applications are implemented by third-party
-filter modules. A few of these are:</p>
+<p>A wider range of applications are implemented by third-party filter
+modules available from <a
+href="http://modules.apache.org/">modules.apache.org</a> and
+elsewhere. A few of these are:</p>
+
<ul>
<li>HTML and XML processing and rewriting</li>
<li>XSLT transforms and XIncludes</li>
<li>Text search-and-replace editing</li>
</ul>
</section>
+
<section id="smart">
<title>Smart Filtering</title>
<p class="figure">
<li>an HTML processing filter will only run if the content is
text/html or application/xhtml+xml</li>
<li>A compression filter will only run if the input is a
-compressable type and not already compressed</li>
+compressible type and not already compressed</li>
<li>A charset conversion filter will be inserted if a text
document is not already in the desired charset</li>
</ul>
<section id="using">
<title>Using Filters</title>
<p>There are two ways to use filtering: Simple and Dynamic.
-In general, you should use one or the other: mixing them can
+In general, you should use one or the other; mixing them can
have unexpected consequences (although simple Input filtering
-can be mixed freely with either simple or dynamic Output filtering!</p>
+can be mixed freely with either simple or dynamic Output filtering).</p>
<p>The Simple Way is the only way to configure input filters, and is
-suficient for output filters where you need a static filter chain.
+sufficient for output filters where you need a static filter chain.
Relevant directives are
<directive module="core">SetInputFilter</directive>,
<directive module="core">SetOutputFilter</directive>,
of output filters, as discussed in the <module>mod_filter</module> page.
Relevant directives are
<directive module="mod_filter">FilterChain</directive>,
- <directive module="mod_filter">FilterDeclare</directive>,
+ <directive module="mod_filter">FilterDeclare</directive>, and
<directive module="mod_filter">FilterProvider</directive>.</p>
-<p>One further directive AddOutputFilterByType is still supported,
-but may be problematic and is now deprecated. Use dynamic configuration
-instead.</p>
+
+<p>One further directive <directive
+module="core">AddOutputFilterByType</directive> is still supported,
+but may be problematic and is now deprecated. Use dynamic
+configuration instead.</p>
+
</section>
</manualpage>
<context>virtual host</context><context>directory</context>
<context>.htaccess</context></contextlist>
<override>FileInfo</override>
-<compatibility>Available in Apache 2.0.33 and later</compatibility>
+<compatibility>Available in Apache 2.0.33 and later; deprecated in Apache 2.1 and later</compatibility>
<usage>
<p>This directive activates a particular output <a
href="../filter.html">filter</a> for a request depending on the
- response <glossary>MIME-type</glossary>.</p>
+ response <glossary>MIME-type</glossary>. Because of certain
+ problems discussed below, this directive is deprecated. The same
+ functionality is available using <module>mod_filter</module>.</p>
<p>The following example uses the <code>DEFLATE</code> filter, which
is provided by <module>mod_deflate</module>. It will compress all
<usage>
<p>This directive selects the type of user authentication for a
- directory. Only <code>Basic</code> and <code>Digest</code> are
- currently implemented.
-
- It must be accompanied by <directive
- module="core">AuthName</directive> and <directive
- module="core">Require</directive> directives, and directives such
- as <directive module="mod_authn_file">AuthUserFile</directive> and
- <directive module="mod_authz_groupfile">AuthGroupFile</directive> to
- work.</p>
-</usage>
+ directory. The authentication types available are
+ <code>Basic</code> (implemented by
+ <module>mod_auth_basic</module>) and <code>Digest</code>
+ (implemented by <module>mod_auth_digest</module>).</p>
+
+ <p>To implement authentication, you must also use the <directive
+ module="core">AuthName</directive> and <directive
+ module="core">Require</directive> directives. In addition, the
+ server must have an authentication-provider module such as
+ <module>mod_authn_file</module> and an authorization module such
+ as <module>mod_authz_user</module>.</p>
+</usage>
+
<seealso><a href="../howto/auth.html">Authentication, Authorization,
-and Access Control</a></seealso>
+ and Access Control</a></seealso>
</directivesynopsis>
<directivesynopsis>
<override>AuthConfig</override>
<usage>
- <p>This directive selects which authenticated users can access
- a resource. The allowed syntaxes are:</p>
+ <p>This directive selects which authenticated users can access a
+ resource. The restrictions are processed by authorization
+ modules. Some of the allowed syntaxes provided by
+ <module>mod_authz_owner</module> and
+ <module>mod_authz_groupfile</module> are:</p>
<dl>
<dt><code>Require user <var>userid</var> [<var>userid</var>]
<dd>All valid users can access the resource.</dd>
</dl>
+ <p>Other authorization modules that implement require options
+ include <module>mod_authnz_ldap</module>,
+ <module>mod_authz_dbm</module>, and
+ <module>mod_authz_owner</module>.</p>
+
<p><directive>Require</directive> must be accompanied by
<directive module="core">AuthName</directive> and <directive
module="core">AuthType</directive> directives, and directives such
<directive module="core" type="section">Limit</directive>
section.</p>
</usage>
+
+<seealso><a href="../howto/auth.html">Authentication, Authorization,
+ and Access Control</a></seealso>
<seealso><directive module="core">Satisfy</directive></seealso>
<seealso><module>mod_authz_host</module></seealso>
</directivesynopsis>