]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
Rebuilds Daniel's change to the order of directictives vs topics in
authorRich Bowen <rbowen@apache.org>
Wed, 15 Apr 2015 16:35:10 +0000 (16:35 +0000)
committerRich Bowen <rbowen@apache.org>
Wed, 15 Apr 2015 16:35:10 +0000 (16:35 +0000)
manual docs

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@1673855 13f79535-47bb-0310-9956-ffa450edef68

292 files changed:
docs/manual/mod/core.html.de
docs/manual/mod/core.html.en
docs/manual/mod/core.html.es
docs/manual/mod/core.html.fr
docs/manual/mod/core.html.ja.utf8
docs/manual/mod/core.html.tr.utf8
docs/manual/mod/event.html.en
docs/manual/mod/event.html.fr
docs/manual/mod/mod_access_compat.html.en
docs/manual/mod/mod_access_compat.html.fr
docs/manual/mod/mod_access_compat.html.ja.utf8
docs/manual/mod/mod_actions.html.de
docs/manual/mod/mod_actions.html.en
docs/manual/mod/mod_actions.html.fr
docs/manual/mod/mod_actions.html.ja.utf8
docs/manual/mod/mod_actions.html.ko.euc-kr
docs/manual/mod/mod_alias.html.en
docs/manual/mod/mod_alias.html.fr
docs/manual/mod/mod_alias.html.ja.utf8
docs/manual/mod/mod_alias.html.ko.euc-kr
docs/manual/mod/mod_alias.html.tr.utf8
docs/manual/mod/mod_allowmethods.html.en
docs/manual/mod/mod_allowmethods.html.fr
docs/manual/mod/mod_auth_basic.html.en
docs/manual/mod/mod_auth_basic.html.fr
docs/manual/mod/mod_auth_basic.html.ja.utf8
docs/manual/mod/mod_auth_basic.html.ko.euc-kr
docs/manual/mod/mod_auth_digest.html.en
docs/manual/mod/mod_auth_digest.html.fr
docs/manual/mod/mod_auth_digest.html.ko.euc-kr
docs/manual/mod/mod_auth_form.html.en
docs/manual/mod/mod_auth_form.html.fr
docs/manual/mod/mod_authn_anon.html.en
docs/manual/mod/mod_authn_anon.html.fr
docs/manual/mod/mod_authn_anon.html.ja.utf8
docs/manual/mod/mod_authn_anon.html.ko.euc-kr
docs/manual/mod/mod_authn_core.html.en
docs/manual/mod/mod_authn_core.html.fr
docs/manual/mod/mod_authn_dbd.html.en
docs/manual/mod/mod_authn_dbd.html.fr
docs/manual/mod/mod_authn_dbm.html.en
docs/manual/mod/mod_authn_dbm.html.fr
docs/manual/mod/mod_authn_dbm.html.ja.utf8
docs/manual/mod/mod_authn_dbm.html.ko.euc-kr
docs/manual/mod/mod_authn_file.html.en
docs/manual/mod/mod_authn_file.html.fr
docs/manual/mod/mod_authn_file.html.ja.utf8
docs/manual/mod/mod_authn_file.html.ko.euc-kr
docs/manual/mod/mod_authn_socache.html.en
docs/manual/mod/mod_authn_socache.html.fr
docs/manual/mod/mod_authnz_fcgi.html.en
docs/manual/mod/mod_authnz_ldap.html.en
docs/manual/mod/mod_authnz_ldap.html.fr
docs/manual/mod/mod_authz_core.html.en
docs/manual/mod/mod_authz_core.html.fr
docs/manual/mod/mod_authz_dbd.html.en
docs/manual/mod/mod_authz_dbd.html.fr
docs/manual/mod/mod_authz_dbm.html.en
docs/manual/mod/mod_authz_dbm.html.fr
docs/manual/mod/mod_authz_dbm.html.ko.euc-kr
docs/manual/mod/mod_authz_groupfile.html.en
docs/manual/mod/mod_authz_groupfile.html.fr
docs/manual/mod/mod_authz_groupfile.html.ja.utf8
docs/manual/mod/mod_authz_groupfile.html.ko.euc-kr
docs/manual/mod/mod_autoindex.html.en
docs/manual/mod/mod_autoindex.html.fr
docs/manual/mod/mod_autoindex.html.ja.utf8
docs/manual/mod/mod_autoindex.html.ko.euc-kr
docs/manual/mod/mod_autoindex.html.tr.utf8
docs/manual/mod/mod_buffer.html.en
docs/manual/mod/mod_buffer.html.fr
docs/manual/mod/mod_cache.html.en
docs/manual/mod/mod_cache.html.fr
docs/manual/mod/mod_cache.html.ja.utf8
docs/manual/mod/mod_cache.html.ko.euc-kr
docs/manual/mod/mod_cache_disk.html.en
docs/manual/mod/mod_cache_disk.html.fr
docs/manual/mod/mod_cache_disk.html.ja.utf8
docs/manual/mod/mod_cache_disk.html.ko.euc-kr
docs/manual/mod/mod_cache_socache.html.en
docs/manual/mod/mod_cache_socache.html.fr
docs/manual/mod/mod_cern_meta.html.en
docs/manual/mod/mod_cern_meta.html.fr
docs/manual/mod/mod_cern_meta.html.ko.euc-kr
docs/manual/mod/mod_cgi.html.en
docs/manual/mod/mod_cgi.html.fr
docs/manual/mod/mod_cgi.html.ja.utf8
docs/manual/mod/mod_cgi.html.ko.euc-kr
docs/manual/mod/mod_cgid.html.en
docs/manual/mod/mod_cgid.html.fr
docs/manual/mod/mod_cgid.html.ja.utf8
docs/manual/mod/mod_cgid.html.ko.euc-kr
docs/manual/mod/mod_charset_lite.html.en
docs/manual/mod/mod_charset_lite.html.fr
docs/manual/mod/mod_charset_lite.html.ko.euc-kr
docs/manual/mod/mod_dav.html.en
docs/manual/mod/mod_dav.html.fr
docs/manual/mod/mod_dav.html.ja.utf8
docs/manual/mod/mod_dav.html.ko.euc-kr
docs/manual/mod/mod_dav_fs.html.en
docs/manual/mod/mod_dav_fs.html.fr
docs/manual/mod/mod_dav_fs.html.ja.utf8
docs/manual/mod/mod_dav_fs.html.ko.euc-kr
docs/manual/mod/mod_dav_lock.html.en
docs/manual/mod/mod_dav_lock.html.fr
docs/manual/mod/mod_dav_lock.html.ja.utf8
docs/manual/mod/mod_dbd.html.en
docs/manual/mod/mod_dbd.html.fr
docs/manual/mod/mod_deflate.html.en
docs/manual/mod/mod_deflate.html.fr
docs/manual/mod/mod_deflate.html.ja.utf8
docs/manual/mod/mod_deflate.html.ko.euc-kr
docs/manual/mod/mod_dialup.html.en
docs/manual/mod/mod_dialup.html.fr
docs/manual/mod/mod_dir.html.en
docs/manual/mod/mod_dir.html.fr
docs/manual/mod/mod_dir.html.ja.utf8
docs/manual/mod/mod_dir.html.ko.euc-kr
docs/manual/mod/mod_dir.html.tr.utf8
docs/manual/mod/mod_dumpio.html.en
docs/manual/mod/mod_dumpio.html.fr
docs/manual/mod/mod_dumpio.html.ja.utf8
docs/manual/mod/mod_echo.html.en
docs/manual/mod/mod_echo.html.fr
docs/manual/mod/mod_echo.html.ja.utf8
docs/manual/mod/mod_echo.html.ko.euc-kr
docs/manual/mod/mod_env.html.en
docs/manual/mod/mod_env.html.fr
docs/manual/mod/mod_env.html.ja.utf8
docs/manual/mod/mod_env.html.ko.euc-kr
docs/manual/mod/mod_env.html.tr.utf8
docs/manual/mod/mod_example_hooks.html.en
docs/manual/mod/mod_example_hooks.html.fr
docs/manual/mod/mod_example_hooks.html.ko.euc-kr
docs/manual/mod/mod_expires.html.en
docs/manual/mod/mod_expires.html.fr
docs/manual/mod/mod_expires.html.ja.utf8
docs/manual/mod/mod_expires.html.ko.euc-kr
docs/manual/mod/mod_ext_filter.html.en
docs/manual/mod/mod_ext_filter.html.fr
docs/manual/mod/mod_ext_filter.html.ja.utf8
docs/manual/mod/mod_ext_filter.html.ko.euc-kr
docs/manual/mod/mod_file_cache.html.en
docs/manual/mod/mod_file_cache.html.fr
docs/manual/mod/mod_file_cache.html.ko.euc-kr
docs/manual/mod/mod_filter.html.en
docs/manual/mod/mod_filter.html.fr
docs/manual/mod/mod_headers.html.en
docs/manual/mod/mod_headers.html.fr
docs/manual/mod/mod_headers.html.ja.utf8
docs/manual/mod/mod_headers.html.ko.euc-kr
docs/manual/mod/mod_heartbeat.html.en
docs/manual/mod/mod_heartbeat.html.fr
docs/manual/mod/mod_heartmonitor.html.en
docs/manual/mod/mod_heartmonitor.html.fr
docs/manual/mod/mod_ident.html.en
docs/manual/mod/mod_ident.html.fr
docs/manual/mod/mod_ident.html.ja.utf8
docs/manual/mod/mod_ident.html.ko.euc-kr
docs/manual/mod/mod_imagemap.html.en
docs/manual/mod/mod_imagemap.html.fr
docs/manual/mod/mod_imagemap.html.ko.euc-kr
docs/manual/mod/mod_include.html.en
docs/manual/mod/mod_include.html.fr
docs/manual/mod/mod_include.html.ja.utf8
docs/manual/mod/mod_info.html.en
docs/manual/mod/mod_info.html.fr
docs/manual/mod/mod_info.html.ja.utf8
docs/manual/mod/mod_info.html.ko.euc-kr
docs/manual/mod/mod_isapi.html.en
docs/manual/mod/mod_isapi.html.fr
docs/manual/mod/mod_isapi.html.ko.euc-kr
docs/manual/mod/mod_lbmethod_heartbeat.html.en
docs/manual/mod/mod_lbmethod_heartbeat.html.fr
docs/manual/mod/mod_ldap.html.en
docs/manual/mod/mod_ldap.html.fr
docs/manual/mod/mod_log_config.html.en
docs/manual/mod/mod_log_config.html.fr
docs/manual/mod/mod_log_config.html.ja.utf8
docs/manual/mod/mod_log_config.html.ko.euc-kr
docs/manual/mod/mod_log_config.html.tr.utf8
docs/manual/mod/mod_log_debug.html.en
docs/manual/mod/mod_log_debug.html.fr
docs/manual/mod/mod_log_forensic.html.en
docs/manual/mod/mod_log_forensic.html.fr
docs/manual/mod/mod_log_forensic.html.ja.utf8
docs/manual/mod/mod_log_forensic.html.tr.utf8
docs/manual/mod/mod_lua.html.en
docs/manual/mod/mod_lua.html.fr
docs/manual/mod/mod_macro.html.en
docs/manual/mod/mod_macro.html.fr
docs/manual/mod/mod_mime.html.en
docs/manual/mod/mod_mime.html.fr
docs/manual/mod/mod_mime.html.ja.utf8
docs/manual/mod/mod_mime_magic.html.en
docs/manual/mod/mod_mime_magic.html.fr
docs/manual/mod/mod_negotiation.html.en
docs/manual/mod/mod_negotiation.html.fr
docs/manual/mod/mod_negotiation.html.ja.utf8
docs/manual/mod/mod_nw_ssl.html.en
docs/manual/mod/mod_nw_ssl.html.fr
docs/manual/mod/mod_privileges.html.en
docs/manual/mod/mod_privileges.html.fr
docs/manual/mod/mod_proxy.html.en
docs/manual/mod/mod_proxy.html.fr
docs/manual/mod/mod_proxy.html.ja.utf8
docs/manual/mod/mod_proxy_connect.html.en
docs/manual/mod/mod_proxy_connect.html.fr
docs/manual/mod/mod_proxy_connect.html.ja.utf8
docs/manual/mod/mod_proxy_express.html.en
docs/manual/mod/mod_proxy_express.html.fr
docs/manual/mod/mod_proxy_ftp.html.en
docs/manual/mod/mod_proxy_ftp.html.fr
docs/manual/mod/mod_proxy_html.html.en
docs/manual/mod/mod_proxy_html.html.fr
docs/manual/mod/mod_proxy_scgi.html.en
docs/manual/mod/mod_proxy_scgi.html.fr
docs/manual/mod/mod_reflector.html.en
docs/manual/mod/mod_reflector.html.fr
docs/manual/mod/mod_remoteip.html.en
docs/manual/mod/mod_remoteip.html.fr
docs/manual/mod/mod_reqtimeout.html.en
docs/manual/mod/mod_reqtimeout.html.fr
docs/manual/mod/mod_request.html.en
docs/manual/mod/mod_request.html.fr
docs/manual/mod/mod_request.html.tr.utf8
docs/manual/mod/mod_rewrite.html.en
docs/manual/mod/mod_rewrite.html.fr
docs/manual/mod/mod_sed.html.en
docs/manual/mod/mod_sed.html.fr
docs/manual/mod/mod_session.html.en
docs/manual/mod/mod_session.html.fr
docs/manual/mod/mod_session_cookie.html.en
docs/manual/mod/mod_session_cookie.html.fr
docs/manual/mod/mod_session_crypto.html.en
docs/manual/mod/mod_session_crypto.html.fr
docs/manual/mod/mod_session_dbd.html.en
docs/manual/mod/mod_session_dbd.html.fr
docs/manual/mod/mod_setenvif.html.en
docs/manual/mod/mod_setenvif.html.fr
docs/manual/mod/mod_setenvif.html.ja.utf8
docs/manual/mod/mod_setenvif.html.ko.euc-kr
docs/manual/mod/mod_setenvif.html.tr.utf8
docs/manual/mod/mod_so.html.en
docs/manual/mod/mod_so.html.fr
docs/manual/mod/mod_so.html.ja.utf8
docs/manual/mod/mod_so.html.ko.euc-kr
docs/manual/mod/mod_so.html.tr.utf8
docs/manual/mod/mod_speling.html.en
docs/manual/mod/mod_speling.html.fr
docs/manual/mod/mod_speling.html.ja.utf8
docs/manual/mod/mod_speling.html.ko.euc-kr
docs/manual/mod/mod_ssl.html.en
docs/manual/mod/mod_ssl.html.fr
docs/manual/mod/mod_substitute.html.en
docs/manual/mod/mod_substitute.html.fr
docs/manual/mod/mod_suexec.html.en
docs/manual/mod/mod_suexec.html.fr
docs/manual/mod/mod_suexec.html.ja.utf8
docs/manual/mod/mod_suexec.html.ko.euc-kr
docs/manual/mod/mod_suexec.html.tr.utf8
docs/manual/mod/mod_unixd.html.en
docs/manual/mod/mod_unixd.html.fr
docs/manual/mod/mod_unixd.html.tr.utf8
docs/manual/mod/mod_userdir.html.en
docs/manual/mod/mod_userdir.html.fr
docs/manual/mod/mod_userdir.html.ja.utf8
docs/manual/mod/mod_userdir.html.ko.euc-kr
docs/manual/mod/mod_userdir.html.tr.utf8
docs/manual/mod/mod_usertrack.html.en
docs/manual/mod/mod_usertrack.html.fr
docs/manual/mod/mod_version.html.en
docs/manual/mod/mod_version.html.ja.utf8
docs/manual/mod/mod_version.html.ko.euc-kr
docs/manual/mod/mod_vhost_alias.html.en
docs/manual/mod/mod_vhost_alias.html.fr
docs/manual/mod/mod_vhost_alias.html.tr.utf8
docs/manual/mod/mod_watchdog.html.en
docs/manual/mod/mod_xml2enc.html.en
docs/manual/mod/mod_xml2enc.html.fr
docs/manual/mod/mpm_common.html.de
docs/manual/mod/mpm_common.html.en
docs/manual/mod/mpm_common.html.fr
docs/manual/mod/mpm_common.html.ja.utf8
docs/manual/mod/mpm_common.html.tr.utf8
docs/manual/mod/mpm_netware.html.en
docs/manual/mod/mpm_netware.html.fr
docs/manual/mod/prefork.html.de
docs/manual/mod/prefork.html.en
docs/manual/mod/prefork.html.fr
docs/manual/mod/prefork.html.ja.utf8
docs/manual/mod/prefork.html.tr.utf8

index 3c11383ebd369aa3ec4df60d9536645c325ea424..84e65068c7b14dc26b02855eace168af963c7185 100644 (file)
@@ -120,7 +120,6 @@ Servers</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a>-<a name="acceptfilter" id="acceptfilter">Direktive</a></h2>
 <table class="directive">
@@ -3602,6 +3601,7 @@ IP-Adressen angewendet werden</td></tr>
     kombiniert werden, wenn eine Anfrage empfangen wird</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/core.html" title="Deutsch">&nbsp;de&nbsp;</a> |
index 3ceaa2a7f8c5fc12a72f93d3afab408722c3ac33..0b70b04729cf1395ed1a33742c088ae93d556f98 100644 (file)
@@ -117,7 +117,6 @@ available</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directive</a></h2>
 <table class="directive">
@@ -4488,6 +4487,7 @@ hostname or IP address</td></tr>
     different sections are combined when a request is received</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 263fb40c8a04832363690f1860abf00cfe233d99..c21c6ae5a1e8a3b7e18ab4c92efe251356d9d23f 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comentarios</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Directiva</a></h2>
 <table class="directive">
@@ -4299,6 +4298,7 @@ hostname or IP address</td></tr>
     different sections are combined when a request is received</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Idiomas disponibles: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 73dd6f3de8a01bf65e039c38621c7e8c15397236..ec62f5950f4a16efb8d7b2cb3c5ebfc326fe6a3f 100644 (file)
@@ -119,7 +119,6 @@ disponibles</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="acceptfilter" id="acceptfilter">Directive</a> <a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a></h2>
 <table class="directive">
@@ -4799,6 +4798,7 @@ explication de la mani
 entre elles à la réception d'une requête</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 20ea278f8e752c7538572a014dd200a58addcbb0..5f71de6689728dabe93fe7bdfa5debd5f8a124a5 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">ディレクティブ</a></h2>
 <table class="directive">
@@ -3517,6 +3516,7 @@ of a request or the last 63, assuming the request itself is greater than
     &lt;Directory&gt;, &lt;Location&gt;, &lt;Files&gt; セクションの動作法</a></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 9a2765d7dd9d2b74011710b0f30245ee8598ef8e..541888f2addca5009a42d06048e35df488b15394 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualhost">&lt;VirtualHost&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AcceptFilter" id="AcceptFilter">AcceptFilter</a> <a name="acceptfilter" id="acceptfilter">Yönergesi</a></h2>
 <table class="directive">
@@ -4420,6 +4419,7 @@ gerçekleşmesi için sunucunun geçmesini bekleyeceği süre.</td></tr>
   çalışır?</a> belgesine bakınız.</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../de/mod/core.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index fcc6e95ec7e2616ada68dc90de963f63b2b88d24..6f25612acb778b2722b66d30e99c4e53c5e3b76a 100644 (file)
@@ -80,6 +80,58 @@ of consuming threads only for connections with active processing</td></tr>
 <li><a href="worker.html">The worker MPM</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a> <a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limit concurrent connections per process</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AsyncRequestWorkerFactor <var>factor</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>2</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later</td></tr>
+</table>
+    <p>The event MPM handles some connections in an asynchronous way, where
+    request worker threads are only allocated for short periods of time as
+    needed, and other connections with one request worker thread reserved per
+    connection. This can lead to situations where all workers are tied up and
+    no worker thread is available to handle new work on established async
+    connections.</p>
+
+    <p>To mitigate this problem, the event MPM does two things: Firstly, it
+    limits the number of connections accepted per process, depending on the
+    number of idle request workers. Secondly, if all workers are busy, it will
+    close connections in keep-alive state even if the keep-alive timeout has
+    not expired. This allows the respective clients to reconnect to a
+    different process which may still have worker threads available.</p>
+
+    <p>This directive can be used to fine-tune the per-process connection
+    limit. A process will only accept new connections if the current number of
+    connections (not counting connections in the "closing" state) is lower
+    than:</p>
+
+    <p class="indent"><strong>
+        <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
+        (<code class="directive">AsyncRequestWorkerFactor</code> *
+        <var>number of idle workers</var>)
+    </strong></p>
+
+    <p>This means the absolute maximum numbers of concurrent connections is:</p>
+
+    <p class="indent"><strong>
+        (<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
+        <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
+    </strong></p>
+
+    <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> was called
+    <code class="directive">MaxClients</code> prior to version 2.3.13. The above value
+    shows that the old name did not accurately describe its meaning for the event MPM.</p>
+
+    <p><code class="directive">AsyncRequestWorkerFactor</code> can take non-integer
+    arguments, e.g "1.5".</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="how-it-works" id="how-it-works">How it Works</a></h2>
     <p>This MPM tries to fix the 'keep alive problem' in HTTP. After a client
@@ -145,58 +197,6 @@ of consuming threads only for connections with active processing</td></tr>
       with support for EPoll.</li>
 
     </ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a> <a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limit concurrent connections per process</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AsyncRequestWorkerFactor <var>factor</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>2</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>MPM</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later</td></tr>
-</table>
-    <p>The event MPM handles some connections in an asynchronous way, where
-    request worker threads are only allocated for short periods of time as
-    needed, and other connections with one request worker thread reserved per
-    connection. This can lead to situations where all workers are tied up and
-    no worker thread is available to handle new work on established async
-    connections.</p>
-
-    <p>To mitigate this problem, the event MPM does two things: Firstly, it
-    limits the number of connections accepted per process, depending on the
-    number of idle request workers. Secondly, if all workers are busy, it will
-    close connections in keep-alive state even if the keep-alive timeout has
-    not expired. This allows the respective clients to reconnect to a
-    different process which may still have worker threads available.</p>
-
-    <p>This directive can be used to fine-tune the per-process connection
-    limit. A process will only accept new connections if the current number of
-    connections (not counting connections in the "closing" state) is lower
-    than:</p>
-
-    <p class="indent"><strong>
-        <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
-        (<code class="directive">AsyncRequestWorkerFactor</code> *
-        <var>number of idle workers</var>)
-    </strong></p>
-
-    <p>This means the absolute maximum numbers of concurrent connections is:</p>
-
-    <p class="indent"><strong>
-        (<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
-        <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
-    </strong></p>
-
-    <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> was called
-    <code class="directive">MaxClients</code> prior to version 2.3.13. The above value
-    shows that the old name did not accurately describe its meaning for the event MPM.</p>
-
-    <p><code class="directive">AsyncRequestWorkerFactor</code> can take non-integer
-    arguments, e.g "1.5".</p>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 87d19b8b3dbedd1b36c255fd774b3ee47fb0a1be..3fae687135f9959aa1bfcd80dfd172b8b46c5849 100644 (file)
@@ -82,6 +82,64 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr>
 <li><a href="worker.html">Le MPM worker</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a> <a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de connexions simultanées par thread</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AsyncRequestWorkerFactor <var>facteur</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>2</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.13</td></tr>
+</table>
+    <p>Le MPM event gère certaines connexions de manière asynchrone ;
+    dans ce cas, les threads traitant la requête sont alloués selon les
+    besoins et pour de courtes périodes. Dans les autres cas, un
+    thread est réservé par
+    connexion. Ceci peut conduire à des situations où tous les threads
+    sont saturés et où aucun thread n'est capable d'effectuer de
+    nouvelles tâches pour les connexions asynchrones établies.</p>
+
+    <p>Pour minimiser les effets de ce problème, le MPM event utilise
+    deux méthodes : tout d'abord, il limite le nombre de connexions
+    simultanées par thread en fonction du nombre de processus
+    inactifs. Ensuite, si tous les processus sont occupés, il ferme des
+    connexions permanentes, même si la limite de durée de la connexion
+    n'a pas été atteinte. Ceci autorise les clients concernés à se
+    reconnecter à un autre processus possèdant encore des threads
+    disponibles.</p>
+
+    <p>Cette directive permet de personnaliser finement la limite du
+    nombre de connexions par thread. Un processus n'acceptera de
+    nouvelles connexions que si le nombre actuel de connexions (sans
+    compter les connexions à l'état "closing") est
+    inférieur à :</p>
+
+    <p class="indent"><strong>
+        <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
+        (<code class="directive">AsyncRequestWorkerFactor</code> *
+        <var>nombre de threads inactifs</var>)
+    </strong></p>
+
+    <p>En d'autres termes, le nombre maximum de connexions simultanées
+    sera :</p>
+
+    <p class="indent"><strong>
+        (<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
+        <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
+    </strong></p>
+
+    <p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> se nommait
+    <code class="directive">MaxClients</code> avant la version 2.3.13. La valeur
+    ci-dessus montre que cet ancien nom ne correspondait pas à sa
+    signification exacte pour le MPM event.</p>
+
+    <p>La directive <code class="directive">AsyncRequestWorkerFactor</code>
+    accepte des valeurs d'argument de type non entier, comme "1.5".</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="how-it-works" id="how-it-works">Comment tout cela fonctionne</a></h2>
     <p>Ce MPM essaie de résoudre le 'problème keep alive' de HTTP.
@@ -159,64 +217,6 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr>
       avec le support pour EPoll.</li>
 
     </ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="asyncrequestworkerfactor" id="asyncrequestworkerfactor">Directive</a> <a name="AsyncRequestWorkerFactor" id="AsyncRequestWorkerFactor">AsyncRequestWorkerFactor</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Limite le nombre de connexions simultanées par thread</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AsyncRequestWorkerFactor <var>facteur</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>2</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>MPM</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>event</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.13</td></tr>
-</table>
-    <p>Le MPM event gère certaines connexions de manière asynchrone ;
-    dans ce cas, les threads traitant la requête sont alloués selon les
-    besoins et pour de courtes périodes. Dans les autres cas, un
-    thread est réservé par
-    connexion. Ceci peut conduire à des situations où tous les threads
-    sont saturés et où aucun thread n'est capable d'effectuer de
-    nouvelles tâches pour les connexions asynchrones établies.</p>
-
-    <p>Pour minimiser les effets de ce problème, le MPM event utilise
-    deux méthodes : tout d'abord, il limite le nombre de connexions
-    simultanées par thread en fonction du nombre de processus
-    inactifs. Ensuite, si tous les processus sont occupés, il ferme des
-    connexions permanentes, même si la limite de durée de la connexion
-    n'a pas été atteinte. Ceci autorise les clients concernés à se
-    reconnecter à un autre processus possèdant encore des threads
-    disponibles.</p>
-
-    <p>Cette directive permet de personnaliser finement la limite du
-    nombre de connexions par thread. Un processus n'acceptera de
-    nouvelles connexions que si le nombre actuel de connexions (sans
-    compter les connexions à l'état "closing") est
-    inférieur à :</p>
-
-    <p class="indent"><strong>
-        <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> +
-        (<code class="directive">AsyncRequestWorkerFactor</code> *
-        <var>nombre de threads inactifs</var>)
-    </strong></p>
-
-    <p>En d'autres termes, le nombre maximum de connexions simultanées
-    sera :</p>
-
-    <p class="indent"><strong>
-        (<code class="directive">AsyncRequestWorkerFactor</code> + 1) *
-        <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>
-    </strong></p>
-
-    <p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> se nommait
-    <code class="directive">MaxClients</code> avant la version 2.3.13. La valeur
-    ci-dessus montre que cet ancien nom ne correspondait pas à sa
-    signification exacte pour le MPM event.</p>
-
-    <p>La directive <code class="directive">AsyncRequestWorkerFactor</code>
-    accepte des valeurs d'argument de type non entier, comme "1.5".</p>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 3edb3606784501d89aa2a9f409c3c4340c897cd6..405b2dcbdd7b9e4860d548910d8b363345bf9333 100644 (file)
@@ -91,7 +91,6 @@ have been deprecated by the new authz refactoring.  Please see
 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
 <li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">Directive</a></h2>
 <table class="directive">
@@ -459,6 +458,7 @@ Satisfy Any</pre>
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_access_compat.html" title="English">&nbsp;en&nbsp;</a> |
index fb3d157dcfbeaa1bfd769ad986d8882b16c91d61..e4918ba6eff07644ae18326e60910dd9c021e51f 100644 (file)
@@ -98,7 +98,6 @@ ce module sont devenues obsol
 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
 <li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="allow" id="allow">Directive</a> <a name="Allow" id="Allow">Allow</a></h2>
 <table class="directive">
@@ -485,6 +484,7 @@ Satisfy Any</pre>
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 0580643e5f58ca3ccdf60c3be4b2dea8b3c86b14..199fc9b9d70e66fa9037f91bc109dce11f53e378 100644 (file)
@@ -92,7 +92,6 @@
 <li><code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code></li>
 <li><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Allow" id="Allow">Allow</a> <a name="allow" id="allow">ディレクティブ</a></h2>
 <table class="directive">
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_access_compat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index af045803989124b98bd6a73a1874f1b7c6d08c81..29a15933d538adcd322577b7c181a4876086078c 100644 (file)
@@ -57,7 +57,6 @@
 <li><a href="../howto/cgi.html">Dynamische Inhalte mit CGI</a></li>
 <li><a href="../handler.html">Die Verwendung von Handlern</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Action" id="Action">Action</a>-<a name="action" id="action">Direktive</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/mod_actions.html" title="Deutsch">&nbsp;de&nbsp;</a> |
index d0011b8dc3d285060117ea133c0bc84eb61a6f56..2479c58131595673c8ad80df285647673fe1c4ea 100644 (file)
@@ -53,7 +53,6 @@
 <li><a href="../howto/cgi.html">Dynamic Content with CGI</a></li>
 <li><a href="../handler.html">Apache httpd's Handler Use</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">Directive</a></h2>
 <table class="directive">
@@ -150,6 +149,7 @@ Script PUT "/~bob/put.cgi"</pre>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 3387e84cb35d381747893de1247c621f02162669..8f5ce646797b9dda7d39743ec31cc8e09a29c482 100644 (file)
@@ -58,7 +58,6 @@ type de m
 <li><a href="../handler.html">Utilisation des gestionnaires
 d'Apache httpd</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="action" id="action">Directive</a> <a name="Action" id="Action">Action</a></h2>
 <table class="directive">
@@ -162,6 +161,7 @@ Script PUT /~bob/put.cgi</pre>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 6c745bb9a606fdffd538524575c669aa2240bfc7..7c1ca3e2dd453a3bf5187c78b3e0b7df48612011 100644 (file)
@@ -59,7 +59,6 @@ CGI スクリプトを実行する機能を提供</td></tr>
 <li><a href="../howto/cgi.html">CGI による動的コンテンツ</a></li>
 <li><a href="../handler.html">Apache のハンドラの使用</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">ディレクティブ</a></h2>
 <table class="directive">
@@ -169,6 +168,7 @@ Apache 2.1 で導入されました</td></tr>
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 8323694f37d8aaf0f77a36b026270298959b322a..98b0229a512f1a884ef577ebc723c97188e30384 100644 (file)
@@ -56,7 +56,6 @@
 <li><a href="../howto/cgi.html">CGI·Î µ¿Àû ÆäÀÌÁö »ý¼º</a></li>
 <li><a href="../handler.html">¾ÆÆÄÄ¡¿¡¼­ Çڵ鷯 »ç¿ë</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Action" id="Action">Action</a> <a name="action" id="action">Áö½Ã¾î</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../de/mod/mod_actions.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index c4f84f68223e567a3aaf0d82131dbc97126997cc..b61188651977fb524fcd208a363547edce0f5612 100644 (file)
 <li><a href="../urlmapping.html">Mapping URLs to the filesystem</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">Order of Processing</a></h2>
-
-    <p>Aliases and Redirects occurring in different contexts are processed
-    like other directives according to standard <a href="../sections.html#mergin">merging rules</a>.  But when multiple
-    Aliases or Redirects occur in the same context (for example, in the
-    same <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
-    section) they are processed in a particular order.</p>
-
-    <p>First, all Redirects are processed before Aliases are processed,
-    and therefore a request that matches a <code class="directive"><a href="#redirect">Redirect</a></code> or <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> will never have Aliases
-    applied.  Second, the Aliases and Redirects are processed in the order
-    they appear in the configuration files, with the first match taking
-    precedence.</p>
-
-    <p>For this reason, when two or more of these directives apply to the
-    same sub-path, you must list the most specific path first in order for
-    all the directives to have an effect.  For example, the following
-    configuration will work as expected:</p>
-
-    <pre class="prettyprint lang-config">Alias "/foo/bar" "/baz"
-Alias "/foo" "/gaq"</pre>
-
-
-    <p>But if the above two directives were reversed in order, the
-    <code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>
-    would always match before the <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code>, so the latter directive would be
-    ignored.</p>
-
-    <p>When the <code class="directive"><a href="#alias">Alias</a></code>,
-    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
-    <code class="directive"><a href="#redirect">Redirect</a></code> directives are used
-    within a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
-    or <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
-    section, these directives will take precedence over any globally
-    defined <code class="directive"><a href="#alias">Alias</a></code>,
-    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
-    <code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps URLs to filesystem locations</td></tr>
@@ -597,6 +556,47 @@ and designates the target as a CGI script</td></tr>
     details.</p>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">Order of Processing</a></h2>
+
+    <p>Aliases and Redirects occurring in different contexts are processed
+    like other directives according to standard <a href="../sections.html#mergin">merging rules</a>.  But when multiple
+    Aliases or Redirects occur in the same context (for example, in the
+    same <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>
+    section) they are processed in a particular order.</p>
+
+    <p>First, all Redirects are processed before Aliases are processed,
+    and therefore a request that matches a <code class="directive"><a href="#redirect">Redirect</a></code> or <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> will never have Aliases
+    applied.  Second, the Aliases and Redirects are processed in the order
+    they appear in the configuration files, with the first match taking
+    precedence.</p>
+
+    <p>For this reason, when two or more of these directives apply to the
+    same sub-path, you must list the most specific path first in order for
+    all the directives to have an effect.  For example, the following
+    configuration will work as expected:</p>
+
+    <pre class="prettyprint lang-config">Alias "/foo/bar" "/baz"
+Alias "/foo" "/gaq"</pre>
+
+
+    <p>But if the above two directives were reversed in order, the
+    <code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>
+    would always match before the <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code>, so the latter directive would be
+    ignored.</p>
+
+    <p>When the <code class="directive"><a href="#alias">Alias</a></code>,
+    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
+    <code class="directive"><a href="#redirect">Redirect</a></code> directives are used
+    within a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>
+    or <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
+    section, these directives will take precedence over any globally
+    defined <code class="directive"><a href="#alias">Alias</a></code>,
+    <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> and
+    <code class="directive"><a href="#redirect">Redirect</a></code> directives.</p>
+
 </div>
 </div>
 <div class="bottomlang">
index 3492c5c760eb097de56e6d1cfaa85cc411ea96eb..80bdd9f559080e8548804e4ed80684c8fd9b85f1 100644 (file)
@@ -89,46 +89,6 @@ redirection d'URL</td></tr>
 système de fichiers</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">Chronologie du traitement</a></h2>
-
-    <p>Les alias et redirections apparaissant dans différents contextes
-    sont traités comme les autres directives en respectant les <a href="../sections.html#mergin">règles de fusion</a> standards. Par
-    contre, ils sont traités selon une chronologie particulière
-    lorsqu'ils apparaissent dans le même contexte (par exemple, dans la
-    même section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>).</p>
-
-    <p>Premièrement, toutes les redirections sont traitées avant les
-    alias, et ainsi, une requête qui correspond à une directive
-    <code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais
-    appliquer d'alias. Deuxièmement, les alias et redirections sont
-    traités selon l'ordre dans lequel ils apparaissent dans le fichier
-    de configuration, seule la première correspondance étant prise en
-    compte.</p>
-
-    <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
-    même sous-répertoire, vous devez classer les chemins du plus précis
-    au moins précis afin que toutes les directives puissent
-    éventuellement s'appliquer, comme dans l'exemple suivant :</p>
-
-    <pre class="prettyprint lang-config">Alias /foo/bar /baz
-Alias /foo /gaq</pre>
-
-
-    <p>Si l'ordre des directives était inversé, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
-    <code>/foo</code> serait toujours appliquée avant la directive
-    <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
-    <code>/foo/bar</code>, et cette dernière serait toujours
-    ignorée.</p>
-
-    <p>La définition de directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> au sein de sections
-    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
-    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
-    l'emporte sur d'autres définitions éventuelles de ces mêmes
-    directives au niveau de la configuration générale du serveur.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="alias" id="alias">Directive</a> <a name="Alias" id="Alias">Alias</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance des URLs avec des chemins du système
@@ -606,6 +566,46 @@ comme un script CGI</td></tr>
     détails.</p>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">Chronologie du traitement</a></h2>
+
+    <p>Les alias et redirections apparaissant dans différents contextes
+    sont traités comme les autres directives en respectant les <a href="../sections.html#mergin">règles de fusion</a> standards. Par
+    contre, ils sont traités selon une chronologie particulière
+    lorsqu'ils apparaissent dans le même contexte (par exemple, dans la
+    même section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>).</p>
+
+    <p>Premièrement, toutes les redirections sont traitées avant les
+    alias, et ainsi, une requête qui correspond à une directive
+    <code class="directive"><a href="#redirect">Redirect</a></code> ou <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ne se verra jamais
+    appliquer d'alias. Deuxièmement, les alias et redirections sont
+    traités selon l'ordre dans lequel ils apparaissent dans le fichier
+    de configuration, seule la première correspondance étant prise en
+    compte.</p>
+
+    <p>Ainsi, lorsqu'une ou plusieurs de ces directives s'appliquent au
+    même sous-répertoire, vous devez classer les chemins du plus précis
+    au moins précis afin que toutes les directives puissent
+    éventuellement s'appliquer, comme dans l'exemple suivant :</p>
+
+    <pre class="prettyprint lang-config">Alias /foo/bar /baz
+Alias /foo /gaq</pre>
+
+
+    <p>Si l'ordre des directives était inversé, la directive <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
+    <code>/foo</code> serait toujours appliquée avant la directive
+    <code class="directive"><a href="#alias">Alias</a></code> ayant pour argument
+    <code>/foo/bar</code>, et cette dernière serait toujours
+    ignorée.</p>
+
+    <p>La définition de directives <code class="directive"><a href="#alias">Alias</a></code>, <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ou <code class="directive"><a href="#redirect">Redirect</a></code> au sein de sections
+    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
+    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>
+    l'emporte sur d'autres définitions éventuelles de ces mêmes
+    directives au niveau de la configuration générale du serveur.</p>
+
 </div>
 </div>
 <div class="bottomlang">
index 161056b96873d33ce1167759ba04637436e2aa35..4d1ce9312c481cf3fd92e141e418c543cbbcb4ce 100644 (file)
 <li><a href="../urlmapping.html">URL からファイルシステム上の位置へのマッピング</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">処理の順番</a></h2>
-
-<p>様々なコンテキスト中での Alias や Redirect は他のディレクティブと
-同じように標準の <a href="../sections.html#mergin">マージ規則</a> に
-従って処理されます。ただし、(例えば <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> セクションの中のように) 複数の Alias や Redirect が
-同じコンテキスト中に現れた場合は決まった順番で処理されます。</p>
-
-<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<code class="directive"><a href="#redirect">Redirect</a></code> か <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> にマッチするリクエストには
-Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の
-順番に適用され、最初にマッチしたものが優先されます。</p>
-
-<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、
-すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く
-必要があります。例えば、次の設定は期待通りの動作をします:</p>
-
-<div class="example"><p><code>
-Alias /foo/bar /baz<br />
-Alias /foo /gaq
-</code></p></div>
-
-<p>しかし、上記の二つのディレクティブの順番が逆になると、
-<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code> が
-常に <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code> より先にマッチしますので、後者は
-決して適用されることはありません。</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>URL をファイルシステムの位置にマップする</td></tr>
@@ -382,6 +354,34 @@ CGI スクリプトに指定</td></tr>
       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
     </code></p></div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">処理の順番</a></h2>
+
+<p>様々なコンテキスト中での Alias や Redirect は他のディレクティブと
+同じように標準の <a href="../sections.html#mergin">マージ規則</a> に
+従って処理されます。ただし、(例えば <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> セクションの中のように) 複数の Alias や Redirect が
+同じコンテキスト中に現れた場合は決まった順番で処理されます。</p>
+
+<p>まず、Alias の前にすべての Redirect が処理されます。ですから、<code class="directive"><a href="#redirect">Redirect</a></code> か <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> にマッチするリクエストには
+Alias は決して適用されません。次に、Alias と Redirect が設定ファイル中の
+順番に適用され、最初にマッチしたものが優先されます。</p>
+
+<p>ですから、二つ以上のディレクティブが同じパスに適用されるときは、
+すべてのディレクティブの効果を得るためにはより詳しいパスを先に書く
+必要があります。例えば、次の設定は期待通りの動作をします:</p>
+
+<div class="example"><p><code>
+Alias /foo/bar /baz<br />
+Alias /foo /gaq
+</code></p></div>
+
+<p>しかし、上記の二つのディレクティブの順番が逆になると、
+<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code> が
+常に <code>/foo/bar</code> <code class="directive"><a href="#alias">Alias</a></code> より先にマッチしますので、後者は
+決して適用されることはありません。</p>
+
 </div>
 </div>
 <div class="bottomlang">
index 26bde588b5a47e5922615d3d92435d8313420080..e917b92922ef01e89cd60a5e52909c4685c7687a 100644 (file)
 <li><a href="../urlmapping.html">URLÀ» ÆÄÀϽýºÅÛ¿¡ ´ëÀÀ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">󸮠¼ø¼­</a></h2>
-
-<p>¼­·Î ´Ù¸¥ »ç¿ëÀå¼Ò¿¡¼­ Alias¿Í Redirect¸¦ »ç¿ëÇϸ頴ٸ¥ Áö½Ã¾î¿Í
-°°À̠ǥÁØ <a href="../sections.html#mergin">°áÇÕ ¹æ¹ý</a>¿¡
-µû¶ó Ã³¸®ÇÑ´Ù. ±×·¯³ª °°Àº »ç¿ëÀå¼Ò¿¡ (¿¹¸¦ µé¾î, °°Àº <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> ¼½¼Ç¿¡)
-Alias¿Í Redirect¸¦ »ç¿ëÇϸ頾Ʒ¡ ¼ø¼­´ë·Î Ã³¸®ÇÑ´Ù.</p>
-
-<p>¸ÕÀú ¸ðµç Redirect¸¦ Ã³¸®ÇÑ ÈÄ Alias¸¦ Ã³¸®ÇÑ´Ù. ±×·¡¼­
-<code class="directive"><a href="#redirect">Redirect</a></code>³ª <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>¿¡ ÇØ´çÇϴ ¿äûÀº
-Àý´ë·Î AliasÇÏÁö ¾Ê´Â´Ù. ±×¸®°í Alias¿Í Redirect´Â ¼³Á¤ÆÄÀÏ¿¡¼­
-ù¹øÂ°·Î ³ª¿À´Â °ÍÀ» »ç¿ëÇÑ´Ù.</p>
-
-<p>±×·¡¼­ ¿©·¯ Áö½Ã¾î°¡ µ¿ÀÏÇÑ ÇÏÀ§°æ·Î¿¡ ÇØ´çÇϴ °æ¿ì ¸ðµç
-Áö½Ã¾î¸¦ Àû¿ëÇϱâÀ§Çؼ­´Â °¡Àå »ó¼¼ÇÑ °æ·Î¸¦ ¸ÕÀú »ç¿ëÇØ¾ß ÇÑ´Ù.
-¿¹¸¦ µé¾î, ´ÙÀ½ ¼³Á¤Àº ÀǵµÇÑ´ë·Î µ¿ÀÛÇÑ´Ù:</p>
-
-<div class="example"><p><code>
-Alias /foo/bar /baz<br />
-Alias /foo /gaq
-</code></p></div>
-
-<p>±×·¯³ª À§ÀÇ µÎ Áö½Ã¾î ¼ø¼­¸¦ ¹Ù²Ù¸é <code>/foo/bar</code>
-<code class="directive"><a href="#alias">Alias</a></code> ÀÌÀü¿¡
-<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>¸¦
-Àû¿ëÇϹǷΠÇ×»ó µÎ¹øÂ° Áö½Ã¾î¸¦ ¹«½ÃÇÑ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>URLÀ» Æ¯Á¤ ÆÄÀϽýºÅÛ Àå¼Ò·Î ´ëÀÀÇÑ´Ù</td></tr>
@@ -349,6 +320,35 @@ Alias /foo /gaq
       ScriptAliasMatch ^/cgi-bin(.*) /usr/local/apache/cgi-bin$1
     </code></p></div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">󸮠¼ø¼­</a></h2>
+
+<p>¼­·Î ´Ù¸¥ »ç¿ëÀå¼Ò¿¡¼­ Alias¿Í Redirect¸¦ »ç¿ëÇϸ頴ٸ¥ Áö½Ã¾î¿Í
+°°À̠ǥÁØ <a href="../sections.html#mergin">°áÇÕ ¹æ¹ý</a>¿¡
+µû¶ó Ã³¸®ÇÑ´Ù. ±×·¯³ª °°Àº »ç¿ëÀå¼Ò¿¡ (¿¹¸¦ µé¾î, °°Àº <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> ¼½¼Ç¿¡)
+Alias¿Í Redirect¸¦ »ç¿ëÇϸ頾Ʒ¡ ¼ø¼­´ë·Î Ã³¸®ÇÑ´Ù.</p>
+
+<p>¸ÕÀú ¸ðµç Redirect¸¦ Ã³¸®ÇÑ ÈÄ Alias¸¦ Ã³¸®ÇÑ´Ù. ±×·¡¼­
+<code class="directive"><a href="#redirect">Redirect</a></code>³ª <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code>¿¡ ÇØ´çÇϴ ¿äûÀº
+Àý´ë·Î AliasÇÏÁö ¾Ê´Â´Ù. ±×¸®°í Alias¿Í Redirect´Â ¼³Á¤ÆÄÀÏ¿¡¼­
+ù¹øÂ°·Î ³ª¿À´Â °ÍÀ» »ç¿ëÇÑ´Ù.</p>
+
+<p>±×·¡¼­ ¿©·¯ Áö½Ã¾î°¡ µ¿ÀÏÇÑ ÇÏÀ§°æ·Î¿¡ ÇØ´çÇϴ °æ¿ì ¸ðµç
+Áö½Ã¾î¸¦ Àû¿ëÇϱâÀ§Çؼ­´Â °¡Àå »ó¼¼ÇÑ °æ·Î¸¦ ¸ÕÀú »ç¿ëÇØ¾ß ÇÑ´Ù.
+¿¹¸¦ µé¾î, ´ÙÀ½ ¼³Á¤Àº ÀǵµÇÑ´ë·Î µ¿ÀÛÇÑ´Ù:</p>
+
+<div class="example"><p><code>
+Alias /foo/bar /baz<br />
+Alias /foo /gaq
+</code></p></div>
+
+<p>±×·¯³ª À§ÀÇ µÎ Áö½Ã¾î ¼ø¼­¸¦ ¹Ù²Ù¸é <code>/foo/bar</code>
+<code class="directive"><a href="#alias">Alias</a></code> ÀÌÀü¿¡
+<code>/foo</code> <code class="directive"><a href="#alias">Alias</a></code>¸¦
+Àû¿ëÇϹǷΠÇ×»ó µÎ¹øÂ° Áö½Ã¾î¸¦ ¹«½ÃÇÑ´Ù.</p>
+
 </div>
 </div>
 <div class="bottomlang">
index 4a944c469c7d91fed386beeb6a884c423a405a48..948a1d29d38a75667128c7afae6df0ca26ea0cb0 100644 (file)
@@ -84,48 +84,6 @@ eşlenmesini sağlar ve URL yönlendirmesi yapar.</td></tr>
   </li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">İşlem Sırası</a></h2>
-
-    <p>Farklı bağlamlarda bulunan <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code>
-      yönergeleri standart <a href="../sections.html#mergin">katıştırma
-      kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat
-      aynı bağlam dahilinde (örneğin, aynı <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> bölümünde) çok fazla <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> varsa bunlar belli bir
-      sıraya göre işleme sokulurlar.</p>
-
-    <p>İlk adımda, <code class="directive"><a href="#alias">Alias</a></code>’lardan önce
-      bütün <code class="directive"><a href="#redirect">Redirect</a></code> yönergeleri
-      işleme sokulur. Bu bakımdan bir <code class="directive"><a href="#redirect">Redirect</a></code> veya <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ile eşleşen bir istek için
-      hiçbir <code class="directive"><a href="#alias">Alias</a></code>
-      uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
-      sıraya göre <code class="directive"><a href="#redirect">Redirect</a></code> ve
-      <code class="directive"><a href="#alias">Alias</a></code> yönergeleri işleme
-      sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
-
-    <p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
-      fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
-      olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
-      aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
-
-    <pre class="prettyprint lang-config">Alias /foo/bar /baz
-Alias /foo /gaq</pre>
-
-
-    <p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
-      <code>/foo</code> rumuzu  daima <code>/foo/bar</code> rumuzundan önce
-      eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
-
-    <p><code class="directive"><a href="#alias">Alias</a></code>,
-      <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ve
-      <code class="directive"><a href="#redirect">Redirect</a></code>
-      yönergeleri bir <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> veya <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> bölümü içinde kullanıldığında
-      bu yönergeler genel alanda tanımlanmış <code class="directive"><a href="#alias">Alias</a></code>,
-      <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ve
-      <code class="directive"><a href="#redirect">Redirect</a></code> yönergelerine göre
-      öncelik alırlar.</p>
-
-  </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Alias" id="Alias">Alias</a> <a name="alias" id="alias">Yönergesi</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>URL’leri dosya sistemi konumlarıyla eşler.</td></tr>
@@ -584,6 +542,48 @@ eşler ve hedefi bir CGI betiği olarak çalıştırır.</td></tr>
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">İşlem Sırası</a></h2>
+
+    <p>Farklı bağlamlarda bulunan <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code>
+      yönergeleri standart <a href="../sections.html#mergin">katıştırma
+      kuralları</a> ile ilgili diğer yönergeler gibi işleme sokulur. Fakat
+      aynı bağlam dahilinde (örneğin, aynı <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> bölümünde) çok fazla <code class="directive"><a href="#alias">Alias</a></code> ve <code class="directive"><a href="#redirect">Redirect</a></code> varsa bunlar belli bir
+      sıraya göre işleme sokulurlar.</p>
+
+    <p>İlk adımda, <code class="directive"><a href="#alias">Alias</a></code>’lardan önce
+      bütün <code class="directive"><a href="#redirect">Redirect</a></code> yönergeleri
+      işleme sokulur. Bu bakımdan bir <code class="directive"><a href="#redirect">Redirect</a></code> veya <code class="directive"><a href="#redirectmatch">RedirectMatch</a></code> ile eşleşen bir istek için
+      hiçbir <code class="directive"><a href="#alias">Alias</a></code>
+      uygulanmayacaktır. İkinci adımda yapılandırma dosyasında yer aldıkları
+      sıraya göre <code class="directive"><a href="#redirect">Redirect</a></code> ve
+      <code class="directive"><a href="#alias">Alias</a></code> yönergeleri işleme
+      sokulurlar, dolayısıyla ilk eşleşme öncelikli olmuş olur.</p>
+
+    <p>İlk eşleşmenin öncelikli olması sebebiyle, bu yönergelerin birden
+      fazlası aynı alt yola uygulandığı takdirde, tüm yönergelerin etkili
+      olabilmesi için en uzun yolu sıralamada en öne almalısınız. Örneğin
+      aşağıdaki yapılandırma beklendiği gibi çalışacaktır:</p>
+
+    <pre class="prettyprint lang-config">Alias /foo/bar /baz
+Alias /foo /gaq</pre>
+
+
+    <p>Ama yukarıdaki iki satır ters sırada yerleştirilmiş olsaydı,
+      <code>/foo</code> rumuzu  daima <code>/foo/bar</code> rumuzundan önce
+      eşleşecek, dolayısıyla ikinci yönerge yok sayılacaktı.</p>
+
+    <p><code class="directive"><a href="#alias">Alias</a></code>,
+      <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ve
+      <code class="directive"><a href="#redirect">Redirect</a></code>
+      yönergeleri bir <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> veya <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> bölümü içinde kullanıldığında
+      bu yönergeler genel alanda tanımlanmış <code class="directive"><a href="#alias">Alias</a></code>,
+      <code class="directive"><a href="#scriptalias">ScriptAlias</a></code> ve
+      <code class="directive"><a href="#redirect">Redirect</a></code> yönergelerine göre
+      öncelik alırlar.</p>
+
+  </div>
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_alias.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 0b492eef138485f378897e5ff27e1b50ce3c396c..09833ec632e2a579f3386bdb813c570560cf46e0 100644 (file)
@@ -47,7 +47,6 @@ used on an server. The most common configuration would be:</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#allowmethods">AllowMethods</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AllowMethods" id="AllowMethods">AllowMethods</a> <a name="allowmethods" id="allowmethods">Directive</a></h2>
 <table class="directive">
@@ -80,6 +79,7 @@ kludgy implementation of <code class="directive"><a href="../mod/core.html#limit
 <code class="directive"><a href="../mod/core.html#limitexcept">LimitExcept</a></code>.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_allowmethods.html" title="English">&nbsp;en&nbsp;</a> |
index c73fcea71395d5532621035c8978e8216a407a96..54e23fbdbce7847952ee24a7b27b1016235ab66c 100644 (file)
@@ -51,7 +51,6 @@ est du style :</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#allowmethods">AllowMethods</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="allowmethods" id="allowmethods">Directive</a> <a name="AllowMethods" id="AllowMethods">AllowMethods</a></h2>
 <table class="directive">
@@ -85,6 +84,7 @@ d'imbrication :</p>
 remplacer l'implémentation "bricolée" des directives <code class="directive"><a href="../mod/core.html#limit">Limit</a></code> et <code class="directive"><a href="../mod/core.html#limitexcept">LimitExcept</a></code>.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_allowmethods.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 0aa646a0964adb4f3e94b20a5fd7f27df3137f58..e939cd30a62c57b524cd46fd8dba4ba6e8aa53d8 100644 (file)
@@ -58,7 +58,6 @@
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 <li><a href="../howto/auth.html">Authentication howto</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">Directive</a></h2>
 <table class="directive">
@@ -253,6 +252,7 @@ Digest Authentication was in force instead of Basic Authentication.
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_auth_basic.html" title="English">&nbsp;en&nbsp;</a> |
index 568ee1e54156f98d4c58eb9daa496aa85c004965..4a27dd5402d03de84e74e6dc66fd5efafb6ca709 100644 (file)
@@ -62,7 +62,6 @@
 <li><a href="../howto/auth.html">Mode d'emploi de
 l'authentification</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authbasicauthoritative" id="authbasicauthoritative">Directive</a> <a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a></h2>
 <table class="directive">
@@ -282,6 +281,7 @@ Apache</td></tr>
       refuser l'accès.</div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index a80348db0e3988f775465f1e0bdb136bdba025f9..437d4a6de28094b80d811f2a226bb54a2b8f34a6 100644 (file)
@@ -66,7 +66,6 @@
 <li><code class="directive"><a href="../mod/mod_authz_core.html#&lt;satisfyone&gt;">&lt;SatisfyOne&gt;</a></code></li>
 <li><a href="../howto/auth.html">Authentication howto</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">ディレクティブ</a></h2>
 <table class="directive">
@@ -163,6 +162,7 @@ Digest Authentication was in force instead of Basic Authentication.
 </table><p>このディレクティブの解説文書は
             まだ翻訳されていません。英語版をご覧ください。
             </p></div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index fde27f13b6d22965767b5d77b0cfd2848db9baff..df33b8b9f7bd93df6eafc1b593d491d7ea752a8f 100644 (file)
@@ -55,7 +55,6 @@
 <li><code class="directive"><a href="../mod/core.html#authname">AuthName</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#authtype">AuthType</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthBasicAuthoritative" id="AuthBasicAuthoritative">AuthBasicAuthoritative</a> <a name="authbasicauthoritative" id="authbasicauthoritative">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -156,6 +155,7 @@ Digest Authentication was in force instead of Basic Authentication.
 </table><p>The documentation for this directive has
             not been translated yet. Please have a look at the English
             version.</p></div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_auth_basic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f4d31162389452a2a50874b618b073a2ce8227f5..bb967ce3398b34796acd50a301957143eeab415a 100644 (file)
 <li><a href="../howto/auth.html">Authentication howto</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="using" id="using">Using Digest Authentication</a></h2>
-
-    <p>To use MD5 Digest authentication, simply
-    change the normal <code>AuthType Basic</code> and
-    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
-    to <code>AuthType Digest</code> and
-    <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code>,
-    when setting up authentication, then add a
-    <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> directive containing at least the root
-    URI(s) for this protection space.</p>
-
-    <p>Appropriate user (text) files can be created using the
-    <code class="program"><a href="../programs/htdigest.html">htdigest</a></code> tool.</p>
-
-    <div class="example"><h3>Example:</h3><pre class="prettyprint lang-config">&lt;Location "/private/"&gt;
-    AuthType Digest
-    AuthName "private area"
-    AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
-    
-    AuthDigestProvider file
-    AuthUserFile "/web/auth/.digest_pw"
-    Require valid-user
-&lt;/Location&gt;</pre>
-</div>
-
-    <div class="note"><h3>Note</h3>
-    <p>Digest authentication was intended to be more secure than basic
-    authentication, but no longer fulfills that design goal. A
-    man-in-the-middle attacker can trivially force the browser to downgrade
-    to basic authentication. And even a passive eavesdropper can brute-force
-    the password using today's graphics hardware, because the hashing
-    algorithm used by digest authentication is too fast. Another problem is
-    that the storage of the passwords on the server is insecure. The contents
-    of a stolen htdigest file can be used directly for digest authentication.
-    Therefore using <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> to encrypt the whole connection is
-    strongly recommended.</p>
-    <p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> only works properly on platforms
-      where APR supports shared memory.</p>
-    </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDigestAlgorithm" id="AuthDigestAlgorithm">AuthDigestAlgorithm</a> <a name="authdigestalgorithm" id="authdigestalgorithm">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Selects the algorithm used to calculate the challenge and
@@ -264,6 +222,48 @@ AuthDigestShmemSize 1024K
 AuthDigestShmemSize 1M</pre>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="using" id="using">Using Digest Authentication</a></h2>
+
+    <p>To use MD5 Digest authentication, simply
+    change the normal <code>AuthType Basic</code> and
+    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
+    to <code>AuthType Digest</code> and
+    <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code>,
+    when setting up authentication, then add a
+    <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> directive containing at least the root
+    URI(s) for this protection space.</p>
+
+    <p>Appropriate user (text) files can be created using the
+    <code class="program"><a href="../programs/htdigest.html">htdigest</a></code> tool.</p>
+
+    <div class="example"><h3>Example:</h3><pre class="prettyprint lang-config">&lt;Location "/private/"&gt;
+    AuthType Digest
+    AuthName "private area"
+    AuthDigestDomain "/private/" "http://mirror.my.dom/private2/"
+    
+    AuthDigestProvider file
+    AuthUserFile "/web/auth/.digest_pw"
+    Require valid-user
+&lt;/Location&gt;</pre>
+</div>
+
+    <div class="note"><h3>Note</h3>
+    <p>Digest authentication was intended to be more secure than basic
+    authentication, but no longer fulfills that design goal. A
+    man-in-the-middle attacker can trivially force the browser to downgrade
+    to basic authentication. And even a passive eavesdropper can brute-force
+    the password using today's graphics hardware, because the hashing
+    algorithm used by digest authentication is too fast. Another problem is
+    that the storage of the passwords on the server is insecure. The contents
+    of a stolen htdigest file can be used directly for digest authentication.
+    Therefore using <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> to encrypt the whole connection is
+    strongly recommended.</p>
+    <p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> only works properly on platforms
+      where APR supports shared memory.</p>
+    </div>
 </div>
 </div>
 <div class="bottomlang">
index f18901e5a021089f1bf683fc95412ae071c15826..357b810dbba172cc323bd0997136a9ebb6731718 100644 (file)
@@ -72,48 +72,6 @@ condens
 l'authentification</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="using" id="using">Utilisation de l'authentification à base de
-condensés</a></h2>
-
-    <p>Pour utiliser l'authentification à base de condensés MD5, vous
-    devez simplement remplacer <code>AuthType Basic</code> et <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> respectivement
-    par <code>AuthType Digest</code> et <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code> lorsque vous
-    configurez l'authentification, puis ajouter une directive <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> contenant au
-    moins la(les) URI(s) racine(s) de la zone à protéger.</p>
-
-    <p>On peut créer les fichiers utilisateur appropriés (au format
-    texte) à l'aide de l'outil <code class="program"><a href="../programs/htdigest.html">htdigest</a></code>.</p>
-
-    <div class="example"><h3>Exemple :</h3><pre class="prettyprint lang-config">&lt;Location /private/&gt;
-    AuthType Digest
-    AuthName "private area"
-    AuthDigestDomain /private/ http://mirror.my.dom/private2/
-    
-    AuthDigestProvider file
-    AuthUserFile /web/auth/.digest_pw
-    Require valid-user
-&lt;/Location&gt;</pre>
-</div>
-
-    <div class="note"><h3>Note</h3>
-    <p>L'authentification à base de condensé a été conçue pour améliorer
-    la sécurité par rapport à l'authentification basique, mais il
-    s'avère que ce but n'a pas été atteint. Un attaquant de type
-    "man-in-the-middle" peut facilement forcer le navigateur à revenir à
-    une authentification basique. Même une oreille indiscrète passive
-    peut retrouver le mot de passe par force brute avec les moyens
-    modernes, car l'algorithme de hashage utilisé par l'authentification
-    à base de condensé est trop rapide. Autre problème, le stockage des
-    mots de passe sur le serveur n'est pas sûr. Le contenu d'un fichier
-    htdigest volé peut être utilisé directement pour l'authentification
-    à base de condensé. Il est donc fortement recommandé d'utiliser
-    <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> pour chiffrer la connexion.</p>
-    <p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> ne fonctionne correctement que
-    sur les plates-formes où APR supporte la mémoire partagée.</p>
-    </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authdigestalgorithm" id="authdigestalgorithm">Directive</a> <a name="AuthDigestAlgorithm" id="AuthDigestAlgorithm">AuthDigestAlgorithm</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sélectionne l'algorithme utilisé pour calculer les
@@ -283,6 +241,48 @@ AuthDigestShmemSize 1024K
 AuthDigestShmemSize 1M</pre>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="using" id="using">Utilisation de l'authentification à base de
+condensés</a></h2>
+
+    <p>Pour utiliser l'authentification à base de condensés MD5, vous
+    devez simplement remplacer <code>AuthType Basic</code> et <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> respectivement
+    par <code>AuthType Digest</code> et <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code> lorsque vous
+    configurez l'authentification, puis ajouter une directive <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> contenant au
+    moins la(les) URI(s) racine(s) de la zone à protéger.</p>
+
+    <p>On peut créer les fichiers utilisateur appropriés (au format
+    texte) à l'aide de l'outil <code class="program"><a href="../programs/htdigest.html">htdigest</a></code>.</p>
+
+    <div class="example"><h3>Exemple :</h3><pre class="prettyprint lang-config">&lt;Location /private/&gt;
+    AuthType Digest
+    AuthName "private area"
+    AuthDigestDomain /private/ http://mirror.my.dom/private2/
+    
+    AuthDigestProvider file
+    AuthUserFile /web/auth/.digest_pw
+    Require valid-user
+&lt;/Location&gt;</pre>
+</div>
+
+    <div class="note"><h3>Note</h3>
+    <p>L'authentification à base de condensé a été conçue pour améliorer
+    la sécurité par rapport à l'authentification basique, mais il
+    s'avère que ce but n'a pas été atteint. Un attaquant de type
+    "man-in-the-middle" peut facilement forcer le navigateur à revenir à
+    une authentification basique. Même une oreille indiscrète passive
+    peut retrouver le mot de passe par force brute avec les moyens
+    modernes, car l'algorithme de hashage utilisé par l'authentification
+    à base de condensé est trop rapide. Autre problème, le stockage des
+    mots de passe sur le serveur n'est pas sûr. Le contenu d'un fichier
+    htdigest volé peut être utilisé directement pour l'authentification
+    à base de condensé. Il est donc fortement recommandé d'utiliser
+    <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> pour chiffrer la connexion.</p>
+    <p><code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code> ne fonctionne correctement que
+    sur les plates-formes où APR supporte la mémoire partagée.</p>
+    </div>
 </div>
 </div>
 <div class="bottomlang">
index 29074e2423b0aa6efbcb096d8d144614b85b27e2..01c2bd596166bdd0cd0a63c298a73ccad672ef92 100644 (file)
 <li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="using" id="using">Digest Authentication »ç¿ëÇϱâ</a></h2>
-
-    <p>MD5 Digest authenticationÀº ¸Å¿ì ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
-    <code>AuthType Basic</code>°ú <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> ´ë½Å
-    <code>AuthType Digest</code>¿Í <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code>¸¦
-    »ç¿ëÇÏ¿© °£´ÜÈ÷ ÀÎÁõÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ÃÖ¼ÒÇÑ º¸È£ÇÏ·Á´Â
-    ¿µ¿ªÀÇ ±âº» URIÀ» <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> Áö½Ã¾î¿¡ »ç¿ëÇÑ´Ù.</p>
-
-    <p><a href="../programs/htdigest.html">htdigest</a> µµ±¸¸¦
-    »ç¿ëÇÏ¿© »ç¿ëÀÚ (¹®ÀÚ)ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Ù.</p>
-
-    <div class="example"><h3>¿¹Á¦:</h3><p><code>
-      &lt;Location /private/&gt;<br />
-      <span class="indent">
-        AuthType Digest<br />
-        AuthName "private area"<br />
-        AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
-       <br />
-       AuthDigestProvider file<br />
-        AuthUserFile /web/auth/.digest_pw<br />
-        Require valid-user<br />
-      </span>
-      &lt;/Location&gt;
-    </code></p></div>
-
-    <div class="note"><h3>ÁÖÀÇ</h3> 
-    <p>Digest authenticationÀº Basic authenticationº¸´Ù ´õ
-    ¾ÈÀüÇÏÁö¸¸, ºê¶ó¿ìÀú°¡ Áö¿øÇؾߠÇÑ´Ù. 2002³â 11¿ù ÇöÀç digest
-    authenticationÀ» Áö¿øÇϴ ºê¶ó¿ìÀú¿¡´Â <a href="http://www.w3.org/Amaya/">Amaya</a>, <a href="http://konqueror.kde.org/">Konqueror</a>, (Windows¿ëÀº
-    ÁúÀǹ®ÀÚ¿­°ú ÇÔ²² »ç¿ëÇϸ頾ȵÇÁö¸¸ - ÇØ°á¹æ¹ýÀº ¾Æ·¡ "<a href="#msie">MS Internet Explorer ¹®Á¦ ÇذáÇϱâ</a>"¸¦ Âü°í)
-    Mac OS X¿Í Windows¿ë <a href="http://www.microsoft.com/windows/ie/">MS Internet
-    Explorer</a>, <a href="http://www.mozilla.org">Mozilla</a>,
-    <a href="http://channels.netscape.com/ns/browsers/download.jsp">Netscape</a> ¹öÀü 7, <a href="http://www.opera.com/">Opera</a>,
-    <a href="http://www.apple.com/safari/">Safari</a> µîÀÌ ÀÖ´Ù.
-    <a href="http://lynx.isc.org/">lynx</a>´Â digest authenticationÀ»
-    Áö¿øÇÏÁö <strong>¾Ê´Â´Ù</strong>. digest authenticationÀÌ
-    basic authentication ¸¸Å­ ³Î¸® ±¸ÇöµÇÁö ¾Ê¾Ò±â¶§¹®¿¡ ¸ðµç
-    »ç¿ëÀÚ°¡ Áö¿øÇϴ ºê¶ó¿ìÀú¸¦ »ç¿ëÇϴ °æ¿ì¿¡¸¸ »ç¿ëÇØ¾ß
-    ÇÑ´Ù.</p>
-    </div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="msie" id="msie">MS Internet Explorer ¹®Á¦ ÇذáÇϱâ</a></h2>
-    <p>ÇöÀç Windows¿ë Internet Explorer´Â Digest authentication
-    »ç¿ë½Ã ÁúÀǹ®ÀÚ¿­ÀÌ Àִ <code>GET</code> ¿äûÀ» RFC¿Í ´Ù¸£°Ô
-    Ã³¸®Çϴ ¹®Á¦°¡ ÀÖ´Ù. ¸î°¡Áö ¹æ¹ýÀ¸·Î ÀÌ ¹®Á¦¸¦ ÇذáÇÒ ¼ö
-    ÀÖ´Ù.</p>
-
-    <p>
-    Ã¹¹øÂ°´Â ÇÁ·Î±×·¥¿¡ ÀڷḦ ³Ñ°ÜÁÖ±âÀ§ÇØ <code>GET</code>
-    ´ë½Å <code>POST</code> ¿äûÀ» »ç¿ëÇϴ ¹æ¹ýÀÌ´Ù. ÀÌ ¹æ¹ýÀÌ
-    °¡´ÉÇϴٸ頰¡Àå °£´ÜÇÑ ÇØ°áÃ¥ÀÌ´Ù.
-    </p>
-
-    <p>¶Ç, ¾ÆÆÄÄ¡ 2.0.51ºÎÅÍ <code>AuthDigestEnableQueryStringHack</code>
-    È¯°æº¯¼ö¸¦ Á¦°øÇÏ¿© ¹®Á¦¸¦ ÇذáÇÑ´Ù. ¿äû¿¡
-    <code>AuthDigestEnableQueryStringHack</code>À» ¼³Á¤Çϸé
-    ¾ÆÆÄÄ¡´Â MSIE ¹ö±×¸¦ ÇÇÇØ°¥ Á¶Ä¡¸¦ ÃëÇÏ°í ¿äû URI¸¦ digest
-    ºñ±³¿¡¼­ Á¦¿ÜÇÑ´Ù. ÀÌ ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.</p>
-
-    <div class="example"><h3>MSIE¿¡¼­ Digest Authentication »ç¿ëÇϱâ:</h3><p><code>
-    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
-    </code></p></div>
-
-    <p>¼±ÅÃÀûÀΠȯ°æº¯¼ö ¼³Á¤¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> Áö½Ã¾î¸¦
-    Âü°íÇ϶ó.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDigestAlgorithm" id="AuthDigestAlgorithm">AuthDigestAlgorithm</a> <a name="authdigestalgorithm" id="authdigestalgorithm">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>digest authentication¿¡¼­ challenge¿Í response
@@ -283,6 +214,75 @@ URI
     </code></p></div>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="using" id="using">Digest Authentication »ç¿ëÇϱâ</a></h2>
+
+    <p>MD5 Digest authenticationÀº ¸Å¿ì ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.
+    <code>AuthType Basic</code>°ú <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> ´ë½Å
+    <code>AuthType Digest</code>¿Í <code class="directive"><a href="#authdigestprovider">AuthDigestProvider</a></code>¸¦
+    »ç¿ëÇÏ¿© °£´ÜÈ÷ ÀÎÁõÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ÃÖ¼ÒÇÑ º¸È£ÇÏ·Á´Â
+    ¿µ¿ªÀÇ ±âº» URIÀ» <code class="directive"><a href="#authdigestdomain">AuthDigestDomain</a></code> Áö½Ã¾î¿¡ »ç¿ëÇÑ´Ù.</p>
+
+    <p><a href="../programs/htdigest.html">htdigest</a> µµ±¸¸¦
+    »ç¿ëÇÏ¿© »ç¿ëÀÚ (¹®ÀÚ)ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Ù.</p>
+
+    <div class="example"><h3>¿¹Á¦:</h3><p><code>
+      &lt;Location /private/&gt;<br />
+      <span class="indent">
+        AuthType Digest<br />
+        AuthName "private area"<br />
+        AuthDigestDomain /private/ http://mirror.my.dom/private2/<br />
+       <br />
+       AuthDigestProvider file<br />
+        AuthUserFile /web/auth/.digest_pw<br />
+        Require valid-user<br />
+      </span>
+      &lt;/Location&gt;
+    </code></p></div>
+
+    <div class="note"><h3>ÁÖÀÇ</h3> 
+    <p>Digest authenticationÀº Basic authenticationº¸´Ù ´õ
+    ¾ÈÀüÇÏÁö¸¸, ºê¶ó¿ìÀú°¡ Áö¿øÇؾߠÇÑ´Ù. 2002³â 11¿ù ÇöÀç digest
+    authenticationÀ» Áö¿øÇϴ ºê¶ó¿ìÀú¿¡´Â <a href="http://www.w3.org/Amaya/">Amaya</a>, <a href="http://konqueror.kde.org/">Konqueror</a>, (Windows¿ëÀº
+    ÁúÀǹ®ÀÚ¿­°ú ÇÔ²² »ç¿ëÇϸ頾ȵÇÁö¸¸ - ÇØ°á¹æ¹ýÀº ¾Æ·¡ "<a href="#msie">MS Internet Explorer ¹®Á¦ ÇذáÇϱâ</a>"¸¦ Âü°í)
+    Mac OS X¿Í Windows¿ë <a href="http://www.microsoft.com/windows/ie/">MS Internet
+    Explorer</a>, <a href="http://www.mozilla.org">Mozilla</a>,
+    <a href="http://channels.netscape.com/ns/browsers/download.jsp">Netscape</a> ¹öÀü 7, <a href="http://www.opera.com/">Opera</a>,
+    <a href="http://www.apple.com/safari/">Safari</a> µîÀÌ ÀÖ´Ù.
+    <a href="http://lynx.isc.org/">lynx</a>´Â digest authenticationÀ»
+    Áö¿øÇÏÁö <strong>¾Ê´Â´Ù</strong>. digest authenticationÀÌ
+    basic authentication ¸¸Å­ ³Î¸® ±¸ÇöµÇÁö ¾Ê¾Ò±â¶§¹®¿¡ ¸ðµç
+    »ç¿ëÀÚ°¡ Áö¿øÇϴ ºê¶ó¿ìÀú¸¦ »ç¿ëÇϴ °æ¿ì¿¡¸¸ »ç¿ëÇØ¾ß
+    ÇÑ´Ù.</p>
+    </div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="msie" id="msie">MS Internet Explorer ¹®Á¦ ÇذáÇϱâ</a></h2>
+    <p>ÇöÀç Windows¿ë Internet Explorer´Â Digest authentication
+    »ç¿ë½Ã ÁúÀǹ®ÀÚ¿­ÀÌ Àִ <code>GET</code> ¿äûÀ» RFC¿Í ´Ù¸£°Ô
+    Ã³¸®Çϴ ¹®Á¦°¡ ÀÖ´Ù. ¸î°¡Áö ¹æ¹ýÀ¸·Î ÀÌ ¹®Á¦¸¦ ÇذáÇÒ ¼ö
+    ÀÖ´Ù.</p>
+
+    <p>
+    Ã¹¹øÂ°´Â ÇÁ·Î±×·¥¿¡ ÀڷḦ ³Ñ°ÜÁÖ±âÀ§ÇØ <code>GET</code>
+    ´ë½Å <code>POST</code> ¿äûÀ» »ç¿ëÇϴ ¹æ¹ýÀÌ´Ù. ÀÌ ¹æ¹ýÀÌ
+    °¡´ÉÇϴٸ頰¡Àå °£´ÜÇÑ ÇØ°áÃ¥ÀÌ´Ù.
+    </p>
+
+    <p>¶Ç, ¾ÆÆÄÄ¡ 2.0.51ºÎÅÍ <code>AuthDigestEnableQueryStringHack</code>
+    È¯°æº¯¼ö¸¦ Á¦°øÇÏ¿© ¹®Á¦¸¦ ÇذáÇÑ´Ù. ¿äû¿¡
+    <code>AuthDigestEnableQueryStringHack</code>À» ¼³Á¤Çϸé
+    ¾ÆÆÄÄ¡´Â MSIE ¹ö±×¸¦ ÇÇÇØ°¥ Á¶Ä¡¸¦ ÃëÇÏ°í ¿äû URI¸¦ digest
+    ºñ±³¿¡¼­ Á¦¿ÜÇÑ´Ù. ÀÌ ¹æ¹ýÀº ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.</p>
+
+    <div class="example"><h3>MSIE¿¡¼­ Digest Authentication »ç¿ëÇϱâ:</h3><p><code>
+    BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
+    </code></p></div>
+
+    <p>¼±ÅÃÀûÀΠȯ°æº¯¼ö ¼³Á¤¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code> Áö½Ã¾î¸¦
+    Âü°íÇ϶ó.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_auth_digest.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index b13cbc7008c653541d9f021f7087b882748f31bc..118443059fe0411d3e0fcd4c35c8317b146dfe5b 100644 (file)
 <li><a href="../howto/auth.html">Authentication howto</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicconfig" id="basicconfig">Basic Configuration</a></h2>
-
-      <p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to
-      decide where you will store your <var>session</var>, and you will need to
-      decide what method you will use to authenticate. In this simple example, the
-      login details will be stored in a session based on
-      <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against
-      a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful,
-      the user will be redirected to the form login page.</p>
-
-      <div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config">AuthFormProvider file
-AuthUserFile "conf/passwd"
-AuthType form
-AuthName realm
-AuthFormLoginRequiredLocation "http://example.com/login.html"
-Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable
-      the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>.
-      The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and
-      <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames
-      and passwords should be checked against the chosen file.</p>
-
-      <p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>,
-      <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> and
-      <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> create an
-      encrypted session stored within an HTTP cookie on the browser. For more information
-      on the different options for configuring a session, read the documentation for
-      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
-
-      <p>In the simple example above, a URL has been protected by
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to
-      enter their username and password. Options for doing so include providing a
-      dedicated standalone login page for this purpose, or for providing the login
-      page inline.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="standalone" id="standalone">Standalone Login</a></h2>
-
-      <p>The login form can be hosted as a standalone page, or can be provided inline on
-      the same page.</p>
-
-      <p>When configuring the login as a standalone page, unsuccessful authentication
-      attempts should be redirected to a login form created by the website for this purpose,
-      using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
-      directive. Typically this login page will contain an HTML form, asking the user to
-      provide their usename and password.</p>
-
-      <div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-&lt;/form&gt;</pre>
-</div>
-
-      <p>The part that does the actual login is handled by the <var>form-login-handler</var>.
-      The action of the form should point at this handler, which is configured within
-      Apache httpd as follows:</p>
-
-      <div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config">&lt;Location "/dologin.html"&gt;
-    SetHandler form-login-handler
-    AuthFormLoginRequiredLocation "http://example.com/login.html"
-    AuthFormLoginSuccessLocation "http://example.com/success.html"
-    AuthFormProvider file
-    AuthUserFile "conf/passwd"
-    AuthType form
-    AuthName realm
-    Session On
-    SessionCookieName session path=/
-    SessionCryptoPassphrase secret
-&lt;/Location&gt;</pre>
-</div>
-
-      <p>The URLs specified by the
-      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
-      point to a page explaining to the user that their login attempt was unsuccessful, and they
-      should try again.  The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
-      directive specifies the URL the user should be redirected to upon successful login.</p>
-
-      <p>Alternatively, the URL to redirect the user to on success can be embedded within the login
-      form, as in the example below. As a result, the same <var>form-login-handler</var> can be
-      reused for different areas of a website.</p>
-
-      <div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-  &lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
-&lt;/form&gt;</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="inline" id="inline">Inline Login</a></h2>
-
-      <div class="warning"><h3>Warning</h3>
-        <p>A risk exists that under certain circumstances, the login form configured
-        using inline login may be submitted more than once, revealing login credentials to
-        the application running underneath. The administrator must ensure that the underlying
-        application is properly secured to prevent abuse. If in doubt, use the
-        standalone login configuration.</p>
-      </div>
-
-      <p>As an alternative to having a dedicated login page for a website, it is possible to
-      configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
-      redirected to another page. This allows the state of the current page to be preserved
-      during the login attempt. This can be useful in a situation where a time limited
-      session is in force, and the session times out in the middle of the user request. The
-      user can be re-authenticated in place, and they can continue where they left off.</p>
-
-      <p>If a non-authenticated user attempts to access a page protected by
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
-      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
-      a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
-      that they are not authorized to view the page.</p>
-
-      <p>To configure inline authentication, the administrator overrides the error document
-      returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
-      containing the login form, as follows:</p>
-
-      <div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
-ErrorDocument 401 "/login.shtml"
-AuthUserFile "conf/passwd"
-AuthType form
-AuthName realm
-AuthFormLoginRequiredLocation "http://example.com/login.html"
-Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>The error document page should contain a login form with an empty action property,
-      as per the example below.  This has the effect of submitting the form to
-      the original protected URL, without the page having to know what that
-      URL is.</p>
-
-      <div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-&lt;/form&gt;</pre>
-</div>
-
-      <p>When the end user has filled in their login details, the form will make
-      an HTTP POST request to the original password protected URL.
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
-      HTML fields are found present for the username and password, the user
-      will be logged in, and the original password protected URL will be returned
-      to the user as a GET request.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a></h2>
-
-      <p>A limitation of the inline login technique described above is that should an
-      HTML form POST have resulted in the request to authenticate or
-      reauthenticate, the
-      contents of the original form posted by the browser will be lost. Depending on
-      the function of the website, this could present significant inconvenience for the
-      end user.</p>
-
-      <p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
-      of the original request to be embedded in the login form. If authentication
-      is successful, the original method and body will be retried by Apache httpd, preserving
-      the state of the original request.</p>
-
-      <p>To enable body preservation, add three additional fields to the login form as
-      per the example below.</p>
-
-      <div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-  <br />  <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
-  &lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
-  &lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
-&lt;/form&gt;</pre>
-</div>
-
-      <p>How the method, mimetype and body of the original request are embedded within the
-      login form will depend on the platform and technology being used within the website.
-      </p>
-
-      <p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
-      <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
-      CGI script to embed the variables in the form.</p>
-
-      <p>Another option is to render the login form using a CGI script or other dynamic
-      technology.</p>
-
-      <div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config">        AuthFormProvider file
-        ErrorDocument 401 "/cgi-bin/login.cgi"
-        ...</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="loggingout" id="loggingout">Logging Out</a></h2>
-
-      <p>To enable a user to log out of a particular session, configure a page to
-      be handled by the <var>form-logout-handler</var>. Any attempt to access this
-      URL will cause the username and password to be removed from the current
-      session, effectively logging the user out.</p>
-
-      <p>By setting the
-      <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
-      a URL can be specified that the browser will be redirected to on successful
-      logout. This URL might explain to the user that they have been logged out, and
-      give the user the option to log in again.</p>
-
-      <div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
-AuthName realm
-AuthFormLogoutLocation "http://example.com/loggedout.html"
-Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>Note that logging a user out does not delete the session; it merely removes
-      the username and password from the session. If this results in an empty session,
-      the net effect will be the removal of that session, but this is not
-      guaranteed. If you want to guarantee the removal of a session, set the
-      <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
-      value, like 1 (setting the directive to zero would mean no session age limit).
-      </p>
-
-      <div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
-AuthFormLogoutLocation "http://example.com/loggedout.html"
-Session On
-SessionMaxAge 1
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2>
-    <p>Note that form submission involves URLEncoding the form data:
-    in this case the username and password.  You should therefore
-    pick usernames and passwords that avoid characters that are
-    URLencoded in form submission, or you may get unexpected results.</p>
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a> <a name="authformauthoritative" id="authformauthoritative">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets whether authorization and authentication are passed to
@@ -698,6 +451,253 @@ parser has been added in 2.4.4.</td></tr>
     in.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicconfig" id="basicconfig">Basic Configuration</a></h2>
+
+      <p>To protect a particular URL with <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, you need to
+      decide where you will store your <var>session</var>, and you will need to
+      decide what method you will use to authenticate. In this simple example, the
+      login details will be stored in a session based on
+      <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, and authentication will be attempted against
+      a file using <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. If authentication is unsuccessful,
+      the user will be redirected to the form login page.</p>
+
+      <div class="example"><h3>Basic example</h3><pre class="prettyprint lang-config">AuthFormProvider file
+AuthUserFile "conf/passwd"
+AuthType form
+AuthName realm
+AuthFormLoginRequiredLocation "http://example.com/login.html"
+Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
+</div>
+
+      <p>The directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code> will enable
+      the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> authentication when set to the value <var>form</var>.
+      The directives <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> and
+      <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> specify that usernames
+      and passwords should be checked against the chosen file.</p>
+
+      <p>The directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>,
+      <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> and
+      <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code> create an
+      encrypted session stored within an HTTP cookie on the browser. For more information
+      on the different options for configuring a session, read the documentation for
+      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
+
+      <p>In the simple example above, a URL has been protected by
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, but the user has yet to be given an opportunity to
+      enter their username and password. Options for doing so include providing a
+      dedicated standalone login page for this purpose, or for providing the login
+      page inline.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="standalone" id="standalone">Standalone Login</a></h2>
+
+      <p>The login form can be hosted as a standalone page, or can be provided inline on
+      the same page.</p>
+
+      <p>When configuring the login as a standalone page, unsuccessful authentication
+      attempts should be redirected to a login form created by the website for this purpose,
+      using the <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
+      directive. Typically this login page will contain an HTML form, asking the user to
+      provide their usename and password.</p>
+
+      <div class="example"><h3>Example login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+&lt;/form&gt;</pre>
+</div>
+
+      <p>The part that does the actual login is handled by the <var>form-login-handler</var>.
+      The action of the form should point at this handler, which is configured within
+      Apache httpd as follows:</p>
+
+      <div class="example"><h3>Form login handler example</h3><pre class="prettyprint lang-config">&lt;Location "/dologin.html"&gt;
+    SetHandler form-login-handler
+    AuthFormLoginRequiredLocation "http://example.com/login.html"
+    AuthFormLoginSuccessLocation "http://example.com/success.html"
+    AuthFormProvider file
+    AuthUserFile "conf/passwd"
+    AuthType form
+    AuthName realm
+    Session On
+    SessionCookieName session path=/
+    SessionCryptoPassphrase secret
+&lt;/Location&gt;</pre>
+</div>
+
+      <p>The URLs specified by the
+      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive will typically
+      point to a page explaining to the user that their login attempt was unsuccessful, and they
+      should try again.  The <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
+      directive specifies the URL the user should be redirected to upon successful login.</p>
+
+      <p>Alternatively, the URL to redirect the user to on success can be embedded within the login
+      form, as in the example below. As a result, the same <var>form-login-handler</var> can be
+      reused for different areas of a website.</p>
+
+      <div class="example"><h3>Example login form with location</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+  &lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
+&lt;/form&gt;</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="inline" id="inline">Inline Login</a></h2>
+
+      <div class="warning"><h3>Warning</h3>
+        <p>A risk exists that under certain circumstances, the login form configured
+        using inline login may be submitted more than once, revealing login credentials to
+        the application running underneath. The administrator must ensure that the underlying
+        application is properly secured to prevent abuse. If in doubt, use the
+        standalone login configuration.</p>
+      </div>
+
+      <p>As an alternative to having a dedicated login page for a website, it is possible to
+      configure <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> to authenticate users inline, without being
+      redirected to another page. This allows the state of the current page to be preserved
+      during the login attempt. This can be useful in a situation where a time limited
+      session is in force, and the session times out in the middle of the user request. The
+      user can be re-authenticated in place, and they can continue where they left off.</p>
+
+      <p>If a non-authenticated user attempts to access a page protected by
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> that isn't configured with a
+      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code> directive,
+      a <var>HTTP_UNAUTHORIZED</var> status code is returned to the browser indicating to the user
+      that they are not authorized to view the page.</p>
+
+      <p>To configure inline authentication, the administrator overrides the error document
+      returned by the <var>HTTP_UNAUTHORIZED</var> status code with a custom error document
+      containing the login form, as follows:</p>
+
+      <div class="example"><h3>Basic inline example</h3><pre class="prettyprint lang-config">AuthFormProvider file
+ErrorDocument 401 "/login.shtml"
+AuthUserFile "conf/passwd"
+AuthType form
+AuthName realm
+AuthFormLoginRequiredLocation "http://example.com/login.html"
+Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
+</div>
+
+      <p>The error document page should contain a login form with an empty action property,
+      as per the example below.  This has the effect of submitting the form to
+      the original protected URL, without the page having to know what that
+      URL is.</p>
+
+      <div class="example"><h3>Example inline login form</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+&lt;/form&gt;</pre>
+</div>
+
+      <p>When the end user has filled in their login details, the form will make
+      an HTTP POST request to the original password protected URL.
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> will intercept this POST request, and if
+      HTML fields are found present for the username and password, the user
+      will be logged in, and the original password protected URL will be returned
+      to the user as a GET request.</p>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="inlinepreservebody" id="inlinepreservebody">Inline Login with Body Preservation</a></h2>
+
+      <p>A limitation of the inline login technique described above is that should an
+      HTML form POST have resulted in the request to authenticate or
+      reauthenticate, the
+      contents of the original form posted by the browser will be lost. Depending on
+      the function of the website, this could present significant inconvenience for the
+      end user.</p>
+
+      <p><code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> addresses this by allowing the method and body
+      of the original request to be embedded in the login form. If authentication
+      is successful, the original method and body will be retried by Apache httpd, preserving
+      the state of the original request.</p>
+
+      <p>To enable body preservation, add three additional fields to the login form as
+      per the example below.</p>
+
+      <div class="example"><h3>Example with body preservation</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+  <br />  <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
+  &lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
+  &lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
+&lt;/form&gt;</pre>
+</div>
+
+      <p>How the method, mimetype and body of the original request are embedded within the
+      login form will depend on the platform and technology being used within the website.
+      </p>
+
+      <p>One option is to use the <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> module along with the
+      <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> directive, along with a suitable
+      CGI script to embed the variables in the form.</p>
+
+      <p>Another option is to render the login form using a CGI script or other dynamic
+      technology.</p>
+
+      <div class="example"><h3>CGI example</h3><pre class="prettyprint lang-config">        AuthFormProvider file
+        ErrorDocument 401 "/cgi-bin/login.cgi"
+        ...</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="loggingout" id="loggingout">Logging Out</a></h2>
+
+      <p>To enable a user to log out of a particular session, configure a page to
+      be handled by the <var>form-logout-handler</var>. Any attempt to access this
+      URL will cause the username and password to be removed from the current
+      session, effectively logging the user out.</p>
+
+      <p>By setting the
+      <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code> directive,
+      a URL can be specified that the browser will be redirected to on successful
+      logout. This URL might explain to the user that they have been logged out, and
+      give the user the option to log in again.</p>
+
+      <div class="example"><h3>Basic logout example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
+AuthName realm
+AuthFormLogoutLocation "http://example.com/loggedout.html"
+Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
+</div>
+
+      <p>Note that logging a user out does not delete the session; it merely removes
+      the username and password from the session. If this results in an empty session,
+      the net effect will be the removal of that session, but this is not
+      guaranteed. If you want to guarantee the removal of a session, set the
+      <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code> directive to a small
+      value, like 1 (setting the directive to zero would mean no session age limit).
+      </p>
+
+      <div class="example"><h3>Basic session expiry example</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
+AuthFormLogoutLocation "http://example.com/loggedout.html"
+Session On
+SessionMaxAge 1
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="urlencoding" id="urlencoding">Usernames and Passwords</a></h2>
+    <p>Note that form submission involves URLEncoding the form data:
+    in this case the username and password.  You should therefore
+    pick usernames and passwords that avoid characters that are
+    URLencoded in form submission, or you may get unexpected results.</p>
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_auth_form.html" title="English">&nbsp;en&nbsp;</a> |
index 66e74723a1b43221d35637a822ca8c08be6f0236..7b348cf397edd8f0e4c00aab58a1071d37e388b1 100644 (file)
 l'authentification</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicconfig" id="basicconfig">Configuration de base</a></h2>
-
-      <p>Pour protéger une URL particulière avec le module
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez déterminer l'endroit où
-      vous allez stocker votre <var>session</var>, ainsi que la méthode
-      d'authentification. Dans cet exemple simple, les informations de
-      connexion sont stockées dans une session à l'aide du module
-      <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, et l'authentification utilise
-      un fichier en s'appuyant sur le module
-      <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. Si l'authentification échoue,
-      l'utilisateur dera redirigé vers la page du formulaire de
-      connexion.</p>
-
-      <div class="example"><h3>Exemple simple</h3><pre class="prettyprint lang-config">AuthFormProvider file
-AuthUserFile conf/passwd
-AuthType form
-AuthName realm
-AuthFormLoginRequiredLocation http://example.com/login.html
-Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>L'authentification <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> est activée
-      en affectant la valeur <var>form</var> à la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>. Les directives
-      <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> et
-      <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
-      spécifient que les noms d'utilisateurs et mots de passe seront
-      vérifiés en utilisant le fichier choisi.</p>
-
-      <p>Les directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> et
-      <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code>
-      créent une session chiffrée stockée dans un cookie HTTP au niveau
-      du navigateur. Pour plus d'informations à propos des différentes
-      options de configuration des sessions, reportez-vous à la
-      documentation du module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
-
-      <p>Dans l'exemple simple ci-dessus, une URL a été protégée par
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, mais on doit maintenant fournir
-      à l'utilisateur un moyen d'entrer un nom et un mot de passe. À cet
-      effet, on peut soit écrire une page de connexion indépendante
-      dédiée, soit inclure le formulaire de connexion dans la page
-      courante.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="standalone" id="standalone">Page de connexion dédiée</a></h2>
-
-      <p>Le formulaire de connexion peut être contenu dans une page
-      indépendante, ou être inclus dans la page courante. </p>
-
-      <p>Lorsque la connexion s'effectue à partir d'une page
-      indépendante et si la tentative d'authentification échoue,
-      l'utilisateur doit être redirigé vers un formulaire de connexion,
-      créé à cet effet sur le site web, en utilisant la directive
-      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>.
-      En général, la page de connexion contiendra un formulaire HTML
-      demandant à l'utilisateur de fournir un nom et un mot de passe.</p>
-
-      <div class="example"><h3>Exemple de formulaire de connexion</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-&lt;/form&gt;</pre>
-</div>
-
-      <p>La partie où s'effectue la connexion proprement dite est
-      traitée par le gestionnaire <var>form-login-handler</var>.
-      L'action de ce formulaire doit pointer vers ce gestionnaire, ce
-      que l'on configure dans Apache httpd comme suit :</p>
-
-      <div class="example"><h3>Exemple de configuration du gestionnaire de
-      formulaire de connexion</h3><pre class="prettyprint lang-config">&lt;Location /dologin.html&gt;
-    SetHandler form-login-handler
-    AuthFormLoginRequiredLocation http://example.com/login.html
-    AuthFormLoginSuccessLocation http://example.com/success.html
-    AuthFormProvider file
-    AuthUserFile conf/passwd
-    AuthType form
-    AuthName realm
-    Session On
-    SessionCookieName session path=/
-    SessionCryptoPassphrase secret
-&lt;/Location&gt;</pre>
-</div>
-
-      <p>L'URL spécifiée par la directive
-      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
-      référencera en général une page expliquant à l'utilisateur que sa
-      tentative de connexion a échoué, et qu'il doit la renouveler. La
-      directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
-      spécifie l'URL vers laquelle l'utilisateur doit être redirigé s'il
-      s'est authentifié avec succès.</p>
-
-      <p>Alternativement, l'URL vers laquelle doit être redirigé
-      l'utilisateur s'il s'est authentifié avec succès peut être
-      intégrée dans le formulaire de connexion, comme dans l'exemple
-      ci-dessous. Il en découle que le même gestionnaire
-      <var>form-login-handler</var> pourra être utilisé pour différentes
-      zones du site web.</p>
-
-      <div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-  &lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
-&lt;/form&gt;</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="inline" id="inline">Connexion à la volée</a></h2>
-
-      <div class="warning"><h3>Avertissement</h3>
-        <p>Il existe un risque, dans certaines circonstances, que le
-       formulaire de connexion configuré pour une connexion à la volée
-       soit soumis plusieurs fois, révélant de ce fait les paramètres
-       de connexion à l'application sous-jacente. L'administrateur doit
-       s'assurer que cette dernière est correctement sécurisée afin
-       d'éviter les éventuels abus. En cas de doute, utilisez une page
-       de connexion indépendante dédiée.</p>
-      </div>
-
-      <p>Comme alternative à la page de connexion dédiée pour un site
-      web, il est possible de configurer <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
-      pour authentifier les utilisateurs à la volée, sans les rediriger
-      vers une autre page, ce qui permet de conserver l'état de la page
-      courante au cours de la tentative de connexion. Ceci peut s'avérer
-      utile dans le cas d'une session limitée dans le temps, si le délai
-      de la session a expiré pendant la requête de l'utilisateur. Ce
-      dernier peut alors se réauthentifier à la même place, et
-      poursuivre son activité à partir du point où il en était resté.</p>
-
-      <p>Si un utilisateur non authentifié tente d'accéder à une page
-      protégée par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, et si ce dernier
-      n'est pas configuré avec une directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>,
-      un code de statut <var>HTTP_UNAUTHORIZED</var> est renvoyé vers le
-      navigateur, indiquant à l'utilisateur qu'il n'est pas autorisé à
-      accéder à cette page.</p>
-
-      <p>Pour configurer l'authentification à la volée, l'administrateur
-      remplace le message d'erreur renvoyé par le code de statut
-      <var>HTTP_UNAUTHORIZED</var> par un message d'erreur personnalisé
-      contenant le formulaire de connexion comme suit :</p>
-
-      <div class="example"><h3>Exemple simple d'authentification à la volée</h3><pre class="prettyprint lang-config">AuthFormProvider file
-ErrorDocument 401 /login.shtml
-AuthUserFile conf/passwd
-AuthType form
-AuthName realm
-AuthFormLoginRequiredLocation http://example.com/login.html
-Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>La page du message d'erreur doit contenir un formulaire de
-      connexion dont la propriété action est vide, comme dans l'exemple
-      ci-dessous. Ceci a pour effet de soumettre le formulaire à l'URL
-      protégée originale, cette dernière n'ayant pas besoin d'être
-      connue de la page en cours.</p>
-
-      <div class="example"><h3>Exemple de formulaire de connexion à la volée</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-&lt;/form&gt;</pre>
-</div>
-
-      <p>Lorsque l'utilisateur final a entré ses informations de
-      connexion, le formulaire effectue une requête HTTP POST pour l'URL
-      originale protégée par mot de passe.
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requête
-      POST, et dans le cas où des champs HTML Utilisateur et Mot de
-      passe corrects sont présents, l'utilisateur sera connecté, et
-      l'URL originale protégée par mot de passe lui sera retournée en
-      tant que requête GET.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="inlinepreservebody" id="inlinepreservebody">Connexion à la volée avec
-    conservation du contenu</a></h2>
-
-      <p>Il existe une limite à la technique de connexion à la volée
-      décrite ci-dessus ; si un formulaire HTML POST entraîne une
-      demande d'authentification ou de réauthentification, le contenu du
-      formulaire original envoyé par le navigateur sera perdu. Cela peut
-      s'avérer plus ou moins gênant pour l'utilisateur final selon la
-      fonction du site web.</p>
-
-      <p>Comme solution à ce problème, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
-      permet d'intégrer la méthode et le contenu de la requête originale
-      dans le formulaire de connexion. Si l'authentification réussit,
-      Apache httpd pourra refaire une tentative avec la méthode et le contenu
-      originaux, tout en conservant l'état de la requête originale.</p>
-
-      <p>Pour mettre en oeuvre la conservation du contenu, vous devez
-      ajouter trois champs supplémentaires au formulaire de connexion
-      comme dans l'exemple suivant :</p>
-
-      <div class="example"><h3>Exemple de formulaire avec conservation du
-      contenu</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
-  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
-  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
-  &lt;input type="submit" name="login" value="Login" /&gt;
-  <br />  <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
-  &lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
-  &lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
-&lt;/form&gt;</pre>
-</div>
-
-      <p>La manière dont la méthode, le type MIME et le contenu de la
-      requête originale seront intégrés dans le formulaire de connexion
-      vont dépendre de la plate-forme et de la technologie utilisées au
-      sein du site web.
-      </p>
-
-      <p>Une option consiste à utiliser le module
-      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en association avec la directive
-      <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>, ainsi
-      qu'un script CGI adapté pour intégrer les variables dans le
-      formulaire.</p>
-
-      <p>Une autre option consiste à présenter le formulaire de
-      connexion en utilisant un script CGI ou une autre technologie
-      dynamique.</p>
-
-      <div class="example"><h3>Exemple avec script CGI</h3><pre class="prettyprint lang-config">        AuthFormProvider file
-        ErrorDocument 401 /cgi-bin/login.cgi
-        ...</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="loggingout" id="loggingout">Déconnexion</a></h2>
-
-      <p>Pour permettre à un utilisateur de se déconnecter d'une session
-      particulière, vous devez configurer une page pour qu'elle soit
-      traitée par le gestionnaire <var>form-logout-handler</var>. Tout
-      accès à cette URL va entraîner la suppression de l'Utilisateur et
-      du Mot de passe de la session courante, ce qui aura pour effet de
-      déconnecter l'utilisateur.</p>
-
-      <p>Vous pouvez spécifier une URL vers laquelle le navigateur sera
-      redirigé en cas de déconnection réussie, en définissant la
-      directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette
-      URL devra expliquer à l'utilisateur qu'il a été déconnecté, et lui
-      donner la possibilité de se connecter à nouveau.</p>
-
-      <div class="example"><h3>Exemple simple de configuration de la
-      déconnexion</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
-AuthName realm
-AuthFormLogoutLocation http://example.com/loggedout.html
-Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>Notez que la déconnexion d'un utilisateur ne supprime pas la
-      session ; elle supprime seulement l'utilisateur et le mot de passe
-      de la session. Si la session qui en résulte est vide, elle sera
-      probablement supprimée, mais ce n'est pas garanti. Si vous voulez
-      être sûr que la session sera supprimée, affectez une valeur faible
-      à la directive <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code>, par exemple 1
-      (affecter à cette directive la valeur zéro signifie une session
-      sans limite d'âge).
-      </p>
-
-      <div class="example"><h3>Exemple simple avec durée de validité de session
-      limitée</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
-AuthFormLogoutLocation http://example.com/loggedout.html
-Session On
-SessionMaxAge 1
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="urlencoding" id="urlencoding">Noms d'utilisateurs et mots de
-    passe</a></h2>
-    <p>Notez que la soumission d'un formulaire implique l'encodage URL
-    (URLEncoding) des données du formulaire, ici le nom d'utilisateur et
-    le mot de passe. Vous devez donc choisir des noms d'utilisateurs et
-    mots de passe qui ne contiennent pas de caractères susceptibles
-    d'être encodés URL lors de la soumission du formulaire, sous peine
-    d'obtenir des résultats inattendus.</p>
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authformauthoritative" id="authformauthoritative">Directive</a> <a name="AuthFormAuthoritative" id="AuthFormAuthoritative">AuthFormAuthoritative</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'autorisation et l'authentification sont confiés à
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformloginrequiredlocation" id="authformloginrequiredlocation">Directive</a> <a name="AuthFormLoginRequiredLocation" id="AuthFormLoginRequiredLocation">AuthFormLoginRequiredLocation</a></h2>
+<div class="directive-section"><h2><a name="authformloginrequiredlocation" id="authformloginrequiredlocation">Directive</a> <a name="AuthFormLoginRequiredLocation" id="AuthFormLoginRequiredLocation">AuthFormLoginRequiredLocation</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL de la page vers laquelle on doit être redirigé si une
+authentification est requise</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLoginRequiredLocation <var>url</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP
+Apache. L'interprétation des expressions rationnelles est supportée
+depuis la version 2.4.4.</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
+    spécifie l'URL vers laquelle l'utilisateur devra être
+    redirigé s'il n'est pas autorisé à accéder à une page. Sa valeur est
+    interprétée via l'interpréteur <a href="../expr.html">ap_expr</a>
+    avant d'être envoyée au client. Par défaut,
+    si un utilisateur n'est pas autorisé à accéder à une page, le code
+    de réponse HTTP <code>HTTP_UNAUTHORIZED</code> est renvoyé avec la
+    page spécifiée par la directive <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code>. La directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
+    permet de remplacer cette valeur par défaut.</p>
+
+    <p>Vous pouvez utiliser cette directive si vous voulez présenter une
+    page de connexion personnalisée à vos utilisateurs.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformloginsuccesslocation" id="authformloginsuccesslocation">Directive</a> <a name="AuthFormLoginSuccessLocation" id="AuthFormLoginSuccessLocation">AuthFormLoginSuccessLocation</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL de la page vers laquelle on doit être redirigé en cas
+de connexion réussie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLoginSuccessLocation <var>url</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP
+Apache. L'interprétation des expressions rationnelles est supportée
+depuis la version 2.4.4.</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
+    spécifie l'URL vers laquelle l'utilisateur doit être
+    redirigé en cas de connexion réussie. Sa valeur est
+    interprétée via l'interpréteur <a href="../expr.html">ap_expr</a>
+    avant d'être envoyée au client. L'effet de cette directive
+    peut être annulé si l'on a défini un champ de formulaire contenant
+    une autre URL à l'aide de la directive <code class="directive"><a href="#authformlocation">AuthFormLocation</a></code>.</p>
+
+    <p>Vous pouvez utiliser cette directive si vous possédez une URL de
+    connexion personnalisée, et si vous n'avez pas intégré la page de
+    destination dans le formulaire de connexion.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformlogoutlocation" id="authformlogoutlocation">Directive</a> <a name="AuthFormLogoutLocation" id="AuthFormLogoutLocation">AuthFormLogoutLocation</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL vers laquelle un utilisateur devra être redirigé
+après s'être déconnecté</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLogoutLocation <var>uri</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP
+Apache. L'interprétation des expressions rationnelles est supportée
+depuis la version 2.4.4.</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>
+    spécifie l'URL de la page du serveur vers laquelle l'utilisateur
+    devra être redirigé s'il se déconnecte. Sa valeur est
+    interprétée via l'interpréteur <a href="../expr.html">ap_expr</a>
+    avant d'être envoyée au client.</p>
+
+    <p>Lorsqu'un accès est tenté sur un URI traité par le gestionnaire
+    <code>form-logout-handler</code>, la page spécifiée par cette
+    directive sera présentée à l'utilisateur final. Par exemple :</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /logout&gt;
+    SetHandler form-logout-handler
+    AuthFormLogoutLocation http://example.com/loggedout.html
+    Session on
+    #...
+&lt;/Location&gt;</pre>
+</div>
+
+    <p>Si un utilisateur tente d'accéder à l'URI <var>/logout/</var>, il
+    sera déconnecté, et la page <var>/loggedout.html</var> lui sera
+    présentée. Assurez-vous que la page <var>loggedout.html</var> n'est
+    pas protégée par mot de passe, car dans le cas contraire, elle ne
+    serait pas affichée.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformmethod" id="authformmethod">Directive</a> <a name="AuthFormMethod" id="AuthFormMethod">AuthFormMethod</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire contenant la méthode de la
+requête à effectuer en cas de connexion réussie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormMethod <var>nom du champ</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_method</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>
+    spécifie le nom du champ HTML qui, s'il existe, contiendra le type
+    MIME de la requête à effectuer en cas de connexion réussie.</p>
+
+    <p>En ajoutant au formulaire les champs décrits dans <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>, <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> et <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, un site web sera en
+    mesure de relancer une requête qui a été éventuellement interrompue
+    par l'écran de connexion, ou par l'expiration d'un délai de
+    session.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformmimetype" id="authformmimetype">Directive</a> <a name="AuthFormMimetype" id="AuthFormMimetype">AuthFormMimetype</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire contenant le type MIME du
+corps de la requête à effectuer en cas de connexion
+réussie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormMimetype <var>nom du champ</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_mimetype</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code>
+    spécifie le nom du champ HTML qui, s'il existe, contiendra le type
+    MIME de la requête à effectuer en cas de connexion réussie.</p>
+
+    <p>En ajoutant au formulaire les champs décrits dans <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>, <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> et <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, un site web sera en
+    mesure de relancer une requête qui a été éventuellement interrompue
+    par l'écran de connexion, ou par l'expiration d'un délai de
+    session.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformpassword" id="authformpassword">Directive</a> <a name="AuthFormPassword" id="AuthFormPassword">AuthFormPassword</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire qui contient le mot de passe
+de connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormPassword <var>nom du champ</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_password</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformpassword">AuthFormPassword</a></code> permet de
+    spécifier le nom du champ HTML qui, s'il existe, contiendra le mot
+    de passe qui sera utilisé pour la connexion.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformprovider" id="authformprovider">Directive</a> <a name="AuthFormProvider" id="AuthFormProvider">AuthFormProvider</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le(s) fournisseur(s) d'authentification pour la
+zone concernée</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormProvider <var>nom fournisseur</var>
+[<var>nom fournisseur</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormProvider file</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+</table>
+    <p>La directive <code class="directive">AuthFormProvider</code> permet de
+    définir quel fournisseur sera utilisé pour authentifier les
+    utilisateurs pour la zone concernée. Le fournisseur par défaut
+    <code>file</code> est implémenté par le module
+    <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. Assurez-vous que le fournisseur
+    choisi soit bien présent dans le serveur.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /secure&gt;
+    AuthType form
+    AuthName "private area"
+    AuthFormProvider  dbm
+    AuthDBMType        SDBM
+    AuthDBMUserFile    /www/etc/dbmpasswd
+    Require            valid-user
+    #...
+&lt;/Location&gt;</pre>
+</div>
+
+    <p>Les différents fournisseurs sont implémentés par les modules
+    <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>, <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>,
+    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> et
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformsitepassphrase" id="authformsitepassphrase">Directive</a> <a name="AuthFormSitePassphrase" id="AuthFormSitePassphrase">AuthFormSitePassphrase</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Court-circuite l'authentification pour les sites à fort
+trafic</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormSitePassphrase <var>secret</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
+</table>
+    <p>La directive <code class="directive"><a href="#authformsitepassphrase">AuthFormSitePassphrase</a></code>
+    spécifie un mot de passe qui, s'il est présent dans la session
+    utilisateur, indique à Apache httpd de court-circuiter l'authentification
+    pour l'URL considérée. On peut l'utiliser dans le cas de sites web à
+    fort trafic afin de réduire la charge induite sur l'infrastructure
+    d'authentification.</p>
+
+    <p>On peut insérer le mot de passe dans une session utilisateur en
+    ajoutant cette directive à la configuration concernant le
+    gestionnaire <var>form-login-handler</var>. Le gestionnaire
+    <var>form-login-handler</var>, quant à lui, effectuera toujours les
+    vérifications d'authentification, qu'un mot de passe soit spécifié
+    ou non.</p>
+
+    <div class="warning"><h3>Avertissement</h3>
+      <p>Si la session est présentée à l'utilisateur à l'aide du module
+      <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, et si la session n'est pas
+      protégée par le module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>, le mot
+      de passe peut faire l'objet d'une attaque de type dictionnaire.
+      Quelle que soit la configuration de la session, assurez-vous que
+      cette directive n'est pas utilisée dans un espace d'URLs contenant
+      des données privées, ou à partir desquelles des transactions
+      sensibles pourraient être menées. En tout état de cause, vous
+      devez être conscient des risques encourus avant de l'utiliser.</p>
+    </div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformsize" id="authformsize">Directive</a> <a name="AuthFormSize" id="AuthFormSize">AuthFormSize</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL de la page vers laquelle on doit être redirigé si une
-authentification est requise</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLoginRequiredLocation <var>url</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La taille maximale en octets du formulaire dont seront
+extraites les informations de connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormSize <var>taille</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>8192</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP
-Apache. L'interprétation des expressions rationnelles est supportée
-depuis la version 2.4.4.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
 </table>
-    <p>La directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
-    spécifie l'URL vers laquelle l'utilisateur devra être
-    redirigé s'il n'est pas autorisé à accéder à une page. Sa valeur est
-    interprétée via l'interpréteur <a href="../expr.html">ap_expr</a>
-    avant d'être envoyée au client. Par défaut,
-    si un utilisateur n'est pas autorisé à accéder à une page, le code
-    de réponse HTTP <code>HTTP_UNAUTHORIZED</code> est renvoyé avec la
-    page spécifiée par la directive <code class="directive"><a href="../mod/core.html#errordocument">ErrorDocument</a></code>. La directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
-    permet de remplacer cette valeur par défaut.</p>
+    <p>La directive <code class="directive"><a href="#authformsize">AuthFormSize</a></code> spécifie
+    la taille maximale du corps de la requête qui sera utilisée pour
+    trouver le formulaire de connexion.</p>
 
-    <p>Vous pouvez utiliser cette directive si vous voulez présenter une
-    page de connexion personnalisée à vos utilisateurs.</p>
+    <p>Si une requête de connexion entrante possède une taille
+    supérieure à cette valeur, elle sera rejetée avec le code de réponse
+    HTTP <code>HTTP_REQUEST_TOO_LARGE</code>.</p>
+
+    <p>Si vous avez ajouté au formulaire des champs décrits dans <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>, <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> et <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, il est recommandé
+    de définir cette directive à une valeur similaire à celle de la
+    directive <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>.</p>
 
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformloginsuccesslocation" id="authformloginsuccesslocation">Directive</a> <a name="AuthFormLoginSuccessLocation" id="AuthFormLoginSuccessLocation">AuthFormLoginSuccessLocation</a></h2>
+<div class="directive-section"><h2><a name="authformusername" id="authformusername">Directive</a> <a name="AuthFormUsername" id="AuthFormUsername">AuthFormUsername</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL de la page vers laquelle on doit être redirigé en cas
-de connexion réussie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLoginSuccessLocation <var>url</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire qui contient le nom de
+connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormUsername <var>nom du champ</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_username</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP
-Apache. L'interprétation des expressions rationnelles est supportée
-depuis la version 2.4.4.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.3 du serveur HTTP Apache</td></tr>
 </table>
-    <p>La directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
-    spécifie l'URL vers laquelle l'utilisateur doit être
-    redirigé en cas de connexion réussie. Sa valeur est
-    interprétée via l'interpréteur <a href="../expr.html">ap_expr</a>
-    avant d'être envoyée au client. L'effet de cette directive
-    peut être annulé si l'on a défini un champ de formulaire contenant
-    une autre URL à l'aide de la directive <code class="directive"><a href="#authformlocation">AuthFormLocation</a></code>.</p>
+    <p>La directive <code class="directive"><a href="#authformusername">AuthFormUsername</a></code> permet de
+    spécifier le nom du champ HTML qui, s'il existe, contiendra le nom
+    d'utilisateur qui sera utilisé pour la connexion.</p>
 
-    <p>Vous pouvez utiliser cette directive si vous possédez une URL de
-    connexion personnalisée, et si vous n'avez pas intégré la page de
-    destination dans le formulaire de connexion.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicconfig" id="basicconfig">Configuration de base</a></h2>
 
+      <p>Pour protéger une URL particulière avec le module
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, vous devez déterminer l'endroit où
+      vous allez stocker votre <var>session</var>, ainsi que la méthode
+      d'authentification. Dans cet exemple simple, les informations de
+      connexion sont stockées dans une session à l'aide du module
+      <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, et l'authentification utilise
+      un fichier en s'appuyant sur le module
+      <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. Si l'authentification échoue,
+      l'utilisateur dera redirigé vers la page du formulaire de
+      connexion.</p>
 
+      <div class="example"><h3>Exemple simple</h3><pre class="prettyprint lang-config">AuthFormProvider file
+AuthUserFile conf/passwd
+AuthType form
+AuthName realm
+AuthFormLoginRequiredLocation http://example.com/login.html
+Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformlogoutlocation" id="authformlogoutlocation">Directive</a> <a name="AuthFormLogoutLocation" id="AuthFormLogoutLocation">AuthFormLogoutLocation</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL vers laquelle un utilisateur devra être redirigé
-après s'être déconnecté</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLogoutLocation <var>uri</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP
-Apache. L'interprétation des expressions rationnelles est supportée
-depuis la version 2.4.4.</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>
-    spécifie l'URL de la page du serveur vers laquelle l'utilisateur
-    devra être redirigé s'il se déconnecte. Sa valeur est
-    interprétée via l'interpréteur <a href="../expr.html">ap_expr</a>
-    avant d'être envoyée au client.</p>
 
-    <p>Lorsqu'un accès est tenté sur un URI traité par le gestionnaire
-    <code>form-logout-handler</code>, la page spécifiée par cette
-    directive sera présentée à l'utilisateur final. Par exemple :</p>
+      <p>L'authentification <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> est activée
+      en affectant la valeur <var>form</var> à la directive <code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code>. Les directives
+      <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> et
+      <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code>
+      spécifient que les noms d'utilisateurs et mots de passe seront
+      vérifiés en utilisant le fichier choisi.</p>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /logout&gt;
-    SetHandler form-logout-handler
-    AuthFormLogoutLocation http://example.com/loggedout.html
-    Session on
-    #...
+      <p>Les directives <code class="directive"><a href="../mod/mod_session.html#session">Session</a></code>, <code class="directive"><a href="../mod/mod_session_cookie.html#sessioncookiename">SessionCookieName</a></code> et
+      <code class="directive"><a href="../mod/mod_session_crypto.html#sessioncryptopassphrase">SessionCryptoPassphrase</a></code>
+      créent une session chiffrée stockée dans un cookie HTTP au niveau
+      du navigateur. Pour plus d'informations à propos des différentes
+      options de configuration des sessions, reportez-vous à la
+      documentation du module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
+
+      <p>Dans l'exemple simple ci-dessus, une URL a été protégée par
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, mais on doit maintenant fournir
+      à l'utilisateur un moyen d'entrer un nom et un mot de passe. À cet
+      effet, on peut soit écrire une page de connexion indépendante
+      dédiée, soit inclure le formulaire de connexion dans la page
+      courante.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="standalone" id="standalone">Page de connexion dédiée</a></h2>
+
+      <p>Le formulaire de connexion peut être contenu dans une page
+      indépendante, ou être inclus dans la page courante. </p>
+
+      <p>Lorsque la connexion s'effectue à partir d'une page
+      indépendante et si la tentative d'authentification échoue,
+      l'utilisateur doit être redirigé vers un formulaire de connexion,
+      créé à cet effet sur le site web, en utilisant la directive
+      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>.
+      En général, la page de connexion contiendra un formulaire HTML
+      demandant à l'utilisateur de fournir un nom et un mot de passe.</p>
+
+      <div class="example"><h3>Exemple de formulaire de connexion</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+&lt;/form&gt;</pre>
+</div>
+
+      <p>La partie où s'effectue la connexion proprement dite est
+      traitée par le gestionnaire <var>form-login-handler</var>.
+      L'action de ce formulaire doit pointer vers ce gestionnaire, ce
+      que l'on configure dans Apache httpd comme suit :</p>
+
+      <div class="example"><h3>Exemple de configuration du gestionnaire de
+      formulaire de connexion</h3><pre class="prettyprint lang-config">&lt;Location /dologin.html&gt;
+    SetHandler form-login-handler
+    AuthFormLoginRequiredLocation http://example.com/login.html
+    AuthFormLoginSuccessLocation http://example.com/success.html
+    AuthFormProvider file
+    AuthUserFile conf/passwd
+    AuthType form
+    AuthName realm
+    Session On
+    SessionCookieName session path=/
+    SessionCryptoPassphrase secret
 &lt;/Location&gt;</pre>
 </div>
 
-    <p>Si un utilisateur tente d'accéder à l'URI <var>/logout/</var>, il
-    sera déconnecté, et la page <var>/loggedout.html</var> lui sera
-    présentée. Assurez-vous que la page <var>loggedout.html</var> n'est
-    pas protégée par mot de passe, car dans le cas contraire, elle ne
-    serait pas affichée.</p>
+      <p>L'URL spécifiée par la directive
+      <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>
+      référencera en général une page expliquant à l'utilisateur que sa
+      tentative de connexion a échoué, et qu'il doit la renouveler. La
+      directive <code class="directive"><a href="#authformloginsuccesslocation">AuthFormLoginSuccessLocation</a></code>
+      spécifie l'URL vers laquelle l'utilisateur doit être redirigé s'il
+      s'est authentifié avec succès.</p>
+
+      <p>Alternativement, l'URL vers laquelle doit être redirigé
+      l'utilisateur s'il s'est authentifié avec succès peut être
+      intégrée dans le formulaire de connexion, comme dans l'exemple
+      ci-dessous. Il en découle que le même gestionnaire
+      <var>form-login-handler</var> pourra être utilisé pour différentes
+      zones du site web.</p>
+
+      <div class="example"><h3>Exemple de formulaire d'authentification multizone</h3><pre class="prettyprint lang-html">&lt;form method="POST" action="/dologin.html"&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+  &lt;input type="hidden" name="httpd_location" value="http://example.com/success.html" /&gt;
+&lt;/form&gt;</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="inline" id="inline">Connexion à la volée</a></h2>
+
+      <div class="warning"><h3>Avertissement</h3>
+        <p>Il existe un risque, dans certaines circonstances, que le
+       formulaire de connexion configuré pour une connexion à la volée
+       soit soumis plusieurs fois, révélant de ce fait les paramètres
+       de connexion à l'application sous-jacente. L'administrateur doit
+       s'assurer que cette dernière est correctement sécurisée afin
+       d'éviter les éventuels abus. En cas de doute, utilisez une page
+       de connexion indépendante dédiée.</p>
+      </div>
+
+      <p>Comme alternative à la page de connexion dédiée pour un site
+      web, il est possible de configurer <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
+      pour authentifier les utilisateurs à la volée, sans les rediriger
+      vers une autre page, ce qui permet de conserver l'état de la page
+      courante au cours de la tentative de connexion. Ceci peut s'avérer
+      utile dans le cas d'une session limitée dans le temps, si le délai
+      de la session a expiré pendant la requête de l'utilisateur. Ce
+      dernier peut alors se réauthentifier à la même place, et
+      poursuivre son activité à partir du point où il en était resté.</p>
+
+      <p>Si un utilisateur non authentifié tente d'accéder à une page
+      protégée par <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>, et si ce dernier
+      n'est pas configuré avec une directive <code class="directive"><a href="#authformloginrequiredlocation">AuthFormLoginRequiredLocation</a></code>,
+      un code de statut <var>HTTP_UNAUTHORIZED</var> est renvoyé vers le
+      navigateur, indiquant à l'utilisateur qu'il n'est pas autorisé à
+      accéder à cette page.</p>
 
+      <p>Pour configurer l'authentification à la volée, l'administrateur
+      remplace le message d'erreur renvoyé par le code de statut
+      <var>HTTP_UNAUTHORIZED</var> par un message d'erreur personnalisé
+      contenant le formulaire de connexion comme suit :</p>
 
+      <div class="example"><h3>Exemple simple d'authentification à la volée</h3><pre class="prettyprint lang-config">AuthFormProvider file
+ErrorDocument 401 /login.shtml
+AuthUserFile conf/passwd
+AuthType form
+AuthName realm
+AuthFormLoginRequiredLocation http://example.com/login.html
+Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformmethod" id="authformmethod">Directive</a> <a name="AuthFormMethod" id="AuthFormMethod">AuthFormMethod</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire contenant la méthode de la
-requête à effectuer en cas de connexion réussie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormMethod <var>nom du champ</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_method</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>
-    spécifie le nom du champ HTML qui, s'il existe, contiendra le type
-    MIME de la requête à effectuer en cas de connexion réussie.</p>
 
-    <p>En ajoutant au formulaire les champs décrits dans <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>, <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> et <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, un site web sera en
-    mesure de relancer une requête qui a été éventuellement interrompue
-    par l'écran de connexion, ou par l'expiration d'un délai de
-    session.</p>
+      <p>La page du message d'erreur doit contenir un formulaire de
+      connexion dont la propriété action est vide, comme dans l'exemple
+      ci-dessous. Ceci a pour effet de soumettre le formulaire à l'URL
+      protégée originale, cette dernière n'ayant pas besoin d'être
+      connue de la page en cours.</p>
 
+      <div class="example"><h3>Exemple de formulaire de connexion à la volée</h3><pre class="prettyprint lang-html">&lt;form method="POST" <strong>action=""</strong>&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+&lt;/form&gt;</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformmimetype" id="authformmimetype">Directive</a> <a name="AuthFormMimetype" id="AuthFormMimetype">AuthFormMimetype</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire contenant le type MIME du
-corps de la requête à effectuer en cas de connexion
-réussie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormMimetype <var>nom du champ</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_mimetype</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code>
-    spécifie le nom du champ HTML qui, s'il existe, contiendra le type
-    MIME de la requête à effectuer en cas de connexion réussie.</p>
 
-    <p>En ajoutant au formulaire les champs décrits dans <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>, <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> et <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, un site web sera en
-    mesure de relancer une requête qui a été éventuellement interrompue
-    par l'écran de connexion, ou par l'expiration d'un délai de
-    session.</p>
+      <p>Lorsque l'utilisateur final a entré ses informations de
+      connexion, le formulaire effectue une requête HTTP POST pour l'URL
+      originale protégée par mot de passe.
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> va alors intercepter cette requête
+      POST, et dans le cas où des champs HTML Utilisateur et Mot de
+      passe corrects sont présents, l'utilisateur sera connecté, et
+      l'URL originale protégée par mot de passe lui sera retournée en
+      tant que requête GET.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformpassword" id="authformpassword">Directive</a> <a name="AuthFormPassword" id="AuthFormPassword">AuthFormPassword</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire qui contient le mot de passe
-de connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormPassword <var>nom du champ</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_password</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformpassword">AuthFormPassword</a></code> permet de
-    spécifier le nom du champ HTML qui, s'il existe, contiendra le mot
-    de passe qui sera utilisé pour la connexion.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="inlinepreservebody" id="inlinepreservebody">Connexion à la volée avec
+    conservation du contenu</a></h2>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformprovider" id="authformprovider">Directive</a> <a name="AuthFormProvider" id="AuthFormProvider">AuthFormProvider</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le(s) fournisseur(s) d'authentification pour la
-zone concernée</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormProvider <var>nom fournisseur</var>
-[<var>nom fournisseur</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormProvider file</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-</table>
-    <p>La directive <code class="directive">AuthFormProvider</code> permet de
-    définir quel fournisseur sera utilisé pour authentifier les
-    utilisateurs pour la zone concernée. Le fournisseur par défaut
-    <code>file</code> est implémenté par le module
-    <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. Assurez-vous que le fournisseur
-    choisi soit bien présent dans le serveur.</p>
+      <p>Il existe une limite à la technique de connexion à la volée
+      décrite ci-dessus ; si un formulaire HTML POST entraîne une
+      demande d'authentification ou de réauthentification, le contenu du
+      formulaire original envoyé par le navigateur sera perdu. Cela peut
+      s'avérer plus ou moins gênant pour l'utilisateur final selon la
+      fonction du site web.</p>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /secure&gt;
-    AuthType form
-    AuthName "private area"
-    AuthFormProvider  dbm
-    AuthDBMType        SDBM
-    AuthDBMUserFile    /www/etc/dbmpasswd
-    Require            valid-user
-    #...
-&lt;/Location&gt;</pre>
-</div>
+      <p>Comme solution à ce problème, <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>
+      permet d'intégrer la méthode et le contenu de la requête originale
+      dans le formulaire de connexion. Si l'authentification réussit,
+      Apache httpd pourra refaire une tentative avec la méthode et le contenu
+      originaux, tout en conservant l'état de la requête originale.</p>
 
-    <p>Les différents fournisseurs sont implémentés par les modules
-    <code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>, <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>,
-    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> et
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p>
+      <p>Pour mettre en oeuvre la conservation du contenu, vous devez
+      ajouter trois champs supplémentaires au formulaire de connexion
+      comme dans l'exemple suivant :</p>
 
+      <div class="example"><h3>Exemple de formulaire avec conservation du
+      contenu</h3><pre class="prettyprint lang-html">&lt;form method="POST" action=""&gt;
+  Username: &lt;input type="text" name="httpd_username" value="" /&gt;
+  Password: &lt;input type="password" name="httpd_password" value="" /&gt;
+  &lt;input type="submit" name="login" value="Login" /&gt;
+  <br />  <strong>&lt;input type="hidden" name="httpd_method" value="POST" /&gt;
+  &lt;input type="hidden" name="httpd_mimetype" value="application/x-www-form-urlencoded" /&gt;
+  &lt;input type="hidden" name="httpd_body" value="name1=value1&amp;name2=value2" /&gt;</strong><br />
+&lt;/form&gt;</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformsitepassphrase" id="authformsitepassphrase">Directive</a> <a name="AuthFormSitePassphrase" id="AuthFormSitePassphrase">AuthFormSitePassphrase</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Court-circuite l'authentification pour les sites à fort
-trafic</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormSitePassphrase <var>secret</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformsitepassphrase">AuthFormSitePassphrase</a></code>
-    spécifie un mot de passe qui, s'il est présent dans la session
-    utilisateur, indique à Apache httpd de court-circuiter l'authentification
-    pour l'URL considérée. On peut l'utiliser dans le cas de sites web à
-    fort trafic afin de réduire la charge induite sur l'infrastructure
-    d'authentification.</p>
 
-    <p>On peut insérer le mot de passe dans une session utilisateur en
-    ajoutant cette directive à la configuration concernant le
-    gestionnaire <var>form-login-handler</var>. Le gestionnaire
-    <var>form-login-handler</var>, quant à lui, effectuera toujours les
-    vérifications d'authentification, qu'un mot de passe soit spécifié
-    ou non.</p>
+      <p>La manière dont la méthode, le type MIME et le contenu de la
+      requête originale seront intégrés dans le formulaire de connexion
+      vont dépendre de la plate-forme et de la technologie utilisées au
+      sein du site web.
+      </p>
 
-    <div class="warning"><h3>Avertissement</h3>
-      <p>Si la session est présentée à l'utilisateur à l'aide du module
-      <code class="module"><a href="../mod/mod_session_cookie.html">mod_session_cookie</a></code>, et si la session n'est pas
-      protégée par le module <code class="module"><a href="../mod/mod_session_crypto.html">mod_session_crypto</a></code>, le mot
-      de passe peut faire l'objet d'une attaque de type dictionnaire.
-      Quelle que soit la configuration de la session, assurez-vous que
-      cette directive n'est pas utilisée dans un espace d'URLs contenant
-      des données privées, ou à partir desquelles des transactions
-      sensibles pourraient être menées. En tout état de cause, vous
-      devez être conscient des risques encourus avant de l'utiliser.</p>
-    </div>
+      <p>Une option consiste à utiliser le module
+      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en association avec la directive
+      <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>, ainsi
+      qu'un script CGI adapté pour intégrer les variables dans le
+      formulaire.</p>
 
+      <p>Une autre option consiste à présenter le formulaire de
+      connexion en utilisant un script CGI ou une autre technologie
+      dynamique.</p>
 
+      <div class="example"><h3>Exemple avec script CGI</h3><pre class="prettyprint lang-config">        AuthFormProvider file
+        ErrorDocument 401 /cgi-bin/login.cgi
+        ...</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformsize" id="authformsize">Directive</a> <a name="AuthFormSize" id="AuthFormSize">AuthFormSize</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La taille maximale en octets du formulaire dont seront
-extraites les informations de connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormSize <var>taille</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>8192</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.0 du serveur HTTP Apache</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformsize">AuthFormSize</a></code> spécifie
-    la taille maximale du corps de la requête qui sera utilisée pour
-    trouver le formulaire de connexion.</p>
 
-    <p>Si une requête de connexion entrante possède une taille
-    supérieure à cette valeur, elle sera rejetée avec le code de réponse
-    HTTP <code>HTTP_REQUEST_TOO_LARGE</code>.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="loggingout" id="loggingout">Déconnexion</a></h2>
 
-    <p>Si vous avez ajouté au formulaire des champs décrits dans <code class="directive"><a href="#authformmethod">AuthFormMethod</a></code>, <code class="directive"><a href="#authformmimetype">AuthFormMimetype</a></code> et <code class="directive"><a href="#authformbody">AuthFormBody</a></code>, il est recommandé
-    de définir cette directive à une valeur similaire à celle de la
-    directive <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>.</p>
+      <p>Pour permettre à un utilisateur de se déconnecter d'une session
+      particulière, vous devez configurer une page pour qu'elle soit
+      traitée par le gestionnaire <var>form-logout-handler</var>. Tout
+      accès à cette URL va entraîner la suppression de l'Utilisateur et
+      du Mot de passe de la session courante, ce qui aura pour effet de
+      déconnecter l'utilisateur.</p>
 
+      <p>Vous pouvez spécifier une URL vers laquelle le navigateur sera
+      redirigé en cas de déconnection réussie, en définissant la
+      directive <code class="directive"><a href="#authformlogoutlocation">AuthFormLogoutLocation</a></code>. Cette
+      URL devra expliquer à l'utilisateur qu'il a été déconnecté, et lui
+      donner la possibilité de se connecter à nouveau.</p>
 
+      <div class="example"><h3>Exemple simple de configuration de la
+      déconnexion</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
+AuthName realm
+AuthFormLogoutLocation http://example.com/loggedout.html
+Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformusername" id="authformusername">Directive</a> <a name="AuthFormUsername" id="AuthFormUsername">AuthFormUsername</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire qui contient le nom de
-connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormUsername <var>nom du champ</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_username</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.3 du serveur HTTP Apache</td></tr>
-</table>
-    <p>La directive <code class="directive"><a href="#authformusername">AuthFormUsername</a></code> permet de
-    spécifier le nom du champ HTML qui, s'il existe, contiendra le nom
-    d'utilisateur qui sera utilisé pour la connexion.</p>
 
+      <p>Notez que la déconnexion d'un utilisateur ne supprime pas la
+      session ; elle supprime seulement l'utilisateur et le mot de passe
+      de la session. Si la session qui en résulte est vide, elle sera
+      probablement supprimée, mais ce n'est pas garanti. Si vous voulez
+      être sûr que la session sera supprimée, affectez une valeur faible
+      à la directive <code class="directive"><a href="../mod/mod_session.html#sessionmaxage">SessionMaxAge</a></code>, par exemple 1
+      (affecter à cette directive la valeur zéro signifie une session
+      sans limite d'âge).
+      </p>
+
+      <div class="example"><h3>Exemple simple avec durée de validité de session
+      limitée</h3><pre class="prettyprint lang-config">SetHandler form-logout-handler
+AuthFormLogoutLocation http://example.com/loggedout.html
+Session On
+SessionMaxAge 1
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
 </div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="urlencoding" id="urlencoding">Noms d'utilisateurs et mots de
+    passe</a></h2>
+    <p>Notez que la soumission d'un formulaire implique l'encodage URL
+    (URLEncoding) des données du formulaire, ici le nom d'utilisateur et
+    le mot de passe. Vous devez donc choisir des noms d'utilisateurs et
+    mots de passe qui ne contiennent pas de caractères susceptibles
+    d'être encodés URL lors de la soumission du formulaire, sous peine
+    d'obtenir des résultats inattendus.</p>
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_auth_form.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 2b5d57399b339baf7404bf35ea4ae8e29499817e..c023922b9e8a2ad85581f7c105a0c673ad1df47d 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#example">Example</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="example" id="example">Example</a></h2>
-    <p>The example below is combined with "normal" htpasswd-file based
-    authentication and allows users in additionally as 'guests' with the
-    following properties:</p>
-
-    <ul>
-      <li>It insists that the user enters a userID.
-      (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
-
-      <li>It insists that the user enters a password.
-      (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
-
-      <li>The password entered must be a valid email address, <em>i.e.</em>
-      contain at least one '@' and a '.'.
-      (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
-
-      <li>The userID must be one of <code>anonymous guest www test
-      welcome</code> and comparison is <strong>not</strong> case
-      sensitive. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
-
-      <li>And the Email addresses entered in the passwd field are
-      logged to the error log file.
-      (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
-    </ul>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory "/var/www/html/private"&gt;
-    AuthName "Use 'anonymous' &amp; Email address for guest entry"
-    AuthType Basic
-    AuthBasicProvider file anon
-    AuthUserFile "/path/to/your/.htpasswd"
-    
-    Anonymous_NoUserID off
-    Anonymous_MustGiveEmail on
-    Anonymous_VerifyEmail on
-    Anonymous_LogEmail on
-    Anonymous anonymous guest www test welcome
-    
-    Require valid-user
-&lt;/Directory&gt;</pre>
-</div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies userIDs that are allowed access without
@@ -209,6 +166,49 @@ formatted email address</td></tr>
     at least one '@' and a '.' to encourage users to enter valid email
     addresses (see the above <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>).</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="example" id="example">Example</a></h2>
+    <p>The example below is combined with "normal" htpasswd-file based
+    authentication and allows users in additionally as 'guests' with the
+    following properties:</p>
+
+    <ul>
+      <li>It insists that the user enters a userID.
+      (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
+
+      <li>It insists that the user enters a password.
+      (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
+
+      <li>The password entered must be a valid email address, <em>i.e.</em>
+      contain at least one '@' and a '.'.
+      (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
+
+      <li>The userID must be one of <code>anonymous guest www test
+      welcome</code> and comparison is <strong>not</strong> case
+      sensitive. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
+
+      <li>And the Email addresses entered in the passwd field are
+      logged to the error log file.
+      (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
+    </ul>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory "/var/www/html/private"&gt;
+    AuthName "Use 'anonymous' &amp; Email address for guest entry"
+    AuthType Basic
+    AuthBasicProvider file anon
+    AuthUserFile "/path/to/your/.htpasswd"
+    
+    Anonymous_NoUserID off
+    Anonymous_MustGiveEmail on
+    Anonymous_VerifyEmail on
+    Anonymous_LogEmail on
+    Anonymous anonymous guest www test welcome
+    
+    Require valid-user
+&lt;/Directory&gt;</pre>
+</div>
 </div>
 </div>
 <div class="bottomlang">
index e3cd69bd4633b09de6e13503226c50b6b0ec97fa..66b19f8a2c744609ca31f2a0f9ffe690a9d12936 100644 (file)
@@ -73,51 +73,6 @@ prot
 <li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="example" id="example">Exemple</a></h2>
-    <p>L'exemple ci-dessous présente un exemple de combinaison avec
-    l'authentification à base de fichier htpasswd "normale", et permet
-    la connexion d'utilisateurs en tant qu'invités avec les propriétés
-    suivantes :</p>
-
-    <ul>
-      <li>Il incite l'utilisateur à fournir un identifiant.
-      (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
-
-      <li>Il incite l'utilisateur à fournir un mot de passe.
-      (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
-
-      <li>Le mot de passe fourni doit être une adresse email valide,
-      c'est à dire contenant au moins un '@' et un '.'.
-      (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
-
-      <li>Les valeurs possibles pour l'identifiant utilisateur sont
-      <code>anonymous, guest, www, test ou welcome</code>, et la
-      vérification n'est <strong>pas</strong> sensible à la casse.
-      (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
-
-      <li>Les adresses email entrées dans le champ passwd sont
-      enregistrées dans le fichier journal des erreurs.
-      (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
-    </ul>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Directory /var/www/html/private&gt;
-    AuthName "Use 'anonymous' &amp; Email address for guest entry"
-    AuthType Basic
-    AuthBasicProvider file anon
-    AuthUserFile /path/to/your/.htpasswd
-
-    Anonymous_NoUserID off
-    Anonymous_MustGiveEmail on
-    Anonymous_VerifyEmail on
-    Anonymous_LogEmail on
-    Anonymous anonymous guest www test welcome
-
-    Require valid-user
-&lt;/Directory&gt;</pre>
-</div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="anonymous" id="anonymous">Directive</a> <a name="Anonymous" id="Anonymous">Anonymous</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la liste des identifiants utilisateur autorisés à
@@ -226,6 +181,51 @@ email fournie comme mot de passe est correct</td></tr>
     '.' afin d'inciter les utilisateurs à fournir des adresses email
     valides (voir ci-dessus la directive <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>).</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="example" id="example">Exemple</a></h2>
+    <p>L'exemple ci-dessous présente un exemple de combinaison avec
+    l'authentification à base de fichier htpasswd "normale", et permet
+    la connexion d'utilisateurs en tant qu'invités avec les propriétés
+    suivantes :</p>
+
+    <ul>
+      <li>Il incite l'utilisateur à fournir un identifiant.
+      (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
+
+      <li>Il incite l'utilisateur à fournir un mot de passe.
+      (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
+
+      <li>Le mot de passe fourni doit être une adresse email valide,
+      c'est à dire contenant au moins un '@' et un '.'.
+      (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
+
+      <li>Les valeurs possibles pour l'identifiant utilisateur sont
+      <code>anonymous, guest, www, test ou welcome</code>, et la
+      vérification n'est <strong>pas</strong> sensible à la casse.
+      (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
+
+      <li>Les adresses email entrées dans le champ passwd sont
+      enregistrées dans le fichier journal des erreurs.
+      (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
+    </ul>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Directory /var/www/html/private&gt;
+    AuthName "Use 'anonymous' &amp; Email address for guest entry"
+    AuthType Basic
+    AuthBasicProvider file anon
+    AuthUserFile /path/to/your/.htpasswd
+
+    Anonymous_NoUserID off
+    Anonymous_MustGiveEmail on
+    Anonymous_VerifyEmail on
+    Anonymous_LogEmail on
+    Anonymous anonymous guest www test welcome
+
+    Require valid-user
+&lt;/Directory&gt;</pre>
+</div>
 </div>
 </div>
 <div class="bottomlang">
index 69e1c4def88a35830ef65b8811d0c021982b4111..0e8009e9acf92a5311e559bdd814d6f55503689a 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#example">例</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="example" id="example">例</a></h2>
-    <p>以下の例は「普通」の htpasswd ファイルに基づいた認証と組み合わされて
-    おり、以下の要件を見たすユーザを「ゲスト」として許可します:</p>
-
-    <ul>
-      <li>ユーザは userID を入力しなければなりません。
-      (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
-
-      <li>ユーザはパスワードを入力しなければなりません。
-      (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
-
-      <li>入力されたパスワードは有効な電子メールアドレスでなければ
-      なりません。<em>すなわち</em>、少くとも一つの '@' と '.' が
-      含まれている必要があります。
-      (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
-
-      <li>userID は <code>anonymous guest www test
-      welcome</code> のどれかでなければなりません。
-      ユーザ名の比較は大文字小文字を区別<strong>しません。</strong></li>
-
-      <li>パスワード欄に入力された電子メールアドレスはエラーログファイルに
-      ロギングされます。
-      (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
-    </ul>
-
-    <div class="example"><h3>例</h3><pre class="prettyprint lang-config">&lt;Directory /var/www/html/private&gt;
-    AuthName "Use 'anonymous' &amp; Email address for guest entry"
-    AuthType Basic
-    AuthBasicProvider file anon
-    AuthUserFile /path/to/your/.htpasswd
-    
-    Anonymous_NoUserID off
-    Anonymous_MustGiveEmail on
-    Anonymous_VerifyEmail on
-    Anonymous_LogEmail on
-    Anonymous anonymous guest www test welcome
-    
-    Require valid-user
-&lt;/Directory&gt;</pre>
-</div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>パスワードの検査無しでアクセスを許可する userID を指定する
     少なくとも一つの '@' と '.' を含んでいるかどうかを調べます
     (上の <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code> 参照)。</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="example" id="example">例</a></h2>
+    <p>以下の例は「普通」の htpasswd ファイルに基づいた認証と組み合わされて
+    おり、以下の要件を見たすユーザを「ゲスト」として許可します:</p>
+
+    <ul>
+      <li>ユーザは userID を入力しなければなりません。
+      (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
+
+      <li>ユーザはパスワードを入力しなければなりません。
+      (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
+
+      <li>入力されたパスワードは有効な電子メールアドレスでなければ
+      なりません。<em>すなわち</em>、少くとも一つの '@' と '.' が
+      含まれている必要があります。
+      (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
+
+      <li>userID は <code>anonymous guest www test
+      welcome</code> のどれかでなければなりません。
+      ユーザ名の比較は大文字小文字を区別<strong>しません。</strong></li>
+
+      <li>パスワード欄に入力された電子メールアドレスはエラーログファイルに
+      ロギングされます。
+      (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
+    </ul>
+
+    <div class="example"><h3>例</h3><pre class="prettyprint lang-config">&lt;Directory /var/www/html/private&gt;
+    AuthName "Use 'anonymous' &amp; Email address for guest entry"
+    AuthType Basic
+    AuthBasicProvider file anon
+    AuthUserFile /path/to/your/.htpasswd
+    
+    Anonymous_NoUserID off
+    Anonymous_MustGiveEmail on
+    Anonymous_VerifyEmail on
+    Anonymous_LogEmail on
+    Anonymous anonymous guest www test welcome
+    
+    Require valid-user
+&lt;/Directory&gt;</pre>
+</div>
 </div>
 </div>
 <div class="bottomlang">
index 0912ddeea56906a2188a0bb39fe63032f4a8f978..7a3dd9b7ccaf7016ff90ffebb27cee24f83ad396 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#example">¿¹Á¦</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="example" id="example">¿¹Á¦</a></h2>
-    <p>´ÙÀ½ ¿¹´Â "ÀϹÝÀûÀÎ" htpasswd-ÆÄÀϱâ¹Ý ÀÎÁõ¿¡ Ãß°¡·Î
-    »ç¿ëÀÚ°¡ ´ÙÀ½ Á¶°ÇÀ» ¸¸Á·ÇÑ´Ù¸é '¼Õ´Ô(guest)'À¸·Î Á¢±ÙÇÒ
-    ¼ö ÀÖµµ·Ï ÇÑ´Ù:</p>
-
-    <ul>
-      <li>»ç¿ëÀڴ »ç¿ëÀÚ ¾ÆÀ̵𸦠ÀÔ·ÂÇØ¾ß ÇÑ´Ù. (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
-
-      <li>»ç¿ëÀڴ ¾ÏÈ£¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
-
-      <li>¾ÏÈ£·Î À¯È¿ÇÑ ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. <em>¿¹¸¦
-      µé¾î</em> ÃÖ¼ÒÇÑ '@'¿Í '.' ÇѰ³¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
-
-      <li>»ç¿ëÀÚ ¾ÆÀ̵ð´Â <code>anonymous guest www test
-      welcome</code> Áß ÇϳªÀ̸ç, ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö
-      <strong>¾Ê´Â´Ù</strong>. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
-
-      <li>±×¸®°í ¾ÏÈ£·Î ÀÔ·ÂÇÑ ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ ¿À·ù·Î±×ÆÄÀÏ¿¡
-      ±â·ÏÇÑ´Ù. (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
-    </ul>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      &lt;Directory /foo&gt;
-      <span class="indent">
-        AuthName "¼Õ´ÔÀ¸·Î ¹æ¹®ÇÏ·Á¸é 'anonymous'¿Í ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ »ç¿ëÇ϶ó"<br />
-        AuthType Basic<br />
-        AuthBasicProvider file anon<br />
-        AuthUserFile /path/to/your/.htpasswd<br />
-        <br />
-        Anonymous_NoUserID off<br />
-        Anonymous_MustGiveEmail on<br />
-        Anonymous_VerifyEmail on<br />
-        Anonymous_LogEmail on<br />
-        Anonymous anonymous guest www test welcome<br />
-        <br />
-        Order Deny,Allow<br />
-        Allow from all<br />
-        <br />
-        Require valid-user<br />
-      </span>
-      &lt;/Directory&gt;
-    </code></p></div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Anonymous" id="Anonymous">Anonymous</a> <a name="anonymous" id="anonymous">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¾ÏÈ£°Ë»ç¾øÀÌ Á¢±ÙÀ» Çã¿ëÇÒ »ç¿ëÀÚ ¾ÆÀ̵ðµéÀ»
     Æ÷ÇÔÇÏ´ÂÁö °Ë»çÇÑ´Ù (À§ÀÇ <code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code> Âü°í).</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="example" id="example">¿¹Á¦</a></h2>
+    <p>´ÙÀ½ ¿¹´Â "ÀϹÝÀûÀÎ" htpasswd-ÆÄÀϱâ¹Ý ÀÎÁõ¿¡ Ãß°¡·Î
+    »ç¿ëÀÚ°¡ ´ÙÀ½ Á¶°ÇÀ» ¸¸Á·ÇÑ´Ù¸é '¼Õ´Ô(guest)'À¸·Î Á¢±ÙÇÒ
+    ¼ö ÀÖµµ·Ï ÇÑ´Ù:</p>
+
+    <ul>
+      <li>»ç¿ëÀڴ »ç¿ëÀÚ ¾ÆÀ̵𸦠ÀÔ·ÂÇØ¾ß ÇÑ´Ù. (<code class="directive"><a href="#anonymous_nouserid">Anonymous_NoUserID</a></code>)</li>
+
+      <li>»ç¿ëÀڴ ¾ÏÈ£¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. (<code class="directive"><a href="#anonymous_mustgiveemail">Anonymous_MustGiveEmail</a></code>)</li>
+
+      <li>¾ÏÈ£·Î À¯È¿ÇÑ ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ ÀÔ·ÂÇØ¾ß ÇÑ´Ù. <em>¿¹¸¦
+      µé¾î</em> ÃÖ¼ÒÇÑ '@'¿Í '.' ÇѰ³¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. (<code class="directive"><a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></code>)</li>
+
+      <li>»ç¿ëÀÚ ¾ÆÀ̵ð´Â <code>anonymous guest www test
+      welcome</code> Áß ÇϳªÀ̸ç, ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö
+      <strong>¾Ê´Â´Ù</strong>. (<code class="directive"><a href="#anonymous">Anonymous</a></code>)</li>
+
+      <li>±×¸®°í ¾ÏÈ£·Î ÀÔ·ÂÇÑ ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ ¿À·ù·Î±×ÆÄÀÏ¿¡
+      ±â·ÏÇÑ´Ù. (<code class="directive"><a href="#anonymous_logemail">Anonymous_LogEmail</a></code>)</li>
+    </ul>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      &lt;Directory /foo&gt;
+      <span class="indent">
+        AuthName "¼Õ´ÔÀ¸·Î ¹æ¹®ÇÏ·Á¸é 'anonymous'¿Í ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ »ç¿ëÇ϶ó"<br />
+        AuthType Basic<br />
+        AuthBasicProvider file anon<br />
+        AuthUserFile /path/to/your/.htpasswd<br />
+        <br />
+        Anonymous_NoUserID off<br />
+        Anonymous_MustGiveEmail on<br />
+        Anonymous_VerifyEmail on<br />
+        Anonymous_LogEmail on<br />
+        Anonymous anonymous guest www test welcome<br />
+        <br />
+        Order Deny,Allow<br />
+        Allow from all<br />
+        <br />
+        Require valid-user<br />
+      </span>
+      &lt;/Directory&gt;
+    </code></p></div>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_authn_anon.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index c218b3955a04f5c02d293cec859ccf3bbaeee223..09d40860b8f9dd232360d3e8f133de1cca53f415 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#authnalias">Creating Authentication Provider Aliases</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="authnalias" id="authnalias">Creating Authentication Provider Aliases</a></h2>
-
-    <p>Extended authentication providers can be created
-    within the configuration file and assigned an alias name.  The alias
-    providers can then be referenced through the directives
-    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or
-    <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> in
-    the same way as a base authentication provider.  Besides the ability
-    to create and alias an extended provider, it also allows the same
-    extended authentication provider to be reference by multiple
-    locations.</p>
-
-    <h3><a name="example" id="example">Examples</a></h3>
-
-        <p>This example checks for passwords in two different text
-        files.</p>
-
-        <div class="example"><h3>Checking multiple text password files</h3><pre class="prettyprint lang-config"># Check here first
-&lt;AuthnProviderAlias file file1&gt;
-    AuthUserFile "/www/conf/passwords1"
-&lt;/AuthnProviderAlias&gt;
-
-# Then check here
-&lt;AuthnProviderAlias file file2&gt;   
-    AuthUserFile "/www/conf/passwords2"
-&lt;/AuthnProviderAlias&gt;
-
-&lt;Directory "/var/web/pages/secure"&gt;
-    AuthBasicProvider file1 file2
-    
-    AuthType Basic
-    AuthName "Protected Area"
-    Require valid-user
-&lt;/Directory&gt;</pre>
-</div>
-
-        <p>The example below creates two different ldap authentication
-        provider aliases based on the ldap provider.  This allows
-        a single authenticated location to be serviced by multiple ldap
-        hosts:</p>
-
-        <div class="example"><h3>Checking multiple LDAP servers</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
-    AuthLDAPBindDN cn=youruser,o=ctx
-    AuthLDAPBindPassword yourpassword
-    AuthLDAPURL ldap://ldap.host/o=ctx
-&lt;/AuthnProviderAlias&gt;
-&lt;AuthnProviderAlias ldap ldap-other-alias&gt;
-    AuthLDAPBindDN cn=yourotheruser,o=dev
-    AuthLDAPBindPassword yourotherpassword
-    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
-&lt;/AuthnProviderAlias&gt;
-
-Alias "/secure" "/webpages/secure"
-&lt;Directory "/webpages/secure"&gt;
-    Order deny,allow
-    Allow from all
-    
-    AuthBasicProvider ldap-other-alias  ldap-alias1
-    
-    AuthType Basic
-    AuthName "LDAP Protected Place"
-    Require valid-user
-    # Note that Require ldap-* would not work here, since the 
-    # AuthnProviderAlias does not provide the config to authorization providers
-    # that are implemented in the same module as the authentication provider.
-&lt;/Directory&gt;</pre>
-</div>
-    
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthName" id="AuthName">AuthName</a> <a name="authname" id="authname">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Authorization realm for use in HTTP
@@ -236,6 +164,78 @@ the specified alias</td></tr>
 <li><a href="../howto/auth.html">Authentication, Authorization,
     and Access Control</a></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="authnalias" id="authnalias">Creating Authentication Provider Aliases</a></h2>
+
+    <p>Extended authentication providers can be created
+    within the configuration file and assigned an alias name.  The alias
+    providers can then be referenced through the directives
+    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or
+    <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> in
+    the same way as a base authentication provider.  Besides the ability
+    to create and alias an extended provider, it also allows the same
+    extended authentication provider to be reference by multiple
+    locations.</p>
+
+    <h3><a name="example" id="example">Examples</a></h3>
+
+        <p>This example checks for passwords in two different text
+        files.</p>
+
+        <div class="example"><h3>Checking multiple text password files</h3><pre class="prettyprint lang-config"># Check here first
+&lt;AuthnProviderAlias file file1&gt;
+    AuthUserFile "/www/conf/passwords1"
+&lt;/AuthnProviderAlias&gt;
+
+# Then check here
+&lt;AuthnProviderAlias file file2&gt;   
+    AuthUserFile "/www/conf/passwords2"
+&lt;/AuthnProviderAlias&gt;
+
+&lt;Directory "/var/web/pages/secure"&gt;
+    AuthBasicProvider file1 file2
+    
+    AuthType Basic
+    AuthName "Protected Area"
+    Require valid-user
+&lt;/Directory&gt;</pre>
+</div>
+
+        <p>The example below creates two different ldap authentication
+        provider aliases based on the ldap provider.  This allows
+        a single authenticated location to be serviced by multiple ldap
+        hosts:</p>
+
+        <div class="example"><h3>Checking multiple LDAP servers</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
+    AuthLDAPBindDN cn=youruser,o=ctx
+    AuthLDAPBindPassword yourpassword
+    AuthLDAPURL ldap://ldap.host/o=ctx
+&lt;/AuthnProviderAlias&gt;
+&lt;AuthnProviderAlias ldap ldap-other-alias&gt;
+    AuthLDAPBindDN cn=yourotheruser,o=dev
+    AuthLDAPBindPassword yourotherpassword
+    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
+&lt;/AuthnProviderAlias&gt;
+
+Alias "/secure" "/webpages/secure"
+&lt;Directory "/webpages/secure"&gt;
+    Order deny,allow
+    Allow from all
+    
+    AuthBasicProvider ldap-other-alias  ldap-alias1
+    
+    AuthType Basic
+    AuthName "LDAP Protected Place"
+    Require valid-user
+    # Note that Require ldap-* would not work here, since the 
+    # AuthnProviderAlias does not provide the config to authorization providers
+    # that are implemented in the same module as the authentication provider.
+&lt;/Directory&gt;</pre>
+</div>
+    
+
 </div>
 </div>
 <div class="bottomlang">
index 99cde1e0773dd3561223ec295c15caef2f41c12c..16d93590810da17edc7ad0d4309c0c2fc4f0af0e 100644 (file)
 d'authentification</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="authnalias" id="authnalias">Création d'alias de fournisseurs
-d'authentification</a></h2>
-
-    <p>Il est possible de créer des fournisseurs d'authentification
-    étendus dans le fichier de configuration et de leur assigner un
-    alias. Le fournisseur ainsi nommé peut alors être référencé à l'aide
-    des directives <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> ou <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> tout comme
-    un fournisseur d'authentification de base. Outre la possibilité de
-    créer et attribuer un alias à un fournisseur étendu, le même
-    fournisseur d'authentification peut aussi être référencé par
-    plusieurs sections relatives à une zone du site web.</p>
-
-    <h3><a name="example" id="example">Exemples</a></h3>
-
-       <p>Cet exemple vérifie les mots de passe dans deux fichiers
-       textes différents.</p>
-
-       <div class="example"><h3>Vérification dans plusieurs fichiers de mots de
-       passe au format texte</h3><pre class="prettyprint lang-config"># Première vérification
-&lt;AuthnProviderAlias file file1&gt;
-    AuthUserFile /www/conf/passwords1
-&lt;/AuthnProviderAlias&gt;
-
-# Vérification suivante
-&lt;AuthnProviderAlias file file2&gt;   
-    AuthUserFile /www/conf/passwords2
-&lt;/AuthnProviderAlias&gt;
-
-&lt;Directory /var/web/pages/secure&gt;
-    AuthBasicProvider file1 file2
-    
-    AuthType Basic
-    AuthName "Protected Area"
-    Require valid-user
-&lt;/Directory&gt;</pre>
-</div>
-
-
-
-        <p>Dans l'exemple ci-dessous, deux fournisseurs
-       d'authentification ldap sont créés à partir du fournisseur ldap
-       de base, et se voient attribuer un alias. L'authentification
-       d'une même zone peut alors être traitée par plusieurs serveurs
-       ldap :</p>
-
-        <div class="example"><h3>Vérification auprès de plusieurs serveurs
-       LDAP</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
-    AuthLDAPBindDN cn=youruser,o=ctx
-    AuthLDAPBindPassword yourpassword
-    AuthLDAPURL ldap://ldap.host/o=ctx
-    &lt;/AuthnProviderAlias&gt;
-    &lt;AuthnProviderAlias ldap ldap-other-alias&gt;
-    AuthLDAPBindDN cn=yourotheruser,o=dev
-    AuthLDAPBindPassword yourotherpassword
-    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
-&lt;/AuthnProviderAlias&gt;
-
-Alias /secure /webpages/secure
-&lt;Directory /webpages/secure&gt;
-    Order deny,allow
-    Allow from all
-    
-    AuthBasicProvider ldap-other-alias  ldap-alias1
-    
-    AuthType Basic
-    AuthName LDAP_Protected Place
-    Require valid-user
-    # Notez que Require ldap-* ne fonctionnerait pas ici, car
-    # AuthnProviderAlias ne fournit pas de configuration pour les
-    # fournisseurs d'autorisation implémentés dans le même module que le
-    # fournisseur d'authentification.
-&lt;/Directory&gt;</pre>
-</div>
-    
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authname" id="authname">Directive</a> <a name="AuthName" id="AuthName">AuthName</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'identifiant de l'autorisation à utiliser avec
@@ -250,6 +172,84 @@ l'alias sp
 <li><a href="../howto/auth.html">Authentification, autorisation et contrôle
     d'accès</a></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="authnalias" id="authnalias">Création d'alias de fournisseurs
+d'authentification</a></h2>
+
+    <p>Il est possible de créer des fournisseurs d'authentification
+    étendus dans le fichier de configuration et de leur assigner un
+    alias. Le fournisseur ainsi nommé peut alors être référencé à l'aide
+    des directives <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> ou <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> tout comme
+    un fournisseur d'authentification de base. Outre la possibilité de
+    créer et attribuer un alias à un fournisseur étendu, le même
+    fournisseur d'authentification peut aussi être référencé par
+    plusieurs sections relatives à une zone du site web.</p>
+
+    <h3><a name="example" id="example">Exemples</a></h3>
+
+       <p>Cet exemple vérifie les mots de passe dans deux fichiers
+       textes différents.</p>
+
+       <div class="example"><h3>Vérification dans plusieurs fichiers de mots de
+       passe au format texte</h3><pre class="prettyprint lang-config"># Première vérification
+&lt;AuthnProviderAlias file file1&gt;
+    AuthUserFile /www/conf/passwords1
+&lt;/AuthnProviderAlias&gt;
+
+# Vérification suivante
+&lt;AuthnProviderAlias file file2&gt;   
+    AuthUserFile /www/conf/passwords2
+&lt;/AuthnProviderAlias&gt;
+
+&lt;Directory /var/web/pages/secure&gt;
+    AuthBasicProvider file1 file2
+    
+    AuthType Basic
+    AuthName "Protected Area"
+    Require valid-user
+&lt;/Directory&gt;</pre>
+</div>
+
+
+
+        <p>Dans l'exemple ci-dessous, deux fournisseurs
+       d'authentification ldap sont créés à partir du fournisseur ldap
+       de base, et se voient attribuer un alias. L'authentification
+       d'une même zone peut alors être traitée par plusieurs serveurs
+       ldap :</p>
+
+        <div class="example"><h3>Vérification auprès de plusieurs serveurs
+       LDAP</h3><pre class="prettyprint lang-config">&lt;AuthnProviderAlias ldap ldap-alias1&gt;
+    AuthLDAPBindDN cn=youruser,o=ctx
+    AuthLDAPBindPassword yourpassword
+    AuthLDAPURL ldap://ldap.host/o=ctx
+    &lt;/AuthnProviderAlias&gt;
+    &lt;AuthnProviderAlias ldap ldap-other-alias&gt;
+    AuthLDAPBindDN cn=yourotheruser,o=dev
+    AuthLDAPBindPassword yourotherpassword
+    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
+&lt;/AuthnProviderAlias&gt;
+
+Alias /secure /webpages/secure
+&lt;Directory /webpages/secure&gt;
+    Order deny,allow
+    Allow from all
+    
+    AuthBasicProvider ldap-other-alias  ldap-alias1
+    
+    AuthType Basic
+    AuthName LDAP_Protected Place
+    Require valid-user
+    # Notez que Require ldap-* ne fonctionnerait pas ici, car
+    # AuthnProviderAlias ne fournit pas de configuration pour les
+    # fournisseurs d'autorisation implémentés dans le même module que le
+    # fournisseur d'authentification.
+&lt;/Directory&gt;</pre>
+</div>
+    
+
 </div>
 </div>
 <div class="bottomlang">
index f060aea2c7781361e5e0c1c456894d7186c91568..84a983f0aab6c3975ad68711612c5637c06de249 100644 (file)
 <li><a href="../misc/password_encryptions.html">Password Formats</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="socache" id="socache">Performance and Cacheing</a></h2>
-
-<p>Some users of DBD authentication in HTTPD 2.2/2.4 have reported that it
-imposes a problematic load on the database.  This is most likely where
-an HTML page contains hundreds of objects (e.g. images, scripts, etc)
-each of which requires authentication.  Users affected (or concerned)
-by this kind of problem should use <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>
-to cache credentials and take most of the load off the database.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="example" id="example">Configuration Example</a></h2>
-
-<p>This simple example shows use of this module in the context of
-the Authentication and DBD frameworks.</p>
-<pre class="prettyprint lang-config"># mod_dbd configuration
-# UPDATED to include authentication cacheing
-DBDriver pgsql
-DBDParams "dbname=apacheauth user=apache password=xxxxxx"
-
-DBDMin  4
-DBDKeep 8
-DBDMax  20
-DBDExptime 300
-
-&lt;Directory "/usr/www/myhost/private"&gt;
-  # mod_authn_core and mod_auth_basic configuration
-  # for mod_authn_dbd
-  AuthType Basic
-  AuthName "My Server"
-
-  # To cache credentials, put socache ahead of dbd here
-  AuthBasicProvider socache dbd
-
-  # Also required for caching: tell the cache to cache dbd lookups!
-  AuthnCacheProvideFor dbd
-  AuthnCacheContext my-server
-
-  # mod_authz_core configuration
-  Require valid-user
-
-  # mod_authn_dbd SQL query to authenticate a user
-  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
-&lt;/Directory&gt;</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="exposed" id="exposed">Exposing Login Information</a></h2>
-
-<p>
-If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
-or higher, then whenever a query is made to the database server, all
-column values in the first row returned by the query are placed in the
-environment, using environment variables with the prefix "AUTHENTICATE_".
-</p>
-<p>If a database query for example returned the username, full name
-and telephone number of a user, a CGI program will have access to
-this information without the need to make a second independent database
-query to gather this additional information.</p>
-<p>This has the potential to dramatically simplify the coding and
-configuration required in some web applications.
-</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDBDUserPWQuery" id="AuthDBDUserPWQuery">AuthDBDUserPWQuery</a> <a name="authdbduserpwquery" id="authdbduserpwquery">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>SQL query to look up a password for a user</td></tr>
@@ -200,6 +136,70 @@ configuration required in some web applications.
     <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>) is being used.  See <a href="../misc/password_encryptions.html">Password Formats</a> for
     more information.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="socache" id="socache">Performance and Cacheing</a></h2>
+
+<p>Some users of DBD authentication in HTTPD 2.2/2.4 have reported that it
+imposes a problematic load on the database.  This is most likely where
+an HTML page contains hundreds of objects (e.g. images, scripts, etc)
+each of which requires authentication.  Users affected (or concerned)
+by this kind of problem should use <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>
+to cache credentials and take most of the load off the database.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="example" id="example">Configuration Example</a></h2>
+
+<p>This simple example shows use of this module in the context of
+the Authentication and DBD frameworks.</p>
+<pre class="prettyprint lang-config"># mod_dbd configuration
+# UPDATED to include authentication cacheing
+DBDriver pgsql
+DBDParams "dbname=apacheauth user=apache password=xxxxxx"
+
+DBDMin  4
+DBDKeep 8
+DBDMax  20
+DBDExptime 300
+
+&lt;Directory "/usr/www/myhost/private"&gt;
+  # mod_authn_core and mod_auth_basic configuration
+  # for mod_authn_dbd
+  AuthType Basic
+  AuthName "My Server"
+
+  # To cache credentials, put socache ahead of dbd here
+  AuthBasicProvider socache dbd
+
+  # Also required for caching: tell the cache to cache dbd lookups!
+  AuthnCacheProvideFor dbd
+  AuthnCacheContext my-server
+
+  # mod_authz_core configuration
+  Require valid-user
+
+  # mod_authn_dbd SQL query to authenticate a user
+  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
+&lt;/Directory&gt;</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="exposed" id="exposed">Exposing Login Information</a></h2>
+
+<p>
+If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
+or higher, then whenever a query is made to the database server, all
+column values in the first row returned by the query are placed in the
+environment, using environment variables with the prefix "AUTHENTICATE_".
+</p>
+<p>If a database query for example returned the username, full name
+and telephone number of a user, a CGI program will have access to
+this information without the need to make a second independent database
+query to gather this additional information.</p>
+<p>This has the potential to dramatically simplify the coding and
+configuration required in some web applications.
+</p>
 </div>
 </div>
 <div class="bottomlang">
index 219a7b2f496e994430a3a5f4bc226397a38467fc..ad1802dda808b5f6b165dc29f3da2c6f1793d174 100644 (file)
@@ -77,75 +77,6 @@ SQL</td></tr>
 passe</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="socache" id="socache">Performances et mise en cache</a></h2>
-
-<p>Certains utilisateurs de l'authentification DBD sous HTTPD 2.2/2.4 ont
-signalé une charge problématique au niveau de la base de données. Cela
-se produit en général lorsqu'une page HTML contient des centaines d'objets
-(comme des images, des scripts, etc...), chacun d'entre eux nécessitant
-une authentification. Les utilisateurs qui rencontrent ce genre de
-problème peuvent utiliser le module <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>
-qui permet de mettre les données d'authentification en cache, et
-soulager ainsi la base de données de la plus grande partie de la charge.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="example" id="example">Exemple de configuration</a></h2>
-
-<p>Voici un exemple simple d'utilisation de ce module dans un contexte
-d'authentification et de bases de données.</p>
-<pre class="prettyprint lang-config"># configuration de mod_dbd
-# MISE À JOUR pour inclure la mise en cache de l'authentification
-DBDriver pgsql
-DBDParams "dbname=apacheauth user=apache password=xxxxxx"
-
-DBDMin  4
-DBDKeep 8
-DBDMax  20
-DBDExptime 300
-
-&lt;Directory /usr/www/mon-serveur/private&gt;
-  # configuration de mod_authn_core et mod_auth_basic
-  # pour mod_authn_dbd
-  AuthType Basic
-  AuthName "Mon serveur"
-
-  # Pour mettre en cache les données d'authentification, placez socache
-  # avant dbd
-  AuthBasicProvider socache dbd
-
-  # Aussi nécessaire à la mise en cache : dire au cache de mettre en
-  # cache les recherches dbd !
-  AuthnCacheProvideFor dbd
-  AuthnCacheContext mon-serveur
-
-  # configuration de mod_authz_core
-  Require valid-user
-
-  # la requête SQL de mod_authn_dbd pour authentifier un utilisateur
-  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
-&lt;/Directory&gt;</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="exposed" id="exposed">Mise à disposition des informations de connexion</a></h2>
-
-<p>
-Si httpd a été compilé avec la version 1.3.0 ou supérieure de
-l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, pour chaque requête envoyée au serveur de
-base de données, toutes les valeurs de colonnes du premier
-enregistrement renvoyé par la requête sont affectées à des variables
-d'environnement avec le préfixe "AUTHENTICATE_".
-</p>
-<p>Par exemple, si une requête renvoie un nom d'utilisateur, un nom
-complet et un numéro de téléphone, un programme CGI pourra accéder à ces
-informations sans avoir besoin d'effectuer une deuxième requête vers la
-base de données.</p>
-<p>Ceci va entraîner une simplification considérable du code et de la
-configuration nécessaire de certaines applications web.
-</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authdbduserpwquery" id="authdbduserpwquery">Directive</a> <a name="AuthDBDUserPWQuery" id="AuthDBDUserPWQuery">AuthDBDUserPWQuery</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Requête SQL servant à vérifier le mot de passe d'un
@@ -219,6 +150,75 @@ passe pour un utilisateur et un identifiant d'authentification.
     <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>). Voir la documentation sur les <a href="../misc/password_encryptions.html">Formats de mots de passe</a> pour
     plus de détails.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="socache" id="socache">Performances et mise en cache</a></h2>
+
+<p>Certains utilisateurs de l'authentification DBD sous HTTPD 2.2/2.4 ont
+signalé une charge problématique au niveau de la base de données. Cela
+se produit en général lorsqu'une page HTML contient des centaines d'objets
+(comme des images, des scripts, etc...), chacun d'entre eux nécessitant
+une authentification. Les utilisateurs qui rencontrent ce genre de
+problème peuvent utiliser le module <code class="module"><a href="../mod/mod_authn_socache.html">mod_authn_socache</a></code>
+qui permet de mettre les données d'authentification en cache, et
+soulager ainsi la base de données de la plus grande partie de la charge.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="example" id="example">Exemple de configuration</a></h2>
+
+<p>Voici un exemple simple d'utilisation de ce module dans un contexte
+d'authentification et de bases de données.</p>
+<pre class="prettyprint lang-config"># configuration de mod_dbd
+# MISE À JOUR pour inclure la mise en cache de l'authentification
+DBDriver pgsql
+DBDParams "dbname=apacheauth user=apache password=xxxxxx"
+
+DBDMin  4
+DBDKeep 8
+DBDMax  20
+DBDExptime 300
+
+&lt;Directory /usr/www/mon-serveur/private&gt;
+  # configuration de mod_authn_core et mod_auth_basic
+  # pour mod_authn_dbd
+  AuthType Basic
+  AuthName "Mon serveur"
+
+  # Pour mettre en cache les données d'authentification, placez socache
+  # avant dbd
+  AuthBasicProvider socache dbd
+
+  # Aussi nécessaire à la mise en cache : dire au cache de mettre en
+  # cache les recherches dbd !
+  AuthnCacheProvideFor dbd
+  AuthnCacheContext mon-serveur
+
+  # configuration de mod_authz_core
+  Require valid-user
+
+  # la requête SQL de mod_authn_dbd pour authentifier un utilisateur
+  AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
+&lt;/Directory&gt;</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="exposed" id="exposed">Mise à disposition des informations de connexion</a></h2>
+
+<p>
+Si httpd a été compilé avec la version 1.3.0 ou supérieure de
+l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, pour chaque requête envoyée au serveur de
+base de données, toutes les valeurs de colonnes du premier
+enregistrement renvoyé par la requête sont affectées à des variables
+d'environnement avec le préfixe "AUTHENTICATE_".
+</p>
+<p>Par exemple, si une requête renvoie un nom d'utilisateur, un nom
+complet et un numéro de téléphone, un programme CGI pourra accéder à ces
+informations sans avoir besoin d'effectuer une deuxième requête vers la
+base de données.</p>
+<p>Ceci va entraîner une simplification considérable du code et de la
+configuration nécessaire de certaines applications web.
+</p>
 </div>
 </div>
 <div class="bottomlang">
index b4dd72860a2f6ebab037bd3232068a4b0417379c..a3de3afda3ea4b95e8d97917acd4ace6d06110d9 100644 (file)
@@ -67,7 +67,6 @@
 <li><code class="program"><a href="../programs/htdbm.html">htdbm</a></code></li>
 <li><a href="../misc/password_encryptions.html">Password Formats</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">Directive</a></h2>
 <table class="directive">
@@ -139,6 +138,7 @@ passwords for authentication</td></tr>
     <code class="program"><a href="../programs/htdbm.html">htdbm</a></code>.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_authn_dbm.html" title="English">&nbsp;en&nbsp;</a> |
index 2c5a150b3d0edc840d9202a0c3903486d6f74e61..c26f6f573a72ead592a0d8614a76d287c7af2e1e 100644 (file)
@@ -68,7 +68,6 @@ d'Apache</td></tr></table>
 <li><a href="../misc/password_encryptions.html">Formats de mots de
 passe</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authdbmtype" id="authdbmtype">Directive</a> <a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a></h2>
 <table class="directive">
@@ -147,6 +146,7 @@ des utilisateurs et de leurs mots de passe</td></tr>
     inclus dans le programme <code class="program"><a href="../programs/htdbm.html">htdbm</a></code>.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 05774f11cdda57368db35955439c2f193c064182..b8159d85775fb6156c569b9e37109b0e268e9161 100644 (file)
@@ -68,7 +68,6 @@
   <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>
 </li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">ディレクティブ</a></h2>
 <table class="directive">
     更新したりすることができます。</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index b3ea3924bad4fa8b76bb66367b4ea52ca629a4ee..8a56318c9d30cb607951e6a4e8def199881b4f2e 100644 (file)
@@ -64,7 +64,6 @@
   <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>
 </li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a> <a name="authdbmtype" id="authdbmtype">Áö½Ã¾î</a></h2>
 <table class="directive">
     DBMÇü½Ä ¾ÏÈ£ÆÄÀÏÀ» ¸¸µé°í ¼öÁ¤ÇÑ´Ù.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_authn_dbm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 58c2220c82b803bd2e0235d1417cea89b4712e74..b7cd33e83f227c17e60df8cf10434e345ba6b4ff 100644 (file)
@@ -63,7 +63,6 @@
 <li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li>
 <li><a href="../misc/password_encryptions.html">Password Formats</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">Directive</a></h2>
 <table class="directive">
@@ -129,6 +128,7 @@ passwords for authentication</td></tr>
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_authn_file.html" title="English">&nbsp;en&nbsp;</a> |
index 1c4607582811ad26e948e5fd4fe7dde8c895b12a..468d0b514b5cfd9de4f2c503533db2275f1fd679 100644 (file)
@@ -65,7 +65,6 @@ d'Apache</td></tr></table>
 <li><a href="../misc/password_encryptions.html">Formats de mots de
 passe</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authuserfile" id="authuserfile">Directive</a> <a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a></h2>
 <table class="directive">
@@ -138,6 +137,7 @@ passe</td></tr>
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 756ef7b3a61942ff598b8576f18e8699f74dfa87..90c6c3d9d8e0a24a329e0b46f7638aafeb113e81 100644 (file)
@@ -67,7 +67,6 @@
 <li><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code></li>
 <li><code class="program"><a href="../programs/htdigest.html">htdigest</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">ディレクティブ</a></h2>
 <table class="directive">
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 11e788f3e466a11bb691311338d159aeeeec48e3..e506684e5faeb2542e98910865f798a5707867c5 100644 (file)
@@ -63,7 +63,6 @@
 <li><a href="../programs/htpasswd.html">htpasswd</a></li>
 <li><a href="../programs/htdigest.html">htdigest</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthUserFile" id="AuthUserFile">AuthUserFile</a> <a name="authuserfile" id="authuserfile">Áö½Ã¾î</a></h2>
 <table class="directive">
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_authn_file.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 2a44561763732ef14ed9226559c888ae1c0ff213..a799f69619d6c4cbe65a08298d9a86deb6938983 100644 (file)
@@ -53,61 +53,6 @@ the load on backends</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#dev">Cacheing with custom modules</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="intro" id="intro">Authentication Cacheing</a></h2>
-    <p>Some users of more heavyweight authentication such as SQL database
-    lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an
-    unacceptable load on their authentication provider.  A typical case
-    in point is where an HTML page contains hundreds of objects
-    (images, scripts, stylesheets, media, etc), and a request to the page
-    generates hundreds of effectively-immediate requests for authenticated
-    additional contents.</p>
-    <p>mod_authn_socache provides a solution to this problem by
-    maintaining a cache of authentication credentials.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usage" id="usage">Usage</a></h2>
-    <p>The authentication cache should be used where authentication
-    lookups impose a significant load on the server, or a backend or
-    network.  Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
-    or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit,
-    as these are fast and lightweight in their own right (though in some
-    cases, such as a network-mounted file, cacheing may be worthwhile).
-    Other providers such as SQL or LDAP based authentication are more
-    likely to benefit, particularly where there is an observed
-    performance issue.  Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only
-    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p>
-    <p>The basic rules to cache for a provider are:</p>
-    <ol><li>Include the provider you're cacheing for in an
-            <code class="directive">AuthnCacheProvideFor</code> directive.</li>
-        <li>List <var>socache</var> ahead of the provider you're
-            cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li>
-    </ol>
-    <p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
-    using dbm as a cache engine:</p>
-    <pre class="prettyprint lang-config">#AuthnCacheSOCache is optional.  If specified, it is server-wide
-AuthnCacheSOCache dbm
-&lt;Directory "/usr/www/myhost/private"&gt;
-    AuthType Basic
-    AuthName "Cached Authentication Example"
-    AuthBasicProvider socache dbd
-    AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
-    AuthnCacheProvideFor dbd
-    Require valid-user
-    #Optional
-    AuthnCacheContext dbd-authn-example
-&lt;/Directory&gt;</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dev" id="dev">Cacheing with custom modules</a></h2>
-    <p>Module developers should note that their modules must be enabled
-    for cacheing with mod_authn_socache.  A single optional API function
-    <var>ap_authn_cache_store</var> is provided to cache credentials
-    a provider has just looked up or generated.  Usage examples are
-    available in <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a> <a name="authncachecontext" id="authncachecontext">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a context string for use in the cache key</td></tr>
@@ -222,6 +167,61 @@ Apache HTTP Server 2.4.7 and later</td></tr>
     your timeout.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="intro" id="intro">Authentication Cacheing</a></h2>
+    <p>Some users of more heavyweight authentication such as SQL database
+    lookups (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) have reported it putting an
+    unacceptable load on their authentication provider.  A typical case
+    in point is where an HTML page contains hundreds of objects
+    (images, scripts, stylesheets, media, etc), and a request to the page
+    generates hundreds of effectively-immediate requests for authenticated
+    additional contents.</p>
+    <p>mod_authn_socache provides a solution to this problem by
+    maintaining a cache of authentication credentials.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usage" id="usage">Usage</a></h2>
+    <p>The authentication cache should be used where authentication
+    lookups impose a significant load on the server, or a backend or
+    network.  Authentication by file (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
+    or dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) are unlikely to benefit,
+    as these are fast and lightweight in their own right (though in some
+    cases, such as a network-mounted file, cacheing may be worthwhile).
+    Other providers such as SQL or LDAP based authentication are more
+    likely to benefit, particularly where there is an observed
+    performance issue.  Amongst the standard modules, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> manages its own cache, so only
+    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> will usually benefit from this cache.</p>
+    <p>The basic rules to cache for a provider are:</p>
+    <ol><li>Include the provider you're cacheing for in an
+            <code class="directive">AuthnCacheProvideFor</code> directive.</li>
+        <li>List <var>socache</var> ahead of the provider you're
+            cacheing for in your <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> or <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code> directive.</li>
+    </ol>
+    <p>A simple usage example to accelerate <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>
+    using dbm as a cache engine:</p>
+    <pre class="prettyprint lang-config">#AuthnCacheSOCache is optional.  If specified, it is server-wide
+AuthnCacheSOCache dbm
+&lt;Directory "/usr/www/myhost/private"&gt;
+    AuthType Basic
+    AuthName "Cached Authentication Example"
+    AuthBasicProvider socache dbd
+    AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
+    AuthnCacheProvideFor dbd
+    Require valid-user
+    #Optional
+    AuthnCacheContext dbd-authn-example
+&lt;/Directory&gt;</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="dev" id="dev">Cacheing with custom modules</a></h2>
+    <p>Module developers should note that their modules must be enabled
+    for cacheing with mod_authn_socache.  A single optional API function
+    <var>ap_authn_cache_store</var> is provided to cache credentials
+    a provider has just looked up or generated.  Usage examples are
+    available in <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, in which three authn providers are enabled for cacheing.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_authn_socache.html" title="English">&nbsp;en&nbsp;</a> |
index a74033eaa20eb3ea543edc96f22ad258f51f49ee..7de8ee9b497187243821ed97f595a2d882086a78 100644 (file)
@@ -55,73 +55,6 @@ la charge des serveurs d'arri
 <li><img alt="" src="../images/down.gif" /> <a href="#dev">La mise en cache avec les modules tiers</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="intro" id="intro">Mise en cache des données d'authentification</a></h2>
-    <p>Certains utilisateurs qui mettent oeuvre une authentification
-    lourde s'appuyant par exemple sur des requêtes SQL
-    (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) ont signalé une charge induite
-    inacceptable sur leur fournisseur d'authentification. Cela se
-    produit typiquement dans le cas où une page HTML contient des
-    centaines d'objets (images, scripts, pages de styles, media,
-    etc...), et où une requête pour cette page génère des centaines de
-    sous-requêtes à effet immédiat pour des contenus supplémentaires
-    authentifiés.</p>
-    <p>Pour résoudre ce problème, mod_authn_socache fournit une solution
-    qui permet de maintenir un cache des données d'authentification.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usage" id="usage">Utilisation</a></h2>
-    <p>Le cache d'authentification doit être utilisé lorsque les
-    requêtes d'authentification induisent une charge significative sur le
-    serveur, le serveur d'arrière-plan ou le réseau. Cette mise en cache
-    n'apportera probablement aucune amélioration dans le cas d'une
-    authentification à base de fichier (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
-    ou de base de données dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) car ces
-    méthodes sont de par leur conception rapides et légères (la mise en
-    cache peut cependant s'avérer utile dans le cas où le fichier est
-    situé sur un montage réseau). Les fournisseurs d'authentification
-    basés sur SQL ou LDAP ont plus de chances de tirer parti de cette
-    mise en cache, en particulier lorsqu'un problème de performances est
-    détecté. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> gérant son propre cache,
-    seul <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> est concerné par notre sujet.</p>
-    <p>Les principales règles à appliquer pour la mise en cache sont :</p>
-    <ol><li>Inclure le fournisseur pour lequel vous voulez effectuer une
-    mise en cache dans une directive
-    <code class="directive">AuthnCacheProvideFor</code>.</li>
-        <li>Mettre <var>socache</var> avant le fournisseur pour lequel
-       vous voulez effectuer une mise en cache dans votre directive
-       <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
-       ou <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>.</li>
-    </ol>
-    <p>Voici un exemple simple permettant d'accélérer
-    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> et utilisant dbm comme moteur de la
-    mise en cache :</p>
-    <pre class="prettyprint lang-config">    #AuthnCacheSOCache est optionnel. S'il est défini, il l'est pour
-    #l'ensemble du serveur
-AuthnCacheSOCache dbm
-&lt;Directory /usr/www/myhost/private&gt;
-    AuthType Basic
-    AuthName "Cached Authentication Example"
-    AuthBasicProvider socache dbd
-    AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
-    AuthnCacheProvideFor dbd
-    Require valid-user
-    #Optionnel
-    AuthnCacheContext dbd-authn-example
-&lt;/Directory&gt;</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dev" id="dev">La mise en cache avec les modules tiers</a></h2>
-    <p>Les développeurs de modules doivent savoir que la mise en cache
-    avec mod_authn_socache doit être activée dans leurs modules. La
-    fonction de l'API <var>ap_authn_cache_store</var> permet de
-    mettre en cache les données d'authentification qu'un fournisseur
-    vient de rechercher ou de générer. Vous trouverez des exemples
-    d'utilisation à <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, où trois fournisseurs authn sont activés pour la mise
-    en cache.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authncachecontext" id="authncachecontext">Directive</a> <a name="AuthnCacheContext" id="AuthnCacheContext">AuthnCacheContext</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie une chaîne de contexte à utiliser dans la clé du
@@ -253,6 +186,73 @@ utiliser</td></tr>
     définissez la durée de vie.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="intro" id="intro">Mise en cache des données d'authentification</a></h2>
+    <p>Certains utilisateurs qui mettent oeuvre une authentification
+    lourde s'appuyant par exemple sur des requêtes SQL
+    (<code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>) ont signalé une charge induite
+    inacceptable sur leur fournisseur d'authentification. Cela se
+    produit typiquement dans le cas où une page HTML contient des
+    centaines d'objets (images, scripts, pages de styles, media,
+    etc...), et où une requête pour cette page génère des centaines de
+    sous-requêtes à effet immédiat pour des contenus supplémentaires
+    authentifiés.</p>
+    <p>Pour résoudre ce problème, mod_authn_socache fournit une solution
+    qui permet de maintenir un cache des données d'authentification.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usage" id="usage">Utilisation</a></h2>
+    <p>Le cache d'authentification doit être utilisé lorsque les
+    requêtes d'authentification induisent une charge significative sur le
+    serveur, le serveur d'arrière-plan ou le réseau. Cette mise en cache
+    n'apportera probablement aucune amélioration dans le cas d'une
+    authentification à base de fichier (<code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>)
+    ou de base de données dbm (<code class="module"><a href="../mod/mod_authn_dbm.html">mod_authn_dbm</a></code>) car ces
+    méthodes sont de par leur conception rapides et légères (la mise en
+    cache peut cependant s'avérer utile dans le cas où le fichier est
+    situé sur un montage réseau). Les fournisseurs d'authentification
+    basés sur SQL ou LDAP ont plus de chances de tirer parti de cette
+    mise en cache, en particulier lorsqu'un problème de performances est
+    détecté. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> gérant son propre cache,
+    seul <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> est concerné par notre sujet.</p>
+    <p>Les principales règles à appliquer pour la mise en cache sont :</p>
+    <ol><li>Inclure le fournisseur pour lequel vous voulez effectuer une
+    mise en cache dans une directive
+    <code class="directive">AuthnCacheProvideFor</code>.</li>
+        <li>Mettre <var>socache</var> avant le fournisseur pour lequel
+       vous voulez effectuer une mise en cache dans votre directive
+       <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
+       ou <code class="directive"><a href="../mod/mod_auth_digest.html#authdigestprovider">AuthDigestProvider</a></code>.</li>
+    </ol>
+    <p>Voici un exemple simple permettant d'accélérer
+    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code> et utilisant dbm comme moteur de la
+    mise en cache :</p>
+    <pre class="prettyprint lang-config">    #AuthnCacheSOCache est optionnel. S'il est défini, il l'est pour
+    #l'ensemble du serveur
+AuthnCacheSOCache dbm
+&lt;Directory /usr/www/myhost/private&gt;
+    AuthType Basic
+    AuthName "Cached Authentication Example"
+    AuthBasicProvider socache dbd
+    AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
+    AuthnCacheProvideFor dbd
+    Require valid-user
+    #Optionnel
+    AuthnCacheContext dbd-authn-example
+&lt;/Directory&gt;</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="dev" id="dev">La mise en cache avec les modules tiers</a></h2>
+    <p>Les développeurs de modules doivent savoir que la mise en cache
+    avec mod_authn_socache doit être activée dans leurs modules. La
+    fonction de l'API <var>ap_authn_cache_store</var> permet de
+    mettre en cache les données d'authentification qu'un fournisseur
+    vient de rechercher ou de générer. Vous trouverez des exemples
+    d'utilisation à <a href="http://svn.eu.apache.org/viewvc?view=revision&amp;revision=957072">r957072</a>, où trois fournisseurs authn sont activés pour la mise
+    en cache.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_socache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 57575a360e7b562ee36bdeb124e8c35c8ddc44b6..9c7d8d8f7a1a4200b54bd1661eeffb719822fa1d 100644 (file)
@@ -65,6 +65,127 @@ and Access Control</a></li>
 <li><code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthnzFcgiCheckAuthnProvider" id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</a> <a name="authnzfcgicheckauthnprovider" id="authnzfcgicheckauthnprovider">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a FastCGI application to handle the check_authn
+authentication hook.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code>
+<em>option</em> ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
+</table>
+    <p>This directive is used to enable a FastCGI authorizer to
+    handle a specific processing phase of authentication or
+    authorization.</p>
+
+    <p>Some capabilities of FastCGI authorizers require enablement
+    using this directive instead of
+    <code class="directive">AuthBasicProvider</code>:</p>
+
+    <ul>
+      <li>Non-Basic authentication; generally, determining the user
+      id of the client and returning it from the authorizer; see the
+      <code>UserExpr</code> option below</li>
+      <li>Selecting a custom response code; for a non-200 response
+      from the authorizer, the code from the authorizer will be the
+      status of the response</li>
+      <li>Setting the body of a non-200 response; if the authorizer
+      provides a response body with a non-200 response, that body
+      will be returned to the client; up to 8192 bytes of text are
+      supported</li>
+    </ul>
+
+    <dl>
+      <dt><em>provider-name</em></dt>
+      <dd>This is the name of a provider defined with <code class="directive">
+      AuthnzFcgiDefineProvider</code>.</dd>
+
+      <dt><code>None</code></dt>
+      <dd>Specify <code>None</code> to disable a provider enabled
+      with this directive in an outer scope, such as in a parent
+      directory.</dd>
+
+      <dt><em>option</em></dt>
+      <dd>The following options are supported:
+      
+      <dl>
+         <dt>Authoritative On|Off (default On)</dt>
+         <dd>This controls whether or not other modules are allowed
+         to run when this module has a FastCGI authorizer configured
+         and it fails the request.</dd>
+
+         <dt>DefaultUser <em>userid</em></dt>
+         <dd>When the authorizer returns success and <code>UserExpr</code>
+         is configured and evaluates to an empty string (e.g., authorizer
+         didn't return a variable), this value will be used as the user
+         id.  This is typically used when the authorizer has a concept of
+         guest, or unauthenticated, users and guest users are mapped to
+         some specific user id for logging and other purposes.</dd>
+
+         <dt>RequireBasicAuth On|Off (default Off)</dt>
+         <dd>This controls whether or not Basic auth is required
+         before passing the request to the authorizer.  If required,
+         the authorizer won't be invoked without a user id and
+         password; 401 will be returned for a request without that.</dd>
+
+         <dt>UserExpr <em>expr</em> (no default)</dt>
+         <dd>When Basic authentication isn't provided by the client
+         and the authorizer determines the user, this expression,
+         evaluated after calling the authorizer, determines the
+         user.  The expression follows <a href="../expr.html">
+         ap_expr syntax</a> and must resolve to a string.  A typical
+         use is to reference a <code>Variable-<em>XXX</em></code> 
+         setting returned by the authorizer using an option like
+         <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>.  If
+         this option is specified and the user id can't be retrieved
+         using the expression after a successful authentication, the
+         request will be rejected with a 500 error.</dd>
+
+       </dl>
+      </dd>
+     </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthnzFcgiDefineProvider" id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</a> <a name="authnzfcgidefineprovider" id="authnzfcgidefineprovider">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Defines a FastCGI application as a provider for
+authentication and/or authorization</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em>
+<em>backend-address</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
+</table>
+    <p>This directive is used to define a FastCGI application as
+    a provider for a particular phase of authentication or
+    authorization.</p>
+
+    <dl>
+      <dt><em>type</em></dt>
+      <dd>This must be set to <em>authn</em> for authentication,
+      <em>authz</em> for authorization, or <em>authnz</em> for
+      a generic FastCGI authorizer which performs both checks.</dd>
+
+      <dt><em>provider-name</em></dt>
+      <dd>This is used to assign a name to the provider which is
+      used in other directives such as 
+      <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
+      and 
+      <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd>
+
+      <dt><em>backend-address</em></dt>
+      <dd>This specifies the address of the application, in the form
+      <em>fcgi://hostname:port/</em>.  The application process(es)
+      must be managed independently, such as with
+      <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="invocations" id="invocations">Invocation modes</a></h2>
 
@@ -406,127 +527,6 @@ Require FooAuthnz</pre>
 <pre class="prettyprint lang-config">LogLevel info authnz_fcgi:trace8</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthnzFcgiCheckAuthnProvider" id="AuthnzFcgiCheckAuthnProvider">AuthnzFcgiCheckAuthnProvider</a> <a name="authnzfcgicheckauthnprovider" id="authnzfcgicheckauthnprovider">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a FastCGI application to handle the check_authn
-authentication hook.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiCheckAuthnProvider <em>provider-name</em>|<code>None</code>
-<em>option</em> ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
-</table>
-    <p>This directive is used to enable a FastCGI authorizer to
-    handle a specific processing phase of authentication or
-    authorization.</p>
-
-    <p>Some capabilities of FastCGI authorizers require enablement
-    using this directive instead of
-    <code class="directive">AuthBasicProvider</code>:</p>
-
-    <ul>
-      <li>Non-Basic authentication; generally, determining the user
-      id of the client and returning it from the authorizer; see the
-      <code>UserExpr</code> option below</li>
-      <li>Selecting a custom response code; for a non-200 response
-      from the authorizer, the code from the authorizer will be the
-      status of the response</li>
-      <li>Setting the body of a non-200 response; if the authorizer
-      provides a response body with a non-200 response, that body
-      will be returned to the client; up to 8192 bytes of text are
-      supported</li>
-    </ul>
-
-    <dl>
-      <dt><em>provider-name</em></dt>
-      <dd>This is the name of a provider defined with <code class="directive">
-      AuthnzFcgiDefineProvider</code>.</dd>
-
-      <dt><code>None</code></dt>
-      <dd>Specify <code>None</code> to disable a provider enabled
-      with this directive in an outer scope, such as in a parent
-      directory.</dd>
-
-      <dt><em>option</em></dt>
-      <dd>The following options are supported:
-      
-      <dl>
-         <dt>Authoritative On|Off (default On)</dt>
-         <dd>This controls whether or not other modules are allowed
-         to run when this module has a FastCGI authorizer configured
-         and it fails the request.</dd>
-
-         <dt>DefaultUser <em>userid</em></dt>
-         <dd>When the authorizer returns success and <code>UserExpr</code>
-         is configured and evaluates to an empty string (e.g., authorizer
-         didn't return a variable), this value will be used as the user
-         id.  This is typically used when the authorizer has a concept of
-         guest, or unauthenticated, users and guest users are mapped to
-         some specific user id for logging and other purposes.</dd>
-
-         <dt>RequireBasicAuth On|Off (default Off)</dt>
-         <dd>This controls whether or not Basic auth is required
-         before passing the request to the authorizer.  If required,
-         the authorizer won't be invoked without a user id and
-         password; 401 will be returned for a request without that.</dd>
-
-         <dt>UserExpr <em>expr</em> (no default)</dt>
-         <dd>When Basic authentication isn't provided by the client
-         and the authorizer determines the user, this expression,
-         evaluated after calling the authorizer, determines the
-         user.  The expression follows <a href="../expr.html">
-         ap_expr syntax</a> and must resolve to a string.  A typical
-         use is to reference a <code>Variable-<em>XXX</em></code> 
-         setting returned by the authorizer using an option like
-         <code>UserExpr "%{reqenv:<em>XXX</em>}"</code>.  If
-         this option is specified and the user id can't be retrieved
-         using the expression after a successful authentication, the
-         request will be rejected with a 500 error.</dd>
-
-       </dl>
-      </dd>
-     </dl>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthnzFcgiDefineProvider" id="AuthnzFcgiDefineProvider">AuthnzFcgiDefineProvider</a> <a name="authnzfcgidefineprovider" id="authnzfcgidefineprovider">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Defines a FastCGI application as a provider for
-authentication and/or authorization</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthnzFcgiDefineProvider <em>type</em> <em>provider-name</em>
-<em>backend-address</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_fcgi</td></tr>
-</table>
-    <p>This directive is used to define a FastCGI application as
-    a provider for a particular phase of authentication or
-    authorization.</p>
-
-    <dl>
-      <dt><em>type</em></dt>
-      <dd>This must be set to <em>authn</em> for authentication,
-      <em>authz</em> for authorization, or <em>authnz</em> for
-      a generic FastCGI authorizer which performs both checks.</dd>
-
-      <dt><em>provider-name</em></dt>
-      <dd>This is used to assign a name to the provider which is
-      used in other directives such as 
-      <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>
-      and 
-      <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>.</dd>
-
-      <dt><em>backend-address</em></dt>
-      <dd>This specifies the address of the application, in the form
-      <em>fcgi://hostname:port/</em>.  The application process(es)
-      must be managed independently, such as with
-      <code class="program"><a href="../programs/fcgistarter.html">fcgistarter</a></code>.</dd>
-    </dl>
-
 </div>
 </div>
 <div class="bottomlang">
index 0cd37010554be1c77c39c744b2aa08ce574c089e..37e1c0e8cdc43c5eb0e79c2faaed299df72a0a8b 100644 (file)
@@ -102,1283 +102,1283 @@ for HTTP Basic authentication.</td></tr>
 <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="contents" id="contents">Contents</a></h2>
-
-    <ul>
-      <li>
-        <a href="#operation">Operation</a>
-
-        <ul>
-          <li><a href="#authenphase">The Authentication
-          Phase</a></li>
-
-          <li><a href="#authorphase">The Authorization
-          Phase</a></li>
-        </ul>
-      </li>
-
-      <li>
-        <a href="#requiredirectives">The Require Directives</a>
-
-        <ul>
-          <li><a href="#requser">Require ldap-user</a></li>
-          <li><a href="#reqgroup">Require ldap-group</a></li>
-          <li><a href="#reqdn">Require ldap-dn</a></li>
-          <li><a href="#reqattribute">Require ldap-attribute</a></li>
-          <li><a href="#reqfilter">Require ldap-filter</a></li>
-        </ul>
-      </li>
-
-      <li><a href="#examples">Examples</a></li>
-      <li><a href="#usingtls">Using TLS</a></li>
-      <li><a href="#usingssl">Using SSL</a></li>
-      <li><a href="#exposed">Exposing Login Information</a></li>
-      <li><a href="#activedirectory">Using Active Directory</a></li>
-      <li>
-        <a href="#frontpage">Using Microsoft FrontPage with
-        <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
-
-        <ul>
-          <li><a href="#howitworks">How It Works</a></li>
-          <li><a href="#fpcaveats">Caveats</a></li>
-        </ul>
-      </li>
-    </ul>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="operation" id="operation">Operation</a></h2>
-
-    <p>There are two phases in granting access to a user. The first
-    phase is authentication, in which the <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-    authentication provider verifies that the user's credentials are valid.
-    This is also called the <em>search/bind</em> phase. The second phase is
-    authorization, in which <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> determines
-    if the authenticated user is allowed access to the resource in
-    question. This is also known as the <em>compare</em>
-    phase.</p>
+<div class="directive-section"><h2><a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a> <a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the prefix for environment variables set during
+authorization</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPAuthorizePrefix <em>prefix</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
+</table>
+    <p>This directive allows you to override the prefix used for environment
+    variables set during LDAP authorization.  If <em>AUTHENTICATE_</em> is
+    specified, consumers of these environment variables see the same information
+    whether LDAP has performed authentication, authorization, or both.</p>
 
-    <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> registers both an authn_ldap authentication
-    provider and an authz_ldap authorization handler.  The authn_ldap
-    authentication provider can be enabled through the
-    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> directive
-    using the <code>ldap</code> value. The authz_ldap handler extends the
-    <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive's authorization types
-    by adding <code>ldap-user</code>, <code>ldap-dn</code> and <code>ldap-group</code>
-    values.</p>
+    <div class="note"><h3>Note</h3>
+    No authorization variables are set when a user is authorized on the basis of
+    <code>Require valid-user</code>.
+    </div>
 
-<h3><a name="authenphase" id="authenphase">The Authentication
-    Phase</a></h3>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a> <a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>By default, subsequent authentication providers are only queried if a
+    user cannot be mapped to a DN, but not if the user can be mapped to a DN and their
+    password cannot be verified with an LDAP bind.
+    If <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code>
+    is set to <em>off</em>, other configured authentication modules will have
+    a chance to validate the user if the LDAP bind (with the current user's credentials)
+    fails for any reason.</p>
+    <p> This allows users present in both LDAP and
+    <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> to authenticate
+    when the LDAP server is available but the user's account is locked or password
+    is otherwise unusable.</p>
 
-    <p>During the authentication phase, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-    searches for an entry in the directory that matches the username
-    that the HTTP client passes. If a single unique match is found,
-    then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> attempts to bind to the
-    directory server using the DN of the entry plus the password
-    provided by the HTTP client. Because it does a search, then a
-    bind, it is often referred to as the search/bind phase. Here are
-    the steps taken during the search/bind phase.</p>
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
+<li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a> <a name="authldapbinddn" id="authldapbinddn">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Optional DN to use in binding to the LDAP server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPBindDN <em>distinguished-name</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>An optional DN used to bind to the server when searching for
+    entries. If not provided, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will use
+    an anonymous bind.</p>
 
-    <ol>
-      <li>Generate a search filter by combining the attribute and
-      filter provided in the <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> directive with
-      the username passed by the HTTP client.</li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a> <a name="authldapbindpassword" id="authldapbindpassword">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Password used in conjuction with the bind DN</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPBindPassword <em>password</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td><em>exec:</em> was added in 2.4.5.</td></tr>
+</table>
+    <p>A bind password to use in conjunction with the bind DN. Note
+    that the bind password is probably sensitive data, and should be
+    properly protected. You should only use the <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> and <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> if you
+    absolutely need them to search the directory.</p>
 
-      <li>Search the directory using the generated filter. If the
-      search does not return exactly one entry, deny or decline
-      access.</li>
+    <p>If the value begins with exec: the resulting command will be
+    executed and the first line returned to standard output by the
+    program will be used as the password.</p>
+<pre class="prettyprint lang-config">#Password used as-is
+AuthLDAPBindPassword secret
 
-      <li>Fetch the distinguished name of the entry retrieved from
-      the search and attempt to bind to the LDAP server using that
-      DN and the password passed by the HTTP client. If the bind is
-      unsuccessful, deny or decline access.</li>
-    </ol>
+#Run /path/to/program to get my password
+AuthLDAPBindPassword exec:/path/to/program
 
-    <p>The following directives are used during the search/bind
-    phase</p>
+#Run /path/to/otherProgram and provide arguments
+AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre>
 
-    <table>
-      
-      <tr>
-        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
 
-        <td>Specifies the LDAP server, the
-        base DN, the attribute to use in the search, as well as the
-        extra search filter to use.</td>
-      </tr>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a> <a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Language to charset conversion configuration file</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPCharsetConfig <em>file-path</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>The <code class="directive">AuthLDAPCharsetConfig</code> directive sets the location
+    of the language to charset conversion configuration file. <var>File-path</var> is relative
+    to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. This file specifies
+    the list of language extensions to character sets.
+    Most administrators use the provided <code>charset.conv</code>
+    file, which associates common language extensions to character sets.</p>
 
-        <td>An optional DN to bind with
-        during the search phase.</td>
-      </tr>
+    <p>The file contains lines in the following format:</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
+    <div class="example"><p><code>
+      <var>Language-Extension</var> <var>charset</var> [<var>Language-String</var>] ...
+    </code></p></div>
 
-        <td>An optional password to bind
-        with during the search phase.</td>
-      </tr>
-    </table>
+    <p>The case of the extension does not matter. Blank lines, and lines
+    beginning with a hash character (<code>#</code>) are ignored.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a> <a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the authenticated user's credentials to perform authorization comparisons</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
+</table>
+    <p>When set, and <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has authenticated the
+    user, LDAP comparisons for authorization use the queried distinguished name (DN)
+    and HTTP basic authentication password of the authenticated user instead of
+    the servers configured credentials.</p>
 
-<h3><a name="authorphase" id="authorphase">The Authorization Phase</a></h3>
+    <p> The <em>ldap-attribute</em>, <em>ldap-user</em>, and <em>ldap-group</em> (single-level only)
+    authorization checks use comparisons.</p>
 
-    <p>During the authorization phase, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-    attempts to determine if the user is authorized to access the
-    resource.  Many of these checks require
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> to do a compare operation on the
-    LDAP server. This is why this phase is often referred to as the
-    compare phase. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> accepts the
-    following <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
-    directives to determine if the credentials are acceptable:</p>
+    <p>This directive only has effect on the comparisons performed during
+    nested group processing when <code class="directive"><a href="#authldapsearchasuser">
+    AuthLDAPSearchAsUser</a></code> is also enabled.</p>
 
-    <ul>
-      <li>Grant access if there is a <a href="#reqgroup"><code>Require ldap-user</code></a> directive, and the
-      username in the directive matches the username passed by the
-      client.</li>
+    <p> This directive should only be used when your LDAP server doesn't
+        accept anonymous comparisons and you cannot use a dedicated
+        <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+    </p>
 
-      <li>Grant access if there is a <a href="#reqdn"><code>Require
-      ldap-dn</code></a> directive, and the DN in the directive matches
-      the DN fetched from the LDAP directory.</li>
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a> <a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the LDAP server to compare the DNs</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>When set, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will use the LDAP
+    server to compare the DNs. This is the only foolproof way to
+    compare DNs.  <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will search the
+    directory for the DN specified with the <a href="#reqdn"><code>Require dn</code></a> directive, then,
+    retrieve the DN and compare it with the DN retrieved from the user
+    entry. If this directive is not set,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> simply does a string comparison. It
+    is possible to get false negatives with this approach, but it is
+    much faster. Note the <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> cache can speed up
+    DN comparison in most situations.</p>
 
-      <li>Grant access if there is a <a href="#reqgroup"><code>Require ldap-group</code></a> directive, and
-      the DN fetched from the LDAP directory (or the username
-      passed by the client) occurs in the LDAP group or, potentially, in
-      one of its sub-groups.</li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a> <a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>When will the module de-reference aliases</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>This directive specifies when <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will
+    de-reference aliases during LDAP operations. The default is
+    <code>always</code>.</p>
 
-      <li>Grant access if there is a <a href="#reqattribute">
-      <code>Require ldap-attribute</code></a>
-      directive, and the attribute fetched from the LDAP directory
-      matches the given value.</li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a> <a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>LDAP attributes used to identify the user members of
+groups.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPGroupAttribute <em>attribute</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>This directive specifies which LDAP attributes are used to
+    check for user members within groups. Multiple attributes can be used
+    by specifying this directive multiple times. If not specified,
+    then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the <code>member</code> and
+    <code>uniquemember</code> attributes.</p>
 
-      <li>Grant access if there is a <a href="#reqfilter">
-      <code>Require ldap-filter</code></a>
-      directive, and the search filter successfully finds a single user
-      object that matches the dn of the authenticated user.</li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a> <a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the DN of the client username when checking for
+group membership</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>When set <code>on</code>, this directive says to use the
+    distinguished name of the client username when checking for group
+    membership.  Otherwise, the username will be used. For example,
+    assume that the client sent the username <code>bjenson</code>,
+    which corresponds to the LDAP DN <code>cn=Babs Jenson,
+    o=Example</code>. If this directive is set,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will check if the group has
+    <code>cn=Babs Jenson, o=Example</code> as a member. If this
+    directive is not set, then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will
+    check if the group has <code>bjenson</code> as a member.</p>
 
-      <li>otherwise, deny or decline access</li>
-    </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a> <a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines if the server does the initial DN lookup using the basic authentication users'
+own username, instead of anonymously or with hard-coded credentials for the server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
+</table>
+    <p>By default, the server either anonymously, or with a dedicated user and
+     password, converts the basic authentication username into an LDAP
+     distinguished name (DN).  This directive forces the server to use the verbatim username
+     and password provided by the incoming user to perform the initial DN
+     search.</p>
 
-    <p>Other <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> values may also
-    be used which may require loading additional authorization modules.</p>
+     <p> If the verbatim username can't directly bind, but needs some
+     cosmetic transformation, see <code class="directive"><a href="#authldapinitialbindpattern">
+     AuthLDAPInitialBindPattern</a></code>.</p>
 
-    <ul>
-        <li>Grant access to all successfully authenticated users if
-        there is a <a href="#requser"><code>Require valid-user</code></a>
-        directive. (requires <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>)</li>
+     <p> This directive should only be used when your LDAP server doesn't
+         accept anonymous searches and you cannot use a dedicated
+         <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+     </p>
 
-        <li>Grant access if there is a <a href="#reqgroup"><code>Require group</code></a> directive, and
-        <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> has been loaded with the
-        <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>
-        directive set.</li>
+     <div class="note"><h3>Not available with authorization-only</h3>
+         This directive can only be used if this module authenticates the user, and
+         has no effect when this module is used exclusively for authorization.
+     </div>
 
-        <li>others...</li>
-     </ul>
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
+<li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
+<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a> <a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the transformation of the basic authentication username to be used when binding to the LDAP server
+to perform a DN lookup</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPInitialBindPattern<em><var>regex</var> <var>substitution</var></em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (remote username used verbatim)</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
+</table>
+    <p>If <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> is set to
+       <em>ON</em>, the basic authentication username will be transformed according to the
+       regular expression and substituion arguments.</p>
 
+    <p> The regular expression argument is compared against the current basic authentication username.
+        The substitution argument may contain backreferences, but has no other variable interpolation.</p>
 
-    <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the following directives during the
-    compare phase:</p>
+    <p> This directive should only be used when your LDAP server doesn't
+        accept anonymous searches and you cannot use a dedicated
+        <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+    </p>
 
-    <table>
-      
-      <tr>
-        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> </td>
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
 
-        <td>The attribute specified in the
-        URL is used in compare operations for the <code>Require
-        ldap-user</code> operation.</td>
-      </tr>
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
 
-        <td>Determines the behavior of the
-        <code>Require ldap-dn</code> directive.</td>
-      </tr>
+    <div class="note"><h3>Not available with authorization-only</h3>
+        This directive can only be used if this module authenticates the user, and
+        has no effect when this module is used exclusively for authorization.
+    </div>
+    <div class="note"><h3>debugging</h3>
+        The substituted DN is recorded in the environment variable
+        <em>LDAP_BINDASUSER</em>.  If the regular expression does not match the input,
+        the verbatim username is used.
+    </div>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a> <a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the maximum sub-group nesting depth that will be
+evaluated before the user search is discontinued.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Number</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.0 and later</td></tr>
+</table>
+   <p>When this directive is set to a non-zero value <code>X</code>
+   combined with use of the <code>Require ldap-group someGroupDN</code>
+   directive, the provided user credentials will be searched for
+   as a member of the <code>someGroupDN</code> directory object or of
+   any group member of the current group up to the maximum nesting
+   level <code>X</code> specified by this directive.</p>
+   <p>See the <a href="#reqgroup"><code>Require ldap-group</code></a>
+   section for a more detailed example.</p>
 
-        <td>Determines the attribute to
-        use for comparisons in the <code>Require ldap-group</code>
-        directive.</td>
-      </tr>
+   <div class="note"><h3>Nested groups performance</h3>
+   <p> When <code class="directive">AuthLDAPSubGroupAttribute</code> overlaps with
+   <code class="directive">AuthLDAPGroupAttribute</code> (as it does by default and
+   as required by common LDAP schemas), uncached searching for subgroups in 
+   large groups can be very slow. If you use large, non-nested groups, set 
+   <code class="directive">AuthLDAPMaxSubGroupDepth</code> to zero.</p>
+   </div>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
 
-        <td>Specifies whether to use the
-        user DN or the username when doing comparisons for the
-        <code>Require ldap-group</code> directive.</td>
-      </tr>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a> <a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the value of the attribute returned during the user
+query to set the REMOTE_USER environment variable</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>If this directive is set, the value of the
+    <code>REMOTE_USER</code> environment variable will be set to the
+    value of the attribute specified. Make sure that this attribute is
+    included in the list of attributes in the AuthLDAPUrl definition,
+    otherwise this directive will have no effect. This directive, if
+    present, takes precedence over AuthLDAPRemoteUserIsDN. This
+    directive is useful should you want people to log into a website
+    using an email address, but a backend application expects the
+    username as a userid.</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a> <a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the DN of the client username to set the REMOTE_USER
+environment variable</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>If this directive is set to on, the value of the
+    <code>REMOTE_USER</code> environment variable will be set to the full
+    distinguished name of the authenticated user, rather than just
+    the username that was passed by the client. It is turned off by
+    default.</p>
 
-        <td>Determines the maximum depth of sub-groups that will be evaluated
-        during comparisons in the <code>Require ldap-group</code> directive.</td>
-      </tr>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a> <a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the authenticated user's credentials to perform authorization searches</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
+</table>
+    <p>When set, and <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has authenticated the
+    user, LDAP searches for authorization use the queried distinguished name (DN)
+    and HTTP basic authentication password of the authenticated user instead of
+    the servers configured credentials.</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
+    <p> The <em>ldap-filter</em> and <em>ldap-dn</em> authorization
+    checks use searches.</p>
 
-        <td>Determines the attribute to use when obtaining sub-group members
-        of the current group during comparisons in the <code>Require ldap-group</code>
-        directive.</td>
-      </tr>
+    <p>This directive only has effect on the comparisons performed during
+    nested group processing when <code class="directive"><a href="#authldapcompareasuser">
+    AuthLDAPCompareAsUser</a></code> is also enabled.</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
+    <p> This directive should only be used when your LDAP server doesn't
+        accept anonymous searches and you cannot use a dedicated
+        <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+    </p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a> <a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the attribute labels, one value per
+directive line, used to distinguish the members of the current group that
+are groups.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribute</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.0 and later</td></tr>
+</table>
+    <p>An LDAP group object may contain members that are users and
+    members that are groups (called nested or sub groups). The
+    <code>AuthLDAPSubGroupAttribute</code> directive identifies the
+    labels of group members and the <code>AuthLDAPGroupAttribute</code>
+    directive identifies the labels of the user members. Multiple
+    attributes can be used by specifying this directive multiple times.
+    If not specified, then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the
+    <code>member</code> and <code>uniqueMember</code> attributes.</p>
 
-        <td>Specifies the LDAP objectClass values used to identify if queried directory
-        objects really are group objects (as opposed to user objects) during the
-        <code>Require ldap-group</code> directive's sub-group processing.</td>
-      </tr>
-    </table>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a> <a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies which LDAP objectClass values identify directory
+objects that are groups during sub-group processing.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPSubGroupClass <em>LdapObjectClass</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.0 and later</td></tr>
+</table>
+    <p>An LDAP group object may contain members that are users and
+    members that are groups (called nested or sub groups). The
+    <code>AuthLDAPSubGroupAttribute</code> directive identifies the
+    labels of members that may be sub-groups of the current group
+    (as opposed to user members). The <code>AuthLDAPSubGroupClass</code>
+    directive specifies the LDAP objectClass values used in verifying that
+    these potential sub-groups are in fact group objects. Verified sub-groups
+    can then be searched for more user or sub-group members. Multiple
+    attributes can be used by specifying this directive multiple times.
+    If not specified, then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the
+    <code>groupOfNames</code> and <code>groupOfUniqueNames</code> values.</p>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a> <a name="authldapurl" id="authldapurl">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL specifying the LDAP search parameters</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>An RFC 2255 URL which specifies the LDAP search parameters
+    to use. The syntax of the URL is</p>
+<div class="example"><p><code>ldap://host:port/basedn?attribute?scope?filter</code></p></div>
+    <p>If you want to specify more than one LDAP URL that Apache should try in turn, the syntax is:</p>
+<pre class="prettyprint lang-config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</pre>
 
-    <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
-    directives are used during the authorization phase to ensure that
-    a user is allowed to access a resource.  mod_authnz_ldap extends the
-    authorization types with <code>ldap-user</code>, <code>ldap-dn</code>,
-    <code>ldap-group</code>, <code>ldap-attribute</code> and
-    <code>ldap-filter</code>.  Other authorization types may also be
-    used but may require that additional authorization modules be loaded.</p>
+<p><em><strong>Caveat: </strong>If you specify multiple servers, you need to enclose the entire URL string in quotes;
+otherwise you will get an error: "AuthLDAPURL takes one argument, URL to define LDAP connection.." </em>
+You can of course use search parameters on each of these.</p>
 
-    <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
-    within the LDAP require directives.</p>
+<dl>
+<dt>ldap</dt>
 
-<h3><a name="requser" id="requser">Require ldap-user</a></h3>
+        <dd>For regular ldap, use the
+        string <code>ldap</code>. For secure LDAP, use <code>ldaps</code>
+        instead. Secure LDAP is only available if Apache was linked
+        to an LDAP library with SSL support.</dd>
 
-    <p>The <code>Require ldap-user</code> directive specifies what
-    usernames can access the resource. Once
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has retrieved a unique DN from the
-    directory, it does an LDAP compare operation using the username
-    specified in the <code>Require ldap-user</code> to see if that username
-    is part of the just-fetched LDAP entry.  Multiple users can be
-    granted access by putting multiple usernames on the line,
-    separated with spaces. If a username has a space in it, then it
-    must be surrounded with double quotes. Multiple users can also be
-    granted access by using multiple <code>Require ldap-user</code>
-    directives, with one user per line. For example, with a <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> of
-    <code>ldap://ldap/o=Example?cn</code> (i.e., <code>cn</code> is
-    used for searches), the following Require directives could be used
-    to restrict access:</p>
-<pre class="prettyprint lang-config">Require ldap-user "Barbara Jenson"
-Require ldap-user "Fred User"
-Require ldap-user "Joe Manager"</pre>
+<dt>host:port</dt>
 
+        <dd>
+          <p>The name/port of the ldap server (defaults to
+          <code>localhost:389</code> for <code>ldap</code>, and
+          <code>localhost:636</code> for <code>ldaps</code>). To
+          specify multiple, redundant LDAP servers, just list all
+          servers, separated by spaces. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+          will try connecting to each server in turn, until it makes a
+          successful connection. If multiple ldap servers are specified,
+          then entire LDAP URL must be encapsulated in double quotes.</p>
 
-    <p>Because of the way that <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> handles this
-    directive, Barbara Jenson could sign on as <em>Barbara
-    Jenson</em>, <em>Babs Jenson</em> or any other <code>cn</code> that
-    she has in her LDAP entry. Only the single <code>Require
-    ldap-user</code> line is needed to support all values of the attribute
-    in the user's entry.</p>
+          <p>Once a connection has been made to a server, that
+          connection remains active for the life of the
+          <code class="program"><a href="../programs/httpd.html">httpd</a></code> process, or until the LDAP server goes
+          down.</p>
 
-    <p>If the <code>uid</code> attribute was used instead of the
-    <code>cn</code> attribute in the URL above, the above three lines
-    could be condensed to</p>
-<pre class="prettyprint lang-config">Require ldap-user bjenson fuser jmanager</pre>
+          <p>If the LDAP server goes down and breaks an existing
+          connection, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will attempt to
+          re-connect, starting with the primary server, and trying
+          each redundant server in turn. Note that this is different
+          than a true round-robin search.</p>
+        </dd>
 
+<dt>basedn</dt>
 
+        <dd>The DN of the branch of the
+        directory where all searches should start from. At the very
+        least, this must be the top of your directory tree, but
+        could also specify a subtree in the directory.</dd>
 
-<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
+<dt>attribute</dt>
 
-    <p>This directive specifies an LDAP group whose members are
-    allowed access. It takes the distinguished name of the LDAP
-    group. Note: Do not surround the group name with quotes.
-    For example, assume that the following entry existed in
-    the LDAP directory:</p>
-<div class="example"><pre>dn: cn=Administrators, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Barbara Jenson, o=Example
-uniqueMember: cn=Fred User, o=Example</pre></div>
+        <dd>The attribute to search for.
+        Although RFC 2255 allows a comma-separated list of
+        attributes, only the first attribute will be used, no
+        matter how many are provided. If no attributes are
+        provided, the default is to use <code>uid</code>. It's a good
+        idea to choose an attribute that will be unique across all
+        entries in the subtree you will be using.  All attributes
+        listed will be put into the environment with an AUTHENTICATE_ prefix
+        for use by other modules.</dd>
 
-    <p>The following directive would grant access to both Fred and
-    Barbara:</p>
-<pre class="prettyprint lang-config">Require ldap-group cn=Administrators, o=Example</pre>
+<dt>scope</dt>
 
+        <dd>The scope of the search. Can be either <code>one</code> or
+        <code>sub</code>. Note that a scope of <code>base</code> is
+        also supported by RFC 2255, but is not supported by this
+        module. If the scope is not provided, or if <code>base</code> scope
+        is specified, the default is to use a scope of
+        <code>sub</code>.</dd>
 
-    <p>Members can also be found within sub-groups of a specified LDAP group
-    if <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>
-    is set to a value greater than 0. For example, assume the following entries
-    exist in the LDAP directory:</p>
-<div class="example"><pre>dn: cn=Employees, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Managers, o=Example
-uniqueMember: cn=Administrators, o=Example
-uniqueMember: cn=Users, o=Example
+<dt>filter</dt>
 
-dn: cn=Managers, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Bob Ellis, o=Example
-uniqueMember: cn=Tom Jackson, o=Example
+        <dd>A valid LDAP search filter. If
+        not provided, defaults to <code>(objectClass=*)</code>, which
+        will search for all objects in the tree. Filters are
+        limited to approximately 8000 characters (the definition of
+        <code>MAX_STRING_LEN</code> in the Apache source code). This
+        should be more than sufficient for any application. In 2.4.10 and later,
+        The word "none" may be used to not use any filter, which may be 
+        required by some primitive LDAP servers.</dd>
+</dl>
 
-dn: cn=Administrators, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Barbara Jenson, o=Example
-uniqueMember: cn=Fred User, o=Example
+    <p>When doing searches, the attribute, filter and username passed
+    by the HTTP client are combined to create a search filter that
+    looks like
+    <code>(&amp;(<em>filter</em>)(<em>attribute</em>=<em>username</em>))</code>.</p>
 
-dn: cn=Users, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Allan Jefferson, o=Example
-uniqueMember: cn=Paul Tilley, o=Example
-uniqueMember: cn=Temporary Employees, o=Example
+    <p>For example, consider an URL of
+    <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>. When
+    a client attempts to connect using a username of <code>Babs
+    Jenson</code>, the resulting search filter will be
+    <code>(&amp;(posixid=*)(cn=Babs Jenson))</code>.</p>
 
-dn: cn=Temporary Employees, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Jim Swenson, o=Example
-uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
+    <p>An optional parameter can be added to allow the LDAP Url to override
+    the connection type.  This parameter can be one of the following:</p>
 
-    <p>The following directives would allow access for Bob Ellis, Tom Jackson,
-    Barbara Jenson, Fred User, Allan Jefferson, and Paul Tilley but would not
-    allow access for Jim Swenson, or Elliot Rhodes (since they are at a
-    sub-group depth of 2):</p>
-<pre class="prettyprint lang-config">Require ldap-group cn=Employees, o=Example
-AuthLDAPMaxSubGroupDepth 1</pre>
+<dl>
+    <dt>NONE</dt>
+        <dd>Establish an unsecure connection on the default LDAP port. This
+        is the same as <code>ldap://</code> on port 389.</dd>
+    <dt>SSL</dt>
+        <dd>Establish a secure connection on the default secure LDAP port.
+        This is the same as <code>ldaps://</code></dd>
+    <dt>TLS | STARTTLS</dt>
+        <dd>Establish an upgraded secure connection on the default LDAP port.
+        This connection will be initiated on port 389 by default and then
+        upgraded to a secure connection on the same port.</dd>
+</dl>
+
+    <p>See above for examples of <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> URLs.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="contents" id="contents">Contents</a></h2>
 
-    <p>Behavior of this directive is modified by the <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>, <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>, <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>, <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, and <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>
-    directives.</p>
+    <ul>
+      <li>
+        <a href="#operation">Operation</a>
 
+        <ul>
+          <li><a href="#authenphase">The Authentication
+          Phase</a></li>
 
-<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
+          <li><a href="#authorphase">The Authorization
+          Phase</a></li>
+        </ul>
+      </li>
 
-    <p>The <code>Require ldap-dn</code> directive allows the administrator
-    to grant access based on distinguished names. It specifies a DN
-    that must match for access to be granted. If the distinguished
-    name that was retrieved from the directory server matches the
-    distinguished name in the <code>Require ldap-dn</code>, then
-    authorization is granted. Note: do not surround the distinguished
-    name with quotes.</p>
+      <li>
+        <a href="#requiredirectives">The Require Directives</a>
 
-    <p>The following directive would grant access to a specific
-    DN:</p>
-<pre class="prettyprint lang-config">Require ldap-dn cn=Barbara Jenson, o=Example</pre>
+        <ul>
+          <li><a href="#requser">Require ldap-user</a></li>
+          <li><a href="#reqgroup">Require ldap-group</a></li>
+          <li><a href="#reqdn">Require ldap-dn</a></li>
+          <li><a href="#reqattribute">Require ldap-attribute</a></li>
+          <li><a href="#reqfilter">Require ldap-filter</a></li>
+        </ul>
+      </li>
 
+      <li><a href="#examples">Examples</a></li>
+      <li><a href="#usingtls">Using TLS</a></li>
+      <li><a href="#usingssl">Using SSL</a></li>
+      <li><a href="#exposed">Exposing Login Information</a></li>
+      <li><a href="#activedirectory">Using Active Directory</a></li>
+      <li>
+        <a href="#frontpage">Using Microsoft FrontPage with
+        <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
 
-    <p>Behavior of this directive is modified by the <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>
-    directive.</p>
+        <ul>
+          <li><a href="#howitworks">How It Works</a></li>
+          <li><a href="#fpcaveats">Caveats</a></li>
+        </ul>
+      </li>
+    </ul>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="operation" id="operation">Operation</a></h2>
 
+    <p>There are two phases in granting access to a user. The first
+    phase is authentication, in which the <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+    authentication provider verifies that the user's credentials are valid.
+    This is also called the <em>search/bind</em> phase. The second phase is
+    authorization, in which <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> determines
+    if the authenticated user is allowed access to the resource in
+    question. This is also known as the <em>compare</em>
+    phase.</p>
 
-<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
+    <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> registers both an authn_ldap authentication
+    provider and an authz_ldap authorization handler.  The authn_ldap
+    authentication provider can be enabled through the
+    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> directive
+    using the <code>ldap</code> value. The authz_ldap handler extends the
+    <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive's authorization types
+    by adding <code>ldap-user</code>, <code>ldap-dn</code> and <code>ldap-group</code>
+    values.</p>
 
-    <p>The <code>Require ldap-attribute</code> directive allows the
-    administrator to grant access based on attributes of the authenticated
-    user in the LDAP directory.  If the attribute in the directory
-    matches the value given in the configuration, access is granted.</p>
+<h3><a name="authenphase" id="authenphase">The Authentication
+    Phase</a></h3>
 
-    <p>The following directive would grant access to anyone with
-    the attribute employeeType = active</p>
+    <p>During the authentication phase, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+    searches for an entry in the directory that matches the username
+    that the HTTP client passes. If a single unique match is found,
+    then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> attempts to bind to the
+    directory server using the DN of the entry plus the password
+    provided by the HTTP client. Because it does a search, then a
+    bind, it is often referred to as the search/bind phase. Here are
+    the steps taken during the search/bind phase.</p>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
+    <ol>
+      <li>Generate a search filter by combining the attribute and
+      filter provided in the <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> directive with
+      the username passed by the HTTP client.</li>
 
+      <li>Search the directory using the generated filter. If the
+      search does not return exactly one entry, deny or decline
+      access.</li>
 
-    <p>Multiple attribute/value pairs can be specified on the same line
-    separated by spaces or they can be specified in multiple
-    <code>Require ldap-attribute</code> directives. The effect of listing
-    multiple attribute/values pairs is an OR operation. Access will be
-    granted if any of the listed attribute values match the value of the
-    corresponding attribute in the user object. If the value of the
-    attribute contains a space, only the value must be within double quotes.</p>
+      <li>Fetch the distinguished name of the entry retrieved from
+      the search and attempt to bind to the LDAP server using that
+      DN and the password passed by the HTTP client. If the bind is
+      unsuccessful, deny or decline access.</li>
+    </ol>
 
-    <p>The following directive would grant access to anyone with
-    the city attribute equal to "San Jose" or status equal to "Active"</p>
+    <p>The following directives are used during the search/bind
+    phase</p>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
+    <table>
+      
+      <tr>
+        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
 
+        <td>Specifies the LDAP server, the
+        base DN, the attribute to use in the search, as well as the
+        extra search filter to use.</td>
+      </tr>
 
+      <tr>
+        <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
 
+        <td>An optional DN to bind with
+        during the search phase.</td>
+      </tr>
 
-<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
+      <tr>
+        <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
 
-    <p>The <code>Require ldap-filter</code> directive allows the
-    administrator to grant access based on a complex LDAP search filter.
-    If the dn returned by the filter search matches the authenticated user
-    dn, access is granted.</p>
+        <td>An optional password to bind
+        with during the search phase.</td>
+      </tr>
+    </table>
 
-    <p>The following directive would grant access to anyone having a cell phone
-    and is in the marketing department</p>
 
-    <pre class="prettyprint lang-config">Require ldap-filter &amp;(cell=*)(department=marketing)</pre>
+<h3><a name="authorphase" id="authorphase">The Authorization Phase</a></h3>
 
+    <p>During the authorization phase, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+    attempts to determine if the user is authorized to access the
+    resource.  Many of these checks require
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> to do a compare operation on the
+    LDAP server. This is why this phase is often referred to as the
+    compare phase. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> accepts the
+    following <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
+    directives to determine if the credentials are acceptable:</p>
 
-    <p>The difference between the <code>Require ldap-filter</code> directive and the
-    <code>Require ldap-attribute</code> directive is that <code>ldap-filter</code>
-    performs a search operation on the LDAP directory using the specified search
-    filter rather than a simple attribute comparison. If a simple attribute
-    comparison is all that is required, the comparison operation performed by
-    <code>ldap-attribute</code> will be faster than the search operation
-    used by <code>ldap-filter</code> especially within a large directory.</p>
+    <ul>
+      <li>Grant access if there is a <a href="#reqgroup"><code>Require ldap-user</code></a> directive, and the
+      username in the directive matches the username passed by the
+      client.</li>
 
+      <li>Grant access if there is a <a href="#reqdn"><code>Require
+      ldap-dn</code></a> directive, and the DN in the directive matches
+      the DN fetched from the LDAP directory.</li>
 
+      <li>Grant access if there is a <a href="#reqgroup"><code>Require ldap-group</code></a> directive, and
+      the DN fetched from the LDAP directory (or the username
+      passed by the client) occurs in the LDAP group or, potentially, in
+      one of its sub-groups.</li>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
+      <li>Grant access if there is a <a href="#reqattribute">
+      <code>Require ldap-attribute</code></a>
+      directive, and the attribute fetched from the LDAP directory
+      matches the given value.</li>
 
-    <ul>
-      <li>
-        Grant access to anyone who exists in the LDAP directory,
-        using their UID for searches.
-<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
-Require valid-user</pre>
+      <li>Grant access if there is a <a href="#reqfilter">
+      <code>Require ldap-filter</code></a>
+      directive, and the search filter successfully finds a single user
+      object that matches the dn of the authenticated user.</li>
 
-      </li>
+      <li>otherwise, deny or decline access</li>
+    </ul>
 
-      <li>
-        The next example is the same as above; but with the fields
-        that have useful defaults omitted. Also, note the use of a
-        redundant LDAP server.
-<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
-Require valid-user</pre>
+    <p>Other <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> values may also
+    be used which may require loading additional authorization modules.</p>
 
-      </li>
+    <ul>
+        <li>Grant access to all successfully authenticated users if
+        there is a <a href="#requser"><code>Require valid-user</code></a>
+        directive. (requires <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>)</li>
 
-      <li>
-        The next example is similar to the previous one, but it
-        uses the common name instead of the UID. Note that this
-        could be problematical if multiple people in the directory
-        share the same <code>cn</code>, because a search on <code>cn</code>
-        <strong>must</strong> return exactly one entry. That's why
-        this approach is not recommended: it's a better idea to
-        choose an attribute that is guaranteed unique in your
-        directory, such as <code>uid</code>.
-<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
-Require valid-user</pre>
+        <li>Grant access if there is a <a href="#reqgroup"><code>Require group</code></a> directive, and
+        <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> has been loaded with the
+        <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>
+        directive set.</li>
 
-      </li>
+        <li>others...</li>
+     </ul>
 
-      <li>
-        Grant access to anybody in the Administrators group. The
-        users must authenticate using their UID.
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
-Require ldap-group cn=Administrators, o=Example</pre>
 
-      </li>
+    <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the following directives during the
+    compare phase:</p>
 
-      <li>
-        Grant access to anybody in the group whose name matches the
-        hostname of the virtual host. In this example an
-        <a href="../expr.html">expression</a> is used to build the filter.
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
-Require ldap-group cn=%{SERVER_NAME}, o=Example</pre>
+    <table>
+      
+      <tr>
+        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> </td>
 
-      </li>
+        <td>The attribute specified in the
+        URL is used in compare operations for the <code>Require
+        ldap-user</code> operation.</td>
+      </tr>
 
-      <li>
-        The next example assumes that everyone at Example who
-        carries an alphanumeric pager will have an LDAP attribute
-        of <code>qpagePagerID</code>. The example will grant access
-        only to people (authenticated via their UID) who have
-        alphanumeric pagers:
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
-Require valid-user</pre>
+      <tr>
+        <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
 
-      </li>
+        <td>Determines the behavior of the
+        <code>Require ldap-dn</code> directive.</td>
+      </tr>
 
-      <li>
-        <p>The next example demonstrates the power of using filters
-        to accomplish complicated administrative requirements.
-        Without filters, it would have been necessary to create a
-        new LDAP group and ensure that the group's members remain
-        synchronized with the pager users. This becomes trivial
-        with filters. The goal is to grant access to anyone who has
-        a pager, plus grant access to Joe Manager, who doesn't
-        have a pager, but does need to access the same
-        resource:</p>
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
-Require valid-user</pre>
+      <tr>
+        <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
 
+        <td>Determines the attribute to
+        use for comparisons in the <code>Require ldap-group</code>
+        directive.</td>
+      </tr>
 
-        <p>This last may look confusing at first, so it helps to
-        evaluate what the search filter will look like based on who
-        connects, as shown below.  If
-        Fred User connects as <code>fuser</code>, the filter would look
-        like</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
+        <td>Specifies whether to use the
+        user DN or the username when doing comparisons for the
+        <code>Require ldap-group</code> directive.</td>
+      </tr>
 
-        <p>The above search will only succeed if <em>fuser</em> has a
-        pager. When Joe Manager connects as <em>jmanager</em>, the
-        filter looks like</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
+        <td>Determines the maximum depth of sub-groups that will be evaluated
+        during comparisons in the <code>Require ldap-group</code> directive.</td>
+      </tr>
 
-        <p>The above search will succeed whether <em>jmanager</em>
-        has a pager or not.</p>
-      </li>
-    </ul>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingtls" id="usingtls">Using TLS</a></h2>
+      <tr>
+        <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
 
-    <p>To use TLS, see the <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> directives <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> and <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
+        <td>Determines the attribute to use when obtaining sub-group members
+        of the current group during comparisons in the <code>Require ldap-group</code>
+        directive.</td>
+      </tr>
 
-    <p>An optional second parameter can be added to the
-    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> to override
-    the default connection type set by <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.
-    This will allow the connection established by an <em>ldap://</em> Url
-    to be upgraded to a secure connection on the same port.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingssl" id="usingssl">Using SSL</a></h2>
+      <tr>
+        <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
 
-    <p>To use SSL, see the <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> directives <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> and <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
+        <td>Specifies the LDAP objectClass values used to identify if queried directory
+        objects really are group objects (as opposed to user objects) during the
+        <code>Require ldap-group</code> directive's sub-group processing.</td>
+      </tr>
+    </table>
 
-    <p>To specify a secure LDAP server, use <em>ldaps://</em> in the
-    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
-    directive, instead of <em>ldap://</em>.</p>
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
-<h2><a name="exposed" id="exposed">Exposing Login Information</a></h2>
+<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
 
-    <p>when this module performs <em>authentication</em>, ldap attributes specified
-    in the <code class="directive"><a href="#authldapurl">authldapurl</a></code>
-    directive are placed in environment variables with the prefix "AUTHENTICATE_".</p>
+    <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
+    directives are used during the authorization phase to ensure that
+    a user is allowed to access a resource.  mod_authnz_ldap extends the
+    authorization types with <code>ldap-user</code>, <code>ldap-dn</code>,
+    <code>ldap-group</code>, <code>ldap-attribute</code> and
+    <code>ldap-filter</code>.  Other authorization types may also be
+    used but may require that additional authorization modules be loaded.</p>
 
-    <p>when this module performs <em>authorization</em>, ldap attributes specified
-    in the <code class="directive"><a href="#authldapurl">authldapurl</a></code>
-    directive are placed in environment variables with the prefix "AUTHORIZE_".</p>
+    <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
+    within the LDAP require directives.</p>
 
-    <p>If the attribute field contains the username, common name
-    and telephone number of a user, a CGI program will have access to
-    this information without the need to make a second independent LDAP
-    query to gather this additional information.</p>
+<h3><a name="requser" id="requser">Require ldap-user</a></h3>
 
-    <p>This has the potential to dramatically simplify the coding and
-    configuration required in some web applications.</p>
+    <p>The <code>Require ldap-user</code> directive specifies what
+    usernames can access the resource. Once
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has retrieved a unique DN from the
+    directory, it does an LDAP compare operation using the username
+    specified in the <code>Require ldap-user</code> to see if that username
+    is part of the just-fetched LDAP entry.  Multiple users can be
+    granted access by putting multiple usernames on the line,
+    separated with spaces. If a username has a space in it, then it
+    must be surrounded with double quotes. Multiple users can also be
+    granted access by using multiple <code>Require ldap-user</code>
+    directives, with one user per line. For example, with a <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> of
+    <code>ldap://ldap/o=Example?cn</code> (i.e., <code>cn</code> is
+    used for searches), the following Require directives could be used
+    to restrict access:</p>
+<pre class="prettyprint lang-config">Require ldap-user "Barbara Jenson"
+Require ldap-user "Fred User"
+Require ldap-user "Joe Manager"</pre>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="activedirectory" id="activedirectory">Using Active Directory</a></h2>
 
-    <p>An Active Directory installation may support multiple domains at the
-    same time. To distinguish users between domains, an identifier called
-    a User Principle Name (UPN) can be added to a user's entry in the
-    directory. This UPN usually takes the form of the user's account
-    name, followed by the domain components of the particular domain,
-    for example <em>somebody@nz.example.com</em>.</p>
+    <p>Because of the way that <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> handles this
+    directive, Barbara Jenson could sign on as <em>Barbara
+    Jenson</em>, <em>Babs Jenson</em> or any other <code>cn</code> that
+    she has in her LDAP entry. Only the single <code>Require
+    ldap-user</code> line is needed to support all values of the attribute
+    in the user's entry.</p>
 
-    <p>You may wish to configure the <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-    module to authenticate users present in any of the domains making up
-    the Active Directory forest. In this way both
-    <em>somebody@nz.example.com</em> and <em>someone@au.example.com</em>
-    can be authenticated using the same query at the same time.</p>
+    <p>If the <code>uid</code> attribute was used instead of the
+    <code>cn</code> attribute in the URL above, the above three lines
+    could be condensed to</p>
+<pre class="prettyprint lang-config">Require ldap-user bjenson fuser jmanager</pre>
 
-    <p>To make this practical, Active Directory supports the concept of
-    a Global Catalog. This Global Catalog is a read only copy of selected
-    attributes of all the Active Directory servers within the Active
-    Directory forest. Querying the Global Catalog allows all the domains
-    to be queried in a single query, without the query spanning servers
-    over potentially slow links.</p>
 
-    <p>If enabled, the Global Catalog is an independent directory server
-    that runs on port 3268 (3269 for SSL). To search for a user, do a
-    subtree search for the attribute <em>userPrincipalName</em>, with
-    an empty search root, like so:</p>
 
-<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
-AuthLDAPBindPassword password
-AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</pre>
+<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
 
+    <p>This directive specifies an LDAP group whose members are
+    allowed access. It takes the distinguished name of the LDAP
+    group. Note: Do not surround the group name with quotes.
+    For example, assume that the following entry existed in
+    the LDAP directory:</p>
+<div class="example"><pre>dn: cn=Administrators, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Barbara Jenson, o=Example
+uniqueMember: cn=Fred User, o=Example</pre></div>
 
-    <p>Users will need to enter their User Principal Name as a login, in
-    the form <em>somebody@nz.example.com</em>.</p>
+    <p>The following directive would grant access to both Fred and
+    Barbara:</p>
+<pre class="prettyprint lang-config">Require ldap-group cn=Administrators, o=Example</pre>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="frontpage" id="frontpage">Using Microsoft
-    FrontPage with mod_authnz_ldap</a></h2>
 
-    <p>Normally, FrontPage uses FrontPage-web-specific user/group
-    files (i.e., the <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> and
-    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> modules) to handle all
-    authentication. Unfortunately, it is not possible to just
-    change to LDAP authentication by adding the proper directives,
-    because it will break the <em>Permissions</em> forms in
-    the FrontPage client, which attempt to modify the standard
-    text-based authorization files.</p>
+    <p>Members can also be found within sub-groups of a specified LDAP group
+    if <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>
+    is set to a value greater than 0. For example, assume the following entries
+    exist in the LDAP directory:</p>
+<div class="example"><pre>dn: cn=Employees, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Managers, o=Example
+uniqueMember: cn=Administrators, o=Example
+uniqueMember: cn=Users, o=Example
 
-    <p>Once a FrontPage web has been created, adding LDAP
-    authentication to it is a matter of adding the following
-    directives to <em>every</em> <code>.htaccess</code> file
-    that gets created in the web</p>
-<pre class="prettyprint lang-config">AuthLDAPURL       "the url"
-AuthGroupFile     "mygroupfile"
-Require group     "mygroupfile"</pre>
+dn: cn=Managers, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Bob Ellis, o=Example
+uniqueMember: cn=Tom Jackson, o=Example
 
+dn: cn=Administrators, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Barbara Jenson, o=Example
+uniqueMember: cn=Fred User, o=Example
 
-<h3><a name="howitworks" id="howitworks">How It Works</a></h3>
+dn: cn=Users, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Allan Jefferson, o=Example
+uniqueMember: cn=Paul Tilley, o=Example
+uniqueMember: cn=Temporary Employees, o=Example
 
-    <p>FrontPage restricts access to a web by adding the <code>Require
-    valid-user</code> directive to the <code>.htaccess</code>
-    files. The <code>Require valid-user</code> directive will succeed for
-    any user who is valid <em>as far as LDAP is
-    concerned</em>. This means that anybody who has an entry in
-    the LDAP directory is considered a valid user, whereas FrontPage
-    considers only those people in the local user file to be
-    valid. By substituting the ldap-group with group file authorization,
-    Apache is allowed to consult the local user file (which is managed by
-    FrontPage) - instead of LDAP - when handling authorizing the user.</p>
+dn: cn=Temporary Employees, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Jim Swenson, o=Example
+uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
 
-    <p>Once directives have been added as specified above,
-    FrontPage users will be able to perform all management
-    operations from the FrontPage client.</p>
+    <p>The following directives would allow access for Bob Ellis, Tom Jackson,
+    Barbara Jenson, Fred User, Allan Jefferson, and Paul Tilley but would not
+    allow access for Jim Swenson, or Elliot Rhodes (since they are at a
+    sub-group depth of 2):</p>
+<pre class="prettyprint lang-config">Require ldap-group cn=Employees, o=Example
+AuthLDAPMaxSubGroupDepth 1</pre>
 
 
-<h3><a name="fpcaveats" id="fpcaveats">Caveats</a></h3>
+    <p>Behavior of this directive is modified by the <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>, <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>, <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>, <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, and <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>
+    directives.</p>
 
-    <ul>
-      <li>When choosing the LDAP URL, the attribute to use for
-      authentication should be something that will also be valid
-      for putting into a <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> user file.
-      The user ID is ideal for this.</li>
 
-      <li>When adding users via FrontPage, FrontPage administrators
-      should choose usernames that already exist in the LDAP
-      directory (for obvious reasons). Also, the password that the
-      administrator enters into the form is ignored, since Apache
-      will actually be authenticating against the password in the
-      LDAP database, and not against the password in the local user
-      file. This could cause confusion for web administrators.</li>
+<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
 
-      
-      <li>Apache must be compiled with <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>,
-      <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> and
-      <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> in order to
-      use FrontPage support. This is because Apache will still use
-      the <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> group file for determine
-      the extent of a user's access to the FrontPage web.</li>
+    <p>The <code>Require ldap-dn</code> directive allows the administrator
+    to grant access based on distinguished names. It specifies a DN
+    that must match for access to be granted. If the distinguished
+    name that was retrieved from the directory server matches the
+    distinguished name in the <code>Require ldap-dn</code>, then
+    authorization is granted. Note: do not surround the distinguished
+    name with quotes.</p>
 
-      <li>The directives must be put in the <code>.htaccess</code>
-      files. Attempting to put them inside <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> or <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> directives won't work. This
-      is because <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has to be able to grab
-      the <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>
-      directive that is found in FrontPage <code>.htaccess</code>
-      files so that it knows where to look for the valid user list. If
-      the <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> directives aren't in the same
-      <code>.htaccess</code> file as the FrontPage directives, then
-      the hack won't work, because <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will
-      never get a chance to process the <code>.htaccess</code> file,
-      and won't be able to find the FrontPage-managed user file.</li>
-    </ul>
+    <p>The following directive would grant access to a specific
+    DN:</p>
+<pre class="prettyprint lang-config">Require ldap-dn cn=Barbara Jenson, o=Example</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a> <a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the prefix for environment variables set during
-authorization</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPAuthorizePrefix <em>prefix</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
-</table>
-    <p>This directive allows you to override the prefix used for environment
-    variables set during LDAP authorization.  If <em>AUTHENTICATE_</em> is
-    specified, consumers of these environment variables see the same information
-    whether LDAP has performed authentication, authorization, or both.</p>
 
-    <div class="note"><h3>Note</h3>
-    No authorization variables are set when a user is authorized on the basis of
-    <code>Require valid-user</code>.
-    </div>
+    <p>Behavior of this directive is modified by the <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>
+    directive.</p>
+
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a> <a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines if other authentication providers are used when a user can be mapped to a DN but the server cannot successfully bind with the user's credentials.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>By default, subsequent authentication providers are only queried if a
-    user cannot be mapped to a DN, but not if the user can be mapped to a DN and their
-    password cannot be verified with an LDAP bind.
-    If <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code>
-    is set to <em>off</em>, other configured authentication modules will have
-    a chance to validate the user if the LDAP bind (with the current user's credentials)
-    fails for any reason.</p>
-    <p> This allows users present in both LDAP and
-    <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> to authenticate
-    when the LDAP server is available but the user's account is locked or password
-    is otherwise unusable.</p>
+<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
-<li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a> <a name="authldapbinddn" id="authldapbinddn">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Optional DN to use in binding to the LDAP server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPBindDN <em>distinguished-name</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>An optional DN used to bind to the server when searching for
-    entries. If not provided, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will use
-    an anonymous bind.</p>
+    <p>The <code>Require ldap-attribute</code> directive allows the
+    administrator to grant access based on attributes of the authenticated
+    user in the LDAP directory.  If the attribute in the directory
+    matches the value given in the configuration, access is granted.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a> <a name="authldapbindpassword" id="authldapbindpassword">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Password used in conjuction with the bind DN</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPBindPassword <em>password</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td><em>exec:</em> was added in 2.4.5.</td></tr>
-</table>
-    <p>A bind password to use in conjunction with the bind DN. Note
-    that the bind password is probably sensitive data, and should be
-    properly protected. You should only use the <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> and <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> if you
-    absolutely need them to search the directory.</p>
+    <p>The following directive would grant access to anyone with
+    the attribute employeeType = active</p>
 
-    <p>If the value begins with exec: the resulting command will be
-    executed and the first line returned to standard output by the
-    program will be used as the password.</p>
-<pre class="prettyprint lang-config">#Password used as-is
-AuthLDAPBindPassword secret
+    <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
 
-#Run /path/to/program to get my password
-AuthLDAPBindPassword exec:/path/to/program
 
-#Run /path/to/otherProgram and provide arguments
-AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre>
+    <p>Multiple attribute/value pairs can be specified on the same line
+    separated by spaces or they can be specified in multiple
+    <code>Require ldap-attribute</code> directives. The effect of listing
+    multiple attribute/values pairs is an OR operation. Access will be
+    granted if any of the listed attribute values match the value of the
+    corresponding attribute in the user object. If the value of the
+    attribute contains a space, only the value must be within double quotes.</p>
 
+    <p>The following directive would grant access to anyone with
+    the city attribute equal to "San Jose" or status equal to "Active"</p>
 
+    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a> <a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Language to charset conversion configuration file</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPCharsetConfig <em>file-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>The <code class="directive">AuthLDAPCharsetConfig</code> directive sets the location
-    of the language to charset conversion configuration file. <var>File-path</var> is relative
-    to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. This file specifies
-    the list of language extensions to character sets.
-    Most administrators use the provided <code>charset.conv</code>
-    file, which associates common language extensions to character sets.</p>
 
-    <p>The file contains lines in the following format:</p>
 
-    <div class="example"><p><code>
-      <var>Language-Extension</var> <var>charset</var> [<var>Language-String</var>] ...
-    </code></p></div>
 
-    <p>The case of the extension does not matter. Blank lines, and lines
-    beginning with a hash character (<code>#</code>) are ignored.</p>
+<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a> <a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the authenticated user's credentials to perform authorization comparisons</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
-</table>
-    <p>When set, and <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has authenticated the
-    user, LDAP comparisons for authorization use the queried distinguished name (DN)
-    and HTTP basic authentication password of the authenticated user instead of
-    the servers configured credentials.</p>
+    <p>The <code>Require ldap-filter</code> directive allows the
+    administrator to grant access based on a complex LDAP search filter.
+    If the dn returned by the filter search matches the authenticated user
+    dn, access is granted.</p>
 
-    <p> The <em>ldap-attribute</em>, <em>ldap-user</em>, and <em>ldap-group</em> (single-level only)
-    authorization checks use comparisons.</p>
+    <p>The following directive would grant access to anyone having a cell phone
+    and is in the marketing department</p>
 
-    <p>This directive only has effect on the comparisons performed during
-    nested group processing when <code class="directive"><a href="#authldapsearchasuser">
-    AuthLDAPSearchAsUser</a></code> is also enabled.</p>
+    <pre class="prettyprint lang-config">Require ldap-filter &amp;(cell=*)(department=marketing)</pre>
 
-    <p> This directive should only be used when your LDAP server doesn't
-        accept anonymous comparisons and you cannot use a dedicated
-        <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-    </p>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a> <a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the LDAP server to compare the DNs</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>When set, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will use the LDAP
-    server to compare the DNs. This is the only foolproof way to
-    compare DNs.  <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will search the
-    directory for the DN specified with the <a href="#reqdn"><code>Require dn</code></a> directive, then,
-    retrieve the DN and compare it with the DN retrieved from the user
-    entry. If this directive is not set,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> simply does a string comparison. It
-    is possible to get false negatives with this approach, but it is
-    much faster. Note the <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> cache can speed up
-    DN comparison in most situations.</p>
+    <p>The difference between the <code>Require ldap-filter</code> directive and the
+    <code>Require ldap-attribute</code> directive is that <code>ldap-filter</code>
+    performs a search operation on the LDAP directory using the specified search
+    filter rather than a simple attribute comparison. If a simple attribute
+    comparison is all that is required, the comparison operation performed by
+    <code>ldap-attribute</code> will be faster than the search operation
+    used by <code>ldap-filter</code> especially within a large directory.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a> <a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>When will the module de-reference aliases</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>This directive specifies when <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will
-    de-reference aliases during LDAP operations. The default is
-    <code>always</code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a> <a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>LDAP attributes used to identify the user members of
-groups.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPGroupAttribute <em>attribute</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>This directive specifies which LDAP attributes are used to
-    check for user members within groups. Multiple attributes can be used
-    by specifying this directive multiple times. If not specified,
-    then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the <code>member</code> and
-    <code>uniquemember</code> attributes.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a> <a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the DN of the client username when checking for
-group membership</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>When set <code>on</code>, this directive says to use the
-    distinguished name of the client username when checking for group
-    membership.  Otherwise, the username will be used. For example,
-    assume that the client sent the username <code>bjenson</code>,
-    which corresponds to the LDAP DN <code>cn=Babs Jenson,
-    o=Example</code>. If this directive is set,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will check if the group has
-    <code>cn=Babs Jenson, o=Example</code> as a member. If this
-    directive is not set, then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will
-    check if the group has <code>bjenson</code> as a member.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+
+    <ul>
+      <li>
+        Grant access to anyone who exists in the LDAP directory,
+        using their UID for searches.
+<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
+Require valid-user</pre>
+
+      </li>
+
+      <li>
+        The next example is the same as above; but with the fields
+        that have useful defaults omitted. Also, note the use of a
+        redundant LDAP server.
+<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
+Require valid-user</pre>
+
+      </li>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a> <a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines if the server does the initial DN lookup using the basic authentication users'
-own username, instead of anonymously or with hard-coded credentials for the server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
-</table>
-    <p>By default, the server either anonymously, or with a dedicated user and
-     password, converts the basic authentication username into an LDAP
-     distinguished name (DN).  This directive forces the server to use the verbatim username
-     and password provided by the incoming user to perform the initial DN
-     search.</p>
+      <li>
+        The next example is similar to the previous one, but it
+        uses the common name instead of the UID. Note that this
+        could be problematical if multiple people in the directory
+        share the same <code>cn</code>, because a search on <code>cn</code>
+        <strong>must</strong> return exactly one entry. That's why
+        this approach is not recommended: it's a better idea to
+        choose an attribute that is guaranteed unique in your
+        directory, such as <code>uid</code>.
+<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
+Require valid-user</pre>
 
-     <p> If the verbatim username can't directly bind, but needs some
-     cosmetic transformation, see <code class="directive"><a href="#authldapinitialbindpattern">
-     AuthLDAPInitialBindPattern</a></code>.</p>
+      </li>
 
-     <p> This directive should only be used when your LDAP server doesn't
-         accept anonymous searches and you cannot use a dedicated
-         <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-     </p>
+      <li>
+        Grant access to anybody in the Administrators group. The
+        users must authenticate using their UID.
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
+Require ldap-group cn=Administrators, o=Example</pre>
 
-     <div class="note"><h3>Not available with authorization-only</h3>
-         This directive can only be used if this module authenticates the user, and
-         has no effect when this module is used exclusively for authorization.
-     </div>
+      </li>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
-<li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
-<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a> <a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the transformation of the basic authentication username to be used when binding to the LDAP server
-to perform a DN lookup</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPInitialBindPattern<em><var>regex</var> <var>substitution</var></em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (remote username used verbatim)</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
-</table>
-    <p>If <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> is set to
-       <em>ON</em>, the basic authentication username will be transformed according to the
-       regular expression and substituion arguments.</p>
+      <li>
+        Grant access to anybody in the group whose name matches the
+        hostname of the virtual host. In this example an
+        <a href="../expr.html">expression</a> is used to build the filter.
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
+Require ldap-group cn=%{SERVER_NAME}, o=Example</pre>
 
-    <p> The regular expression argument is compared against the current basic authentication username.
-        The substitution argument may contain backreferences, but has no other variable interpolation.</p>
+      </li>
 
-    <p> This directive should only be used when your LDAP server doesn't
-        accept anonymous searches and you cannot use a dedicated
-        <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-    </p>
+      <li>
+        The next example assumes that everyone at Example who
+        carries an alphanumeric pager will have an LDAP attribute
+        of <code>qpagePagerID</code>. The example will grant access
+        only to people (authenticated via their UID) who have
+        alphanumeric pagers:
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
+Require valid-user</pre>
 
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
+      </li>
 
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
+      <li>
+        <p>The next example demonstrates the power of using filters
+        to accomplish complicated administrative requirements.
+        Without filters, it would have been necessary to create a
+        new LDAP group and ensure that the group's members remain
+        synchronized with the pager users. This becomes trivial
+        with filters. The goal is to grant access to anyone who has
+        a pager, plus grant access to Joe Manager, who doesn't
+        have a pager, but does need to access the same
+        resource:</p>
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
+Require valid-user</pre>
 
 
-    <div class="note"><h3>Not available with authorization-only</h3>
-        This directive can only be used if this module authenticates the user, and
-        has no effect when this module is used exclusively for authorization.
-    </div>
-    <div class="note"><h3>debugging</h3>
-        The substituted DN is recorded in the environment variable
-        <em>LDAP_BINDASUSER</em>.  If the regular expression does not match the input,
-        the verbatim username is used.
-    </div>
+        <p>This last may look confusing at first, so it helps to
+        evaluate what the search filter will look like based on who
+        connects, as shown below.  If
+        Fred User connects as <code>fuser</code>, the filter would look
+        like</p>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a> <a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the maximum sub-group nesting depth that will be
-evaluated before the user search is discontinued.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Number</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.0 and later</td></tr>
-</table>
-   <p>When this directive is set to a non-zero value <code>X</code>
-   combined with use of the <code>Require ldap-group someGroupDN</code>
-   directive, the provided user credentials will be searched for
-   as a member of the <code>someGroupDN</code> directory object or of
-   any group member of the current group up to the maximum nesting
-   level <code>X</code> specified by this directive.</p>
-   <p>See the <a href="#reqgroup"><code>Require ldap-group</code></a>
-   section for a more detailed example.</p>
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
 
-   <div class="note"><h3>Nested groups performance</h3>
-   <p> When <code class="directive">AuthLDAPSubGroupAttribute</code> overlaps with
-   <code class="directive">AuthLDAPGroupAttribute</code> (as it does by default and
-   as required by common LDAP schemas), uncached searching for subgroups in 
-   large groups can be very slow. If you use large, non-nested groups, set 
-   <code class="directive">AuthLDAPMaxSubGroupDepth</code> to zero.</p>
-   </div>
+        <p>The above search will only succeed if <em>fuser</em> has a
+        pager. When Joe Manager connects as <em>jmanager</em>, the
+        filter looks like</p>
 
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a> <a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the value of the attribute returned during the user
-query to set the REMOTE_USER environment variable</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>If this directive is set, the value of the
-    <code>REMOTE_USER</code> environment variable will be set to the
-    value of the attribute specified. Make sure that this attribute is
-    included in the list of attributes in the AuthLDAPUrl definition,
-    otherwise this directive will have no effect. This directive, if
-    present, takes precedence over AuthLDAPRemoteUserIsDN. This
-    directive is useful should you want people to log into a website
-    using an email address, but a backend application expects the
-    username as a userid.</p>
+        <p>The above search will succeed whether <em>jmanager</em>
+        has a pager or not.</p>
+      </li>
+    </ul>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingtls" id="usingtls">Using TLS</a></h2>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a> <a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the DN of the client username to set the REMOTE_USER
-environment variable</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>If this directive is set to on, the value of the
-    <code>REMOTE_USER</code> environment variable will be set to the full
-    distinguished name of the authenticated user, rather than just
-    the username that was passed by the client. It is turned off by
-    default.</p>
+    <p>To use TLS, see the <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> directives <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> and <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a> <a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use the authenticated user's credentials to perform authorization searches</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.6 and later</td></tr>
-</table>
-    <p>When set, and <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has authenticated the
-    user, LDAP searches for authorization use the queried distinguished name (DN)
-    and HTTP basic authentication password of the authenticated user instead of
-    the servers configured credentials.</p>
+    <p>An optional second parameter can be added to the
+    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> to override
+    the default connection type set by <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.
+    This will allow the connection established by an <em>ldap://</em> Url
+    to be upgraded to a secure connection on the same port.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingssl" id="usingssl">Using SSL</a></h2>
 
-    <p> The <em>ldap-filter</em> and <em>ldap-dn</em> authorization
-    checks use searches.</p>
+    <p>To use SSL, see the <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> directives <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> and <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
 
-    <p>This directive only has effect on the comparisons performed during
-    nested group processing when <code class="directive"><a href="#authldapcompareasuser">
-    AuthLDAPCompareAsUser</a></code> is also enabled.</p>
+    <p>To specify a secure LDAP server, use <em>ldaps://</em> in the
+    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
+    directive, instead of <em>ldap://</em>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="exposed" id="exposed">Exposing Login Information</a></h2>
 
-    <p> This directive should only be used when your LDAP server doesn't
-        accept anonymous searches and you cannot use a dedicated
-        <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-    </p>
+    <p>when this module performs <em>authentication</em>, ldap attributes specified
+    in the <code class="directive"><a href="#authldapurl">authldapurl</a></code>
+    directive are placed in environment variables with the prefix "AUTHENTICATE_".</p>
+
+    <p>when this module performs <em>authorization</em>, ldap attributes specified
+    in the <code class="directive"><a href="#authldapurl">authldapurl</a></code>
+    directive are placed in environment variables with the prefix "AUTHORIZE_".</p>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a> <a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the attribute labels, one value per
-directive line, used to distinguish the members of the current group that
-are groups.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribute</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.0 and later</td></tr>
-</table>
-    <p>An LDAP group object may contain members that are users and
-    members that are groups (called nested or sub groups). The
-    <code>AuthLDAPSubGroupAttribute</code> directive identifies the
-    labels of group members and the <code>AuthLDAPGroupAttribute</code>
-    directive identifies the labels of the user members. Multiple
-    attributes can be used by specifying this directive multiple times.
-    If not specified, then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the
-    <code>member</code> and <code>uniqueMember</code> attributes.</p>
+    <p>If the attribute field contains the username, common name
+    and telephone number of a user, a CGI program will have access to
+    this information without the need to make a second independent LDAP
+    query to gather this additional information.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a> <a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies which LDAP objectClass values identify directory
-objects that are groups during sub-group processing.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPSubGroupClass <em>LdapObjectClass</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.0 and later</td></tr>
-</table>
-    <p>An LDAP group object may contain members that are users and
-    members that are groups (called nested or sub groups). The
-    <code>AuthLDAPSubGroupAttribute</code> directive identifies the
-    labels of members that may be sub-groups of the current group
-    (as opposed to user members). The <code>AuthLDAPSubGroupClass</code>
-    directive specifies the LDAP objectClass values used in verifying that
-    these potential sub-groups are in fact group objects. Verified sub-groups
-    can then be searched for more user or sub-group members. Multiple
-    attributes can be used by specifying this directive multiple times.
-    If not specified, then <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> uses the
-    <code>groupOfNames</code> and <code>groupOfUniqueNames</code> values.</p>
+    <p>This has the potential to dramatically simplify the coding and
+    configuration required in some web applications.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a> <a name="authldapurl" id="authldapurl">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>URL specifying the LDAP search parameters</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>An RFC 2255 URL which specifies the LDAP search parameters
-    to use. The syntax of the URL is</p>
-<div class="example"><p><code>ldap://host:port/basedn?attribute?scope?filter</code></p></div>
-    <p>If you want to specify more than one LDAP URL that Apache should try in turn, the syntax is:</p>
-<pre class="prettyprint lang-config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</pre>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="activedirectory" id="activedirectory">Using Active Directory</a></h2>
 
-<p><em><strong>Caveat: </strong>If you specify multiple servers, you need to enclose the entire URL string in quotes;
-otherwise you will get an error: "AuthLDAPURL takes one argument, URL to define LDAP connection.." </em>
-You can of course use search parameters on each of these.</p>
+    <p>An Active Directory installation may support multiple domains at the
+    same time. To distinguish users between domains, an identifier called
+    a User Principle Name (UPN) can be added to a user's entry in the
+    directory. This UPN usually takes the form of the user's account
+    name, followed by the domain components of the particular domain,
+    for example <em>somebody@nz.example.com</em>.</p>
 
-<dl>
-<dt>ldap</dt>
+    <p>You may wish to configure the <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+    module to authenticate users present in any of the domains making up
+    the Active Directory forest. In this way both
+    <em>somebody@nz.example.com</em> and <em>someone@au.example.com</em>
+    can be authenticated using the same query at the same time.</p>
 
-        <dd>For regular ldap, use the
-        string <code>ldap</code>. For secure LDAP, use <code>ldaps</code>
-        instead. Secure LDAP is only available if Apache was linked
-        to an LDAP library with SSL support.</dd>
+    <p>To make this practical, Active Directory supports the concept of
+    a Global Catalog. This Global Catalog is a read only copy of selected
+    attributes of all the Active Directory servers within the Active
+    Directory forest. Querying the Global Catalog allows all the domains
+    to be queried in a single query, without the query spanning servers
+    over potentially slow links.</p>
 
-<dt>host:port</dt>
+    <p>If enabled, the Global Catalog is an independent directory server
+    that runs on port 3268 (3269 for SSL). To search for a user, do a
+    subtree search for the attribute <em>userPrincipalName</em>, with
+    an empty search root, like so:</p>
 
-        <dd>
-          <p>The name/port of the ldap server (defaults to
-          <code>localhost:389</code> for <code>ldap</code>, and
-          <code>localhost:636</code> for <code>ldaps</code>). To
-          specify multiple, redundant LDAP servers, just list all
-          servers, separated by spaces. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-          will try connecting to each server in turn, until it makes a
-          successful connection. If multiple ldap servers are specified,
-          then entire LDAP URL must be encapsulated in double quotes.</p>
+<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
+AuthLDAPBindPassword password
+AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</pre>
 
-          <p>Once a connection has been made to a server, that
-          connection remains active for the life of the
-          <code class="program"><a href="../programs/httpd.html">httpd</a></code> process, or until the LDAP server goes
-          down.</p>
 
-          <p>If the LDAP server goes down and breaks an existing
-          connection, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will attempt to
-          re-connect, starting with the primary server, and trying
-          each redundant server in turn. Note that this is different
-          than a true round-robin search.</p>
-        </dd>
+    <p>Users will need to enter their User Principal Name as a login, in
+    the form <em>somebody@nz.example.com</em>.</p>
 
-<dt>basedn</dt>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="frontpage" id="frontpage">Using Microsoft
+    FrontPage with mod_authnz_ldap</a></h2>
 
-        <dd>The DN of the branch of the
-        directory where all searches should start from. At the very
-        least, this must be the top of your directory tree, but
-        could also specify a subtree in the directory.</dd>
+    <p>Normally, FrontPage uses FrontPage-web-specific user/group
+    files (i.e., the <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> and
+    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> modules) to handle all
+    authentication. Unfortunately, it is not possible to just
+    change to LDAP authentication by adding the proper directives,
+    because it will break the <em>Permissions</em> forms in
+    the FrontPage client, which attempt to modify the standard
+    text-based authorization files.</p>
 
-<dt>attribute</dt>
+    <p>Once a FrontPage web has been created, adding LDAP
+    authentication to it is a matter of adding the following
+    directives to <em>every</em> <code>.htaccess</code> file
+    that gets created in the web</p>
+<pre class="prettyprint lang-config">AuthLDAPURL       "the url"
+AuthGroupFile     "mygroupfile"
+Require group     "mygroupfile"</pre>
 
-        <dd>The attribute to search for.
-        Although RFC 2255 allows a comma-separated list of
-        attributes, only the first attribute will be used, no
-        matter how many are provided. If no attributes are
-        provided, the default is to use <code>uid</code>. It's a good
-        idea to choose an attribute that will be unique across all
-        entries in the subtree you will be using.  All attributes
-        listed will be put into the environment with an AUTHENTICATE_ prefix
-        for use by other modules.</dd>
 
-<dt>scope</dt>
+<h3><a name="howitworks" id="howitworks">How It Works</a></h3>
 
-        <dd>The scope of the search. Can be either <code>one</code> or
-        <code>sub</code>. Note that a scope of <code>base</code> is
-        also supported by RFC 2255, but is not supported by this
-        module. If the scope is not provided, or if <code>base</code> scope
-        is specified, the default is to use a scope of
-        <code>sub</code>.</dd>
+    <p>FrontPage restricts access to a web by adding the <code>Require
+    valid-user</code> directive to the <code>.htaccess</code>
+    files. The <code>Require valid-user</code> directive will succeed for
+    any user who is valid <em>as far as LDAP is
+    concerned</em>. This means that anybody who has an entry in
+    the LDAP directory is considered a valid user, whereas FrontPage
+    considers only those people in the local user file to be
+    valid. By substituting the ldap-group with group file authorization,
+    Apache is allowed to consult the local user file (which is managed by
+    FrontPage) - instead of LDAP - when handling authorizing the user.</p>
 
-<dt>filter</dt>
+    <p>Once directives have been added as specified above,
+    FrontPage users will be able to perform all management
+    operations from the FrontPage client.</p>
 
-        <dd>A valid LDAP search filter. If
-        not provided, defaults to <code>(objectClass=*)</code>, which
-        will search for all objects in the tree. Filters are
-        limited to approximately 8000 characters (the definition of
-        <code>MAX_STRING_LEN</code> in the Apache source code). This
-        should be more than sufficient for any application. In 2.4.10 and later,
-        The word "none" may be used to not use any filter, which may be 
-        required by some primitive LDAP servers.</dd>
-</dl>
 
-    <p>When doing searches, the attribute, filter and username passed
-    by the HTTP client are combined to create a search filter that
-    looks like
-    <code>(&amp;(<em>filter</em>)(<em>attribute</em>=<em>username</em>))</code>.</p>
+<h3><a name="fpcaveats" id="fpcaveats">Caveats</a></h3>
 
-    <p>For example, consider an URL of
-    <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>. When
-    a client attempts to connect using a username of <code>Babs
-    Jenson</code>, the resulting search filter will be
-    <code>(&amp;(posixid=*)(cn=Babs Jenson))</code>.</p>
+    <ul>
+      <li>When choosing the LDAP URL, the attribute to use for
+      authentication should be something that will also be valid
+      for putting into a <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> user file.
+      The user ID is ideal for this.</li>
 
-    <p>An optional parameter can be added to allow the LDAP Url to override
-    the connection type.  This parameter can be one of the following:</p>
+      <li>When adding users via FrontPage, FrontPage administrators
+      should choose usernames that already exist in the LDAP
+      directory (for obvious reasons). Also, the password that the
+      administrator enters into the form is ignored, since Apache
+      will actually be authenticating against the password in the
+      LDAP database, and not against the password in the local user
+      file. This could cause confusion for web administrators.</li>
 
-<dl>
-    <dt>NONE</dt>
-        <dd>Establish an unsecure connection on the default LDAP port. This
-        is the same as <code>ldap://</code> on port 389.</dd>
-    <dt>SSL</dt>
-        <dd>Establish a secure connection on the default secure LDAP port.
-        This is the same as <code>ldaps://</code></dd>
-    <dt>TLS | STARTTLS</dt>
-        <dd>Establish an upgraded secure connection on the default LDAP port.
-        This connection will be initiated on port 389 by default and then
-        upgraded to a secure connection on the same port.</dd>
-</dl>
+      
+      <li>Apache must be compiled with <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>,
+      <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> and
+      <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> in order to
+      use FrontPage support. This is because Apache will still use
+      the <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> group file for determine
+      the extent of a user's access to the FrontPage web.</li>
 
-    <p>See above for examples of <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> URLs.</p>
+      <li>The directives must be put in the <code>.htaccess</code>
+      files. Attempting to put them inside <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> or <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> directives won't work. This
+      is because <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> has to be able to grab
+      the <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code>
+      directive that is found in FrontPage <code>.htaccess</code>
+      files so that it knows where to look for the valid user list. If
+      the <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> directives aren't in the same
+      <code>.htaccess</code> file as the FrontPage directives, then
+      the hack won't work, because <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> will
+      never get a chance to process the <code>.htaccess</code> file,
+      and won't be able to find the FrontPage-managed user file.</li>
+    </ul>
 
 </div>
 </div>
index 24425d8b1937c69bcbce1784f615016ad65d9821..ba47083df4c1875025fd0ad52149f03620431bb2 100644 (file)
@@ -109,1435 +109,1435 @@ Directory</a></li>
 <li><code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="contents" id="contents">Sommaire</a></h2>
-
-    <ul>
-      <li>
-        <a href="#operation">Mode opératoire</a>
+<div class="directive-section"><h2><a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a> <a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le préfixe ajouté aux variables d'environnement
+durant la phase d'autorisation</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPAuthorizePrefix <em>préfixe</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le préfixe ajouté aux
+    variables d'environnement durant la phase d'autorisation. Si la
+    valeur spécifiée est <em>AUTHENTICATE_</em>, les utilisateurs de ces
+    variables d'environnement verront les mêmes informations, que le
+    serveur effectue une authentification, une autorisation, ou les
+    deux.</p>
 
-        <ul>
-          <li><a href="#authenphase">La phase
-         d'authentification</a></li>
+    <div class="note"><h3>Note</h3>
+    Aucune variable d'autorisation n'est définie lorsqu'un utilisateur
+    s'est vu autoriser l'accès via la directive <code>Require
+    valid-user</code>.
+    </div>
 
-          <li><a href="#authorphase">La phase d'autorisation</a></li>
-        </ul>
-      </li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a> <a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'on doit utiliser d'autres fournisseurs
+d'authentification lorsque le serveur ne peut pas valider les données
+d'authentification de l'utilisateur, alors que ce dernier possède un
+DN.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Par défaut, des fournisseurs d'authentification sont appelés
+    si un utilisateur ne possède pas de DN, mais ne le sont pas si
+    l'utilisateur possède un DN et si son mot de passe ne peut pas être
+    vérifié lors d'une connexion au serveur LDAP. Si la directive
+    <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
+    définie à <em>off</em>, d'autres modules d'authentification
+    configurés auront une chance de valider le mot de passe de
+    l'utilisateur si la tentative de connexion au serveur LDAP échoue
+    pour une raison quelconque (avec les données d'authentification
+    fournies).</p>
+    <p>Ceci permet aux utilisateurs présent à la fois dans l'annuaire
+    LDAP et dans un fichier <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de s'authentifier
+    lorsque le serveur LDAP est disponible, alors que le compte de
+    l'utilisateur est verrouillé ou que son mot de passe est
+    inutilisable pour une raison quelconque.</p>
 
-      <li>
-        <a href="#requiredirectives">Les directives requises</a>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
+<li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapbinddn" id="authldapbinddn">Directive</a> <a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
+LDAP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Cette directive permet de définir un DN optionnel pour se
+    connecter au serveur afin d'y rechercher des entrées. Si aucun DN
+    n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
+    connexion anonyme.</p>
 
-        <ul>
-          <li><a href="#requser">Require ldap-user</a></li>
-          <li><a href="#reqgroup">Require ldap-group</a></li>
-          <li><a href="#reqdn">Require ldap-dn</a></li>
-          <li><a href="#reqattribute">Require ldap-attribute</a></li>
-          <li><a href="#reqfilter">Require ldap-filter</a></li>
-        </ul>
-      </li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapbindpassword" id="authldapbindpassword">Directive</a> <a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
+connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><em>exec:</em> est disponible depuis la version 2.4.5 du
+serveur HTTP Apache.</td></tr>
+</table>
+    <p>Cette directive permet de spécifier un mot de passe à utiliser en
+    conjonction avec le DN de connexion. Notez que ce mot de passe
+    constitue en général une donnée sensible, et doit donc être protégé
+    de manière appropriée. Vous ne devez utiliser les directives
+    <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
+    vous en avez vraiment besoin pour effectuer une recherche dans
+    l'annuaire.</p>
 
-      <li><a href="#examples">Exemples</a></li>
-      <li><a href="#usingtls">Utilisation de TLS</a></li>
-      <li><a href="#usingssl">Utilisation de SSL</a></li>
-      <li><a href="#exposed">Mise à disposition des informations de
-      connexion</a></li>
-      <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
-      <li>
-        <a href="#frontpage">Utilisation de Microsoft FrontPage avec
-        <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
+    <p>Si la valeur spécifiée débute par "exec:", la commande qui suit sera
+    exécutée, et la première ligne renvoyée par la commande sur la
+    sortie standard sera utilisée comme mot de passe.</p>
+<pre class="prettyprint lang-config"># Mot de passe spécifié directement
+AuthLDAPBindPassword secret
 
-        <ul>
-          <li><a href="#howitworks">Comment ça marche</a></li>
-          <li><a href="#fpcaveats">Mises en garde</a></li>
-        </ul>
-      </li>
-    </ul>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="operation" id="operation">Mode opératoire</a></h2>
+# Exécution de /path/to/program pour obtenir le mot de passe
+AuthLDAPBindPassword exec:/path/to/program
 
-    <p>L'utilisateur se voit accorder l'accès selon un processus en deux
-    phases. La première phase est l'authentification, au cours de
-    laquelle le fournisseur d'authentification
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> vérifie que les informations de
-    connexion de l'utilisateur sont valides. Elle est aussi connue sous
-    le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
-    dans le code source : <em>search/bind</em>). La deuxième
-    phase est l'autorisation, au cours de laquelle
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> détermine si l'utilisateur
-    authentifié a la permission d'accéder à la ressource considérée.
-    Elle est aussi connue sous le nom de phase de
-    <em>comparaison</em> (<em>compare</em>).</p>
+# Exécution de /path/to/otherProgram avec un argument pour obtenir le mot de passe
+AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre>
 
-    <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> comporte un fournisseur
-    d'authentification authn_ldap et un gestionnaire d'autorisation
-    authz_ldap. Le fournisseur d'authentification authn_ldap peut être
-    invoqué en affectant la valeur <code>ldap</code> à la directive
-    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Le
-    gestionnaire d'autorisation authz_ldap enrichit la liste des types
-    d'autorisations de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en y ajoutant les
-    valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
-    <code>ldap-group</code>.</p>
 
-<h3><a name="authenphase" id="authenphase">La phase d'authentification</a></h3>
 
-    <p>Au cours de la phase d'authentification,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> recherche une entrée de l'annuaire
-    LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
-    Si une correspondance unique est trouvée,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de se connecter au serveur
-    hébergeant l'annuaire LDAP en utilisant le DN de l'entrée et le mot
-    de passe fourni par le client HTTP. Comme ce processus effectue tout
-    d'abord une recherche, puis une connexion, il est aussi connu sous
-    le nom de phase de recherche/connexion. Voici le détail des étapes
-    constituant la phase de recherche/connexion :</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a> <a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
+langage/jeu de caractères</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
+    de définir le chemin du fichier de configuration de la
+    correspondance langage/jeu de caractères. <var>chemin-fichier</var>
+    est un chemin relatif au répertoire défini par la directive
+    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
+    de correspondances extension de langage/jeu de caractères. La
+    plupart des administrateurs utilisent le fichier
+    <code>charset.conv</code> fourni qui associe les extensions de
+    langage courantes à leurs jeux de caractères.</p>
 
-    <ol>
-      <li>Confection d'un filtre de recherche en combinant les attribut
-      et filtre définis par la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> avec le nom d'utilisateur et le mot de
-      passe fournis par le client HTTP.</li>
+    <p>Le fichier contient des lignes au format suivant :</p>
 
-      <li>Recherche dans l'annuaire LDAP en utilisant le filtre
-      confectionné précédemment. Si le résultat de la recherche est
-      négatif ou comporte plusieurs entrées, refus ou restriction de
-      l'accès.</li>
+    <div class="example"><p><code>
+      <var>extension de langage</var> <var>jeu de caractères</var>
+      [<var>Nom du langage</var>] ...
+    </code></p></div>
 
-      <li>Extraction du DN (distinguished name) de l'entrée issue du
-      résultat de la recherche, et tentative de connexion au serveur
-      LDAP en utilisant ce DN et le mot de passe fournis par le client
-      HTTP. Si la connexion échoue, refus ou restriction de
-      l'accès.</li>
-    </ol>
+    <p>L'extension est insensible à la casse. Les lignes vides et les
+    lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
 
-    <p>Les directives utilisées durant la phase de recherche/connexion
-    sont les suivantes :</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a> <a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation des données d'authentification de l'utilisateur
+pour effectuer les comparaisons pour l'attribution des autorisations</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version version 2.3.6</td></tr>
+</table>
+    <p>Lorsque cette directive est définie, et si
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
+    recherches LDAP pour les autorisations utilisent le nom distinctif
+    trouvé (DN) et le mot de passe d'authentification basique HTTP de
+    l'utilisateur authentifié au lieu des données d'authentification
+    configurées au niveau du serveur.</p>
 
-    <table>
-      
-      <tr>
-        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
+    <p>Les vérifications d'autorisation <em>ldap-attribute</em>,
+    <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement)
+    utilisent des comparaisons.</p>
 
-        <td>Spécifie le serveur LDAP, le DN de base, l'attribut à
-       utiliser pour la recherche, ainsi que les filtres de recherche
-       supplémentaires.</td>
-      </tr>
+    <p>Cette directive n'a d'effet sur les comparaisons effectuées au
+    cours des traitements de groupe imbriqués, et lorsque la directive
+    <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code>
+    est aussi activée.</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
-
-        <td>Un DN optionnel pour se connecter durant la phase de
-       recherche.</td>
-      </tr>
-
-      <tr>
-        <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
-
-        <td>Un mot de passe optionnel pour se connecter durant la phase
-       de recherche.</td>
-      </tr>
-    </table>
-
-
-<h3><a name="authorphase" id="authorphase">La phase d'autorisation</a></h3>
-
-    <p>Au cours de la phase d'autorisation,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de déterminer si
-    l'utilisateur est autorisé à accéder à la ressource considérée. Une
-    grande partie de cette vérification consiste pour
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> en des opérations de comparaison au
-    niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
-    sous le nom de phase de comparaison.
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> accepte les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> suivantes pour
-    déterminer si les informations de connexion permettent d'accorder
-    l'accès à l'utilisateur :</p>
-
-    <ul>
-      <li>Avec la directive <a href="#reqgroup"><code>Require ldap-user</code></a>,
-      l'autorisation d'accès est accordée si le nom d'utilisateur
-      spécifié par la directive correspond au nom d'utilisateur fourni
-      par le client.</li>
-
-      <li>Avec la directive <a href="#reqdn"><code>Require
-      ldap-dn</code></a>, l'autorisation d'accès est accordée si le DN
-      spécifié par la directive correspond au DN extrait du résultat de
-      la recherche dans l'annuaire LDAP.</li>
-
-      <li>Avec la directive <a href="#reqgroup"><code>Require ldap-group</code></a>,
-      l'autorisation d'accès est accordée si le DN extrait du résultat de
-      la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
-      par le client) appartient au groupe LDAP spécifié par la
-      directive, ou éventuellement à un de ses sous-groupes.</li>
+    <p>Cette directive ne doit être utilisée que si votre serveur LDAP
+     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
+     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+     </p>
 
-      <li>Avec la directive <a href="#reqattribute">
-      <code>Require ldap-attribute</code></a>, l'autorisation d'accès
-      est accordée si la valeur de l'attribut extraite de la recherche
-      dans l'annuaire LDAP correspond à la valeur spécifiée par la
-      directive.</li>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a> <a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Lorsque cette directive est définie à on,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
+    comparer les DNs. Il s'agit de la seule méthode infaillible pour
+    comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
+    dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
+    comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
+    directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
+    simple comparaison de chaînes. Cette dernière approche peut produire
+    des faux négatifs, mais elle est beaucoup plus rapide. Notez
+    cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
+    la comparaison de DNs dans la plupart des situations.</p>
 
-      <li>Avec la directive <a href="#reqfilter">
-      <code>Require ldap-filter</code></a>, l'autorisation d'accès
-      est accordée si le filtre de recherche renvoie un objet
-      utilisateur unique qui corresponde au DN de l'utilisateur
-      authentifié.</li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a> <a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>À quel moment le module va déréférencer les
+alias</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier à quel moment
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
+    des opérations liées à LDAP. La valeur par défaut est
+    <code>always</code>.</p>
 
-      <li>dans tous les autres cas, refus ou restriction de
-      l'accès.</li>
-    </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a> <a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
+utilisateur à un groupe.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier quel attribut LDAP est
+    utilisé pour vérifier l'appartenance d'un utilisateur à un
+    groupe. On peut spécifier plusieurs attributs en répétant cette
+    directive plusieurs fois. Si la directive n'est pas définie,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
+    <code>member</code> et <code>uniquemember</code>.</p>
 
-    <p>Sous réserve du chargement de modules d'autorisation
-    supplémentaires, d'autres valeurs de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> peuvent être
-    spécifiées.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a> <a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
+appartenance à un groupe</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Lorsqu'elle est définie à <code>on</code>, cette directive
+    indique que c'est le DN de l'utilisateur qui doit être utilisé pour
+    vérifier son appartenance à un groupe. Dans le cas contraire, c'est
+    le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
+    le client envoie le nom d'utilisateur <code>bjenson</code>, qui
+    correspond au DN LDAP <code>cn=Babs Jenson,o=Example</code>. Si la
+    directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
+    vérifier si <code>cn=Babs Jenson, o=Example</code> est un membre du
+    groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+    vérifiera si <code>bjenson</code> est un membre du groupe.</p>
 
-    <ul>
-        <li>L'accès est accordé à tous les utilisateurs authentifiés si
-       une directive <a href="#requser"><code>Require
-       valid-user</code></a> est présente (nécessite le module
-       <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>).</li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a> <a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si le serveur effectue la recherche initiale du
+DN en utilisant le nom propre de l'utilisateur pour l'authentification
+de base
+et non de manière anonyme, ou en utilisant des données d'authentification
+codées en dur pour le serveur</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
+</table>
+    <p>Par défaut, le serveur convertit le nom d'utilisateur pour
+    l'authentification de base en nom distinctif LDAP (DN) soit de
+    manière anonyme, soit avec un couple nom/mot de passe dédié. Cette
+    directive permet de forcer le serveur à utiliser les véritables nom
+    d'utilisateur et mot de passe fournis par l'utilisateur pour
+    effectuer la recherche initiale du DN.</p>
 
-        <li>Avec la directive <a href="#reqgroup"><code>Require group</code></a>, l'autorisation
-       d'accès est accordée si le module
-       <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> a été chargé et si la
-       directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> a été
-       définie.</li>
+     <p>Si le nom d'utilisateur ne peut pas s'authentifier directement
+     et nécessite de légères modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p>
 
-        <li>etc...</li>
-     </ul>
+     <p>Cette directive ne doit être utilisée que si votre serveur LDAP
+     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
+     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+     </p>
 
+     <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
+         On ne peut utiliser cette directive que si ce module
+        effectue une authentification, et n'a aucun effet si ce module
+        n'est utilisé que pour les processus d'autorisation.
+     </div>
 
-    <p>Durant la phase de comparaison, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-    utilise les directives suivantes :</p>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
+<li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
+<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a> <a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la modification a apporter au nom d'utilisateur
+pour l'authentification de base lors de l'authentification auprès du
+serveur LDAP pour effectuer une recherche de DN</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindPattern<em><var>regex</var> <var>substitution</var></em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (nom de l'utilisateur
+distant utilisé tel quel)</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
+</table>
+    <p>Si la directive <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> est
+    définie à <em>ON</em>, le nom utilisateur pour l'authentification de
+    base sera transformé selon l'expression rationnelle
+    <var>regex</var> et l'argument <var>substitution</var> spécifiés.</p>
 
-    <table>
-      
-      <tr>
-        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
-       </td>
+    <p>L'expression rationnelle est comparée au nom d'utilisateur pour
+    l'authentification de base courant. L'argument
+    <var>substitution</var> peut contenir des références arrières, mais
+    n'effectue aucune autre interpolation de variable.</p>
 
-        <td>On utilise l'attribut spécifié dans l'URL pour les
-       opérations de comparaison initiées par la directive
-       <code>Require ldap-user</code>.</td>
-      </tr>
+    <p>Cette directive ne doit être utilisée que si votre serveur LDAP
+     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
+     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+     </p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
 
-        <td>Détermine le comportement de la directive <code>Require
-       ldap-dn</code>.</td>
-      </tr>
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
 
-        <td>Détermine l'attribut utilisé pour les opérations de
-       comparaison initiées par la directive <code>Require
-       ldap-group</code>.</td>
-      </tr>
+    <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
+         On ne peut utiliser cette directive que si ce module
+        effectue une authentification, et n'a aucun effet si ce module
+        n'est utilisé que pour les processus d'autorisation.
+     </div>
+    <div class="note"><h3>Débogage</h3>
+        Le DN de substitution est enregistré dans la variable
+       d'environnement <em>LDAP_BINDASUSER</em>. Si l'expression
+       rationnelle ne convient pas, le nom d'utilisateur est utilisé
+       tel quel.
+    </div>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
+<li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapbinddn">AuthLDAPBindDN</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a> <a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la profondeur d'imbrication des sous-groupes
+maximale prise en compte avant l'abandon de la recherche de
+l'utilisateur.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Nombre</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
+Apache</td></tr>
+</table>
+   <p>Lorsque cette directive est définie à une valeur <code>X</code>
+   non nulle, en combinaison avec l'utilisation de la directive
+   <code>Require ldap-group DN-groupe</code>, les données de connexion
+   fournies seront utilisées pour vérifier l'appartenance de
+   l'utilisateur à l'objet de l'annuaire <code>DN-groupe</code> ou à
+   tout sous-groupe du groupe courant en tenant compte de la profondeur
+   d'imbrication maximale <code>X</code> spécifiée par la directive.</p>
+   <p>Se référer à la section <a href="#reqgroup"><code>Require
+   ldap-group</code></a> pour un exemple plus détaillé.</p>
 
-        <td>Spécifie si l'on doit utiliser le DN ou le nom de
-       l'utilisateur lors des opérations de comparaison initiées par la
-       directive <code>Require ldap-group</code>.</td>
-      </tr>
+   <div class="note"><h3>Performances dans le cas des groupes imbriqués</h3>
+   <p>Lorsque les directives
+   <code class="directive">AuthLDAPSubGroupAttribute</code> et
+   <code class="directive">AuthLDAPGroupAttribute</code> se recouvrent (comme
+   c'est le cas par défaut et requis par les schémas LDAP courants), la
+   recherche de sous-groupes au sein de grands groupes peut être très
+   longue. Si vos groupes sont très grands et non imbriqués, définissez
+   la directive <code class="directive">AuthLDAPMaxSubGroupDepth</code> à 0.</p>
+   </div>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
 
-        <td>Détermine la profondeur maximale de l'arborescence des
-       sous-groupes qui seront évalués au cours des opérations de
-       comparaisons initiées par la directive <code>Require
-       ldap-group</code>.</td>
-      </tr>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a> <a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'attribut dont la valeur renvoyée au cours de la
+requête de l'utilisateur sera utilisée pour définir la variable
+d'environnement REMOTE_USER</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Lorsque cette directive est définie, la variable d'environnement
+    <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
+    spécifié. Assurez-vous que cet attribut soit bien inclus dans la
+    liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
+    le cas contraire, cette directive n'aurait aucun effet. Si elle est
+    présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
+    peut s'avérer utile par exemple, si vous souhaitez que les
+    utilisateurs se connectent à un site web en utilisant leur adresse
+    email, alors qu'une application sous-jacente nécessite un nom
+    d'utilisateur comme identifiant.</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a> <a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
+d'environnement REMOTE_USER</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Lorsque cette directive est à on, la variable d'environnement
+    <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
+    de l'utilisateur authentifié, et non plus avec simplement le nom
+    d'utilisateur fourni par le client. Elle est définie à off par
+    défaut.</p>
 
-        <td>Détermine l'attribut à utiliser lors de l'extraction de
-       membres de sous-groupes du groupe courant au cours des
-       opérations de comparaison initiées par la directive
-       <code>Require ldap-group</code>.</td>
-      </tr>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a> <a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise les données d'authentification de l'utilisateur
+pour la recherche des autorisations</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
+</table>
+    <p>Lorsque cette directive est définie, et si
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
+    recherches LDAP pour définir les autorisations utilisent le nom
+    distinctif (DN) trouvé et le mot de passe pour l'authentification de
+    base HTTP de l'utilisateur authentifié, au lieu des données
+    d'authentification configurées au niveau du serveur.</p>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
+    <p>Les vérifications d'autorisation <em>ldap-filter</em> et
+    <em>ldap-dn</em> utilisent des recherches.</p>
 
-        <td>Spécifie les valeurs de classe d'objet LDAP à utiliser pour
-       déterminer si les objets extraits de l'annuaire sont bien des
-       objets de type groupe (et non des objets de type utilisateur),
-       au cours du traitement des sous-groupes initié par la directive
-       <code>Require ldap-group</code>.</td>
-      </tr>
-    </table>
+    <p>Cette directive n'a d'effet sur les comparaisons effectuées au
+    cours des traitements de groupe imbriqués, et lorsque la directive
+    <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code>
+    est aussi activée.</p>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
+     <p>Cette directive ne doit être utilisée que si votre serveur LDAP
+     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
+     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
+     </p>
 
-    <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache sont utilisées
-    au cours de la phase d'autorisation afin de s'assurer que
-    l'utilisateur est autorisé à accéder à une ressource.
-    mod_authnz_ldap enrichit la liste des types d'autorisations avec les
-    valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
-    <code>ldap-group</code>, <code>ldap-attribute</code> et
-    <code>ldap-filter</code>. D'autres types d'autorisations sont
-    disponibles, sous réserve du chargement de modules d'autorisation
-    supplémentaires.</p>
 
-    <p>Depuis la version 2.4.8, les directives require LDAP supportent
-    les <a href="../expr.html">expressions</a>.</p>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
+<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a> <a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie les noms d'attribut, un par directive, utilisés
+pour différencier les membres du groupe courant qui sont eux-mêmes des
+groupes.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribut</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
+Apache</td></tr>
+</table>
+    <p>Un objet groupe LDAP peut contenir des membres qui sont des
+    utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
+    sous-groupes ou groupes imbriqués). La directive
+    <code>AuthLDAPSubGroupAttribute</code> spécifie l'attribut utilisé
+    pour identifier les groupes, alors que la directive
+    <code>AuthLDAPGroupAttribute</code> spécifie l'attribut utilisé
+    pour identifier les utilisateurs. On peut spécifier plusieurs
+    attributs en répétant la directive plusieurs fois. Si elle n'est pas
+    définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
+    <code>member</code> et <code>uniqueMember</code>.</p>
 
-<h3><a name="requser" id="requser">Require ldap-user</a></h3>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a> <a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie quelles valeurs d'objectClass LDAP identifient les
+objets de l'annuaire qui sont des groupes au cours du traitement des
+sous-groupes.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
+Apache</td></tr>
+</table>
+    <p>Un objet groupe LDAP peut contenir des membres qui sont des
+    utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
+    sous-groupes ou groupes imbriqués). La directive
+    <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
+    membres qui sont des sous-groupes du groupe courant (à l'opposé des
+    membres utilisateurs). La directive
+    <code>AuthLDAPSubGroupClass</code> permet de spécifier les valeurs
+    d'objectClass LDAP utilisées pour vérifier que certains membres sont
+    en fait des objets groupe. Les sous-groupes ainsi identifiés peuvent
+    alors faire l'objet d'une recherche d'autres membres utilisateurs ou
+    sous-groupes. On peut spécifier plusieurs attributs en répétant
+    cette directive plusieurs fois. Si cette directive n'est pas
+    définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
+    <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
 
-    <p>La directive <code>Require ldap-user</code> permet de spécifier
-    les noms des utilisateurs autorisés à accéder à la ressource.
-    Lorsque <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a extrait un DN unique de
-    l'annuaire LDAP, il effectue une opération de comparaison LDAP en
-    utilisant le nom d'utilisateur spécifié par la directive
-    <code>Require ldap-user</code>, pour vérifier si ce nom
-    d'utilisateur correspond à l'entrée LDAP extraite. On peut accorder
-    l'accès à plusieurs utilisateurs en plaçant plusieurs nom
-    d'utilisateurs sur la même ligne séparés par des espaces. Si un nom
-    d'utilisateur contient des espaces, il doit être entouré de
-    guillemets. On peut aussi accorder l'accès à plusieurs utilisateurs
-    en utilisant une directive <code>Require ldap-user</code> par
-    utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
-    <code>ldap://ldap/o=Example?cn</code> (spécifiant donc que l'attribut
-    <code>cn</code> sera utilisé pour les recherches), on pourra
-    utiliser les directives Require suivantes pour restreindre l'accès
-    :</p>
-<pre class="prettyprint lang-config">Require ldap-user "Barbara Jenson"
-Require ldap-user "Fred User"
-Require ldap-user "Joe Manager"</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authldapurl" id="authldapurl">Directive</a> <a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
+recherche LDAP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
+</table>
+    <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
+    paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
+    syntaxe de l'URL est :</p>
+<div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
+    <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
+    LDAP, la syntaxe sera :</p>
+<pre class="prettyprint lang-config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</pre>
 
+<p><em><strong>Mise en garde : </strong>Si vous spécifiez plusieurs
+serveurs, vous devez en entourer la liste avec des guillemets ; dans le
+cas contraire, vous générerez une erreur : "AuthLDAPURL takes one
+argument, URL to define LDAP connection..".</em> Vous pouvez bien
+entendu ajouter des paramètres de recherche à chacun des serveurs
+spécifiés.</p>
 
-    <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
-    cette directive, Barbara Jenson peut s'authentifier comme
-    <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
-    <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
-    LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
-    toutes les valeurs de l'attribut dans l'entrée LDAP de
-    l'utilisateur.</p>
+<dl>
+<dt>ldap</dt>
 
-    <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
-    l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
-    ci-dessus auraient pû être condensées en une seule ligne :</p>
-<pre class="prettyprint lang-config">Require ldap-user bjenson fuser jmanager</pre>
+        <dd>Pour ldap non sécurisé, utilisez la chaîne
+       <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
+       chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
+       Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
 
+<dt>hôte:port</dt>
 
+        <dd>
+          <p>Il s'agit du nom/port du serveur ldap
+         (dont la valeur par défaut est
+         <code>localhost:389</code> pour <code>ldap</code>, et
+         <code>localhost:636</code> pour <code>ldaps</code>). Pour
+         spécifier plusieurs serveurs LDAP redondants, indiquez
+         simplement leur liste en les séparant par des espaces.
+         <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
+         à chacun des serveurs jusqu'à ce qu'il parvienne à se
+         connecter avec succès. Notez qu'en cas de multiples serveurs
+         LDAP, l'ensemble de l'URL LDAP doit être entourée de
+         guillemets.</p>
 
-<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
+          <p>lorsqu'une connection a été établie avec un serveur, elle
+         reste active pendant toute la durée de vie du processus
+         <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
+         cesse de fonctionner.</p>
 
-    <p>Cette directive permet de spécifier un groupe LDAP dont les
-    membres auront l'autorisation d'accès. Elle prend comme argument le
-    DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
-    guillemets. Par exemple, supposons que l'entrée suivante existe dans
-    l'annuaire LDAP :</p>
-<div class="example"><pre>dn: cn=Administrators, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Barbara Jenson, o=Example
-uniqueMember: cn=Fred User, o=Example</pre></div>
+          <p>Si le serveur LDAP cesse de fonctionner, et ainsi
+         interrompt une
+         connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
+         de se reconnecter en commençant par le premier serveur de la
+         liste, et ainsi de suite avec les serveurs redondants
+         suivants. Notez que ce processus n'a rien à voir avec une
+         véritable recherche de type round-robin.</p>
+        </dd>
 
-    <p>La directive suivante autoriserait alors l'accès à Fred et
-    Barbara :</p>
-<pre class="prettyprint lang-config">Require ldap-group cn=Administrators, o=Example</pre>
+<dt>DN-de-base</dt>
+        <dd>Le DN de la branche de l'annuaire à partir de laquelle
+       toutes les recherches seront lancées. Il doit au moins
+       correspondre à la racine de votre annuaire, mais vous pouvez
+       aussi indiquer une branche plus spécifique.</dd>
 
+<dt>attribut</dt>
 
-    <p>Les membres peuvent aussi se trouver dans les sous-groupes du
-    groupe LDAP spécifié si la directive <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code> a été
-    définie à une valeur supérieure à 0. Par exemple, supposons que les
-    entrées suivantes existent dans l'annuaire LDAP :</p>
-<div class="example"><pre>dn: cn=Employees, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Managers, o=Example
-uniqueMember: cn=Administrators, o=Example
-uniqueMember: cn=Users, o=Example
+        <dd>Il s'agit de l'attribut à utiliser pour la recherche.
+       Bien que la RFC
+       2255 autorise une liste d'attributs séparés par des virgules,
+       seul le premier sera retenu, sans tenir compte des autres
+       attributs fournis. Si aucun attribut n'est fourni, l'attribut
+       par défaut est <code>uid</code>. Il est judicieux de choisir un
+       attribut dont la valeur sera unique parmi toutes les entrées de
+       la branche de l'annuaire que vous aurez définie. Tous les
+       attributs spécifiés seront enregistrés dans des variables
+       d'environnement avec le préfixe AUTHENTICATE_, afin de pouvoir
+       être utilisés par d'autres modules.</dd>
 
-dn: cn=Managers, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Bob Ellis, o=Example
-uniqueMember: cn=Tom Jackson, o=Example
+<dt>portée</dt>
 
-dn: cn=Administrators, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Barbara Jenson, o=Example
-uniqueMember: cn=Fred User, o=Example
+        <dd>Il s'agit de la portée de la recherche. Elle peut prendre
+       les valeurs <code>one</code> ou <code>sub</code>. Notez que la
+       RFC 2255 supporte aussi une portée de valeur <code>base</code>,
+       mais cette dernière n'est pas supportée par le module. Si la
+       portée n'est pas définie, ou si elle est définie à
+       <code>base</code>, c'est la valeur de portée par défaut
+       <code>sub</code> qui sera utilisée.</dd>
 
-dn: cn=Users, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Allan Jefferson, o=Example
-uniqueMember: cn=Paul Tilley, o=Example
-uniqueMember: cn=Temporary Employees, o=Example
+<dt>filtre</dt>
 
-dn: cn=Temporary Employees, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Jim Swenson, o=Example
-uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
+        <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
+       filtre n'est spécifié, le filtre par défaut
+       <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
+       une recherche de tous les types d'objets de l'arborescence. La
+       taille des filtres est limitée à environ 8000 caractères (valeur
+       de la macro <code>MAX_STRING_LEN</code> dans le code source
+       d'Apache), ce qui s'avère plus que suffisant pour la plupart des
+       applications. Depuis la version 2.4.10, il est possible
+       d'utiliser le paramètre "none" pour spécifier qu'aucun filtre
+       n'est activé ; ce paramètre est obligatoire avec certains
+       serveurs LDAP primitifs.</dd>
+</dl>
 
-    <p>Les directives suivantes autoriseraient alors l'accès à Bob
-    Ellis, Tom Jackson, Barbara Jenson, Fred User, Allan Jefferson, et
-    Paul Tilley, mais l'interdiraient à Jim Swenson, ou Elliot Rhodes
-    (car ils sont situés dans un sous-groupe de niveau de profondeur 2)
-    :</p>
-<pre class="prettyprint lang-config">Require ldap-group cn=Employees, o=Example
-AuthLDAPMaxSubGroupDepth 1</pre>
+    <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
+    fournis par le client HTTP sont combinés pour créer un filtre de
+    recherche du style :
+    <code>(&amp;(<em>filtre</em>)(<em>attribut</em>
+    =<em>nom-utilisateur</em>))</code>.</p>
 
+    <p>Par exemple, considérons l'URL
+    <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>.
+    Lorsqu'un client tentera de se connecter en utilisant le nom
+    d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
+    : <code>(&amp;(posixid=*)(cn=Babs Jenson))</code>.</p>
 
-    <p>Le comportement de cette directive est modifié par les directives
-    <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>,
-    <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>,
-    <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>,
-    <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, et
-    <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>.</p>
+    <p>On peut encore ajouter un paramètre optionnel pour permettre à
+    l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
+    prendre l'une des valeurs suivantes :</p>
 
+<dl>
+    <dt>NONE</dt>
+        <dd>Établit une connexion non sécurisée sur le port LDAP par
+       défaut, ce qui est équivalent à <code>ldap://</code> sur le port
+       389.</dd>
+    <dt>SSL</dt>
+        <dd>Établit une connexion sécurisée sur le port LDAP sécurisé
+       par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
+    <dt>TLS | STARTTLS</dt>
+        <dd>Établit une connexion sécurisée par élévation de niveau sur
+       le port LDAP par défaut. Cette connexion sera initialisée sur le
+       port 389 par défaut, puis élevée à un niveau de connexion
+       sécurisée sur le même port.</dd>
+</dl>
 
-<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
+    <p>Voir plus haut pour des exemples d'URLs définies par la directive
+    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
 
-    <p>La directive <code>Require ldap-dn</code> permet à
-    l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
-    Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
-    le DN extrait de
-    l'annuaire correspond au DN spécifié par la directive <code>Require
-    ldap-dn</code>, l'autorisation d'accès est accordée. Note :
-    n'entourez pas Le DN de guillemets.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="contents" id="contents">Sommaire</a></h2>
 
-    <p>La directive suivante accorderait l'accès à un DN spécifique
-    :</p>
-<pre class="prettyprint lang-config">Require ldap-dn cn=Barbara Jenson, o=Example</pre>
+    <ul>
+      <li>
+        <a href="#operation">Mode opératoire</a>
 
+        <ul>
+          <li><a href="#authenphase">La phase
+         d'authentification</a></li>
 
-    <p>Le comportement ce cette directive est modifié par la directive
-    <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
+          <li><a href="#authorphase">La phase d'autorisation</a></li>
+        </ul>
+      </li>
 
+      <li>
+        <a href="#requiredirectives">Les directives requises</a>
 
-<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
+        <ul>
+          <li><a href="#requser">Require ldap-user</a></li>
+          <li><a href="#reqgroup">Require ldap-group</a></li>
+          <li><a href="#reqdn">Require ldap-dn</a></li>
+          <li><a href="#reqattribute">Require ldap-attribute</a></li>
+          <li><a href="#reqfilter">Require ldap-filter</a></li>
+        </ul>
+      </li>
 
-    <p>La directive <code>Require ldap-attribute</code> permet à
-    l'administrateur d'accorder l'autorisation d'accès en fonction des
-    attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
-    valeur de l'attribut dans l'annuaire correspond à la valeur
-    spécifiée par la directive, l'autorisation d'accès est accordée.</p>
+      <li><a href="#examples">Exemples</a></li>
+      <li><a href="#usingtls">Utilisation de TLS</a></li>
+      <li><a href="#usingssl">Utilisation de SSL</a></li>
+      <li><a href="#exposed">Mise à disposition des informations de
+      connexion</a></li>
+      <li><a href="#activedirectory">Utilisation d'Active Directory</a></li>
+      <li>
+        <a href="#frontpage">Utilisation de Microsoft FrontPage avec
+        <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code></a>
 
-    <p>La directive suivante accorderait l'autorisation d'accès à tout
-    utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
+        <ul>
+          <li><a href="#howitworks">Comment ça marche</a></li>
+          <li><a href="#fpcaveats">Mises en garde</a></li>
+        </ul>
+      </li>
+    </ul>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="operation" id="operation">Mode opératoire</a></h2>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
+    <p>L'utilisateur se voit accorder l'accès selon un processus en deux
+    phases. La première phase est l'authentification, au cours de
+    laquelle le fournisseur d'authentification
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> vérifie que les informations de
+    connexion de l'utilisateur sont valides. Elle est aussi connue sous
+    le nom de phase de <em>recherche/connexion</em> (NdT : en anglais ou
+    dans le code source : <em>search/bind</em>). La deuxième
+    phase est l'autorisation, au cours de laquelle
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> détermine si l'utilisateur
+    authentifié a la permission d'accéder à la ressource considérée.
+    Elle est aussi connue sous le nom de phase de
+    <em>comparaison</em> (<em>compare</em>).</p>
 
+    <p><code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> comporte un fournisseur
+    d'authentification authn_ldap et un gestionnaire d'autorisation
+    authz_ldap. Le fournisseur d'authentification authn_ldap peut être
+    invoqué en affectant la valeur <code>ldap</code> à la directive
+    <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>. Le
+    gestionnaire d'autorisation authz_ldap enrichit la liste des types
+    d'autorisations de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en y ajoutant les
+    valeurs <code>ldap-user</code>, <code>ldap-dn</code> et
+    <code>ldap-group</code>.</p>
 
-    <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
-    même directive en les séparant par des espaces, ou en définissant
-    plusieurs directives <code>Require ldap-attribute</code>. La logique
-    sous-jacente à une liste de paires attribut/valeur est une opération
-    OU. L'autorisation d'accès sera accordée si au moins une paire
-    attribut/valeur de la liste spécifiée correspond à la paire
-    attribut/valeur de l'utilisateur authentifié. Si elle contient des
-    espaces, la valeur, et seulement la valeur, doit être entourée de
-    guillemets.</p>
+<h3><a name="authenphase" id="authenphase">La phase d'authentification</a></h3>
 
-    <p>La directive suivante accorderait l'autorisation d'accès à tout
-    utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
-    donc l'attribut status aurait pour valeur "actif" :</p>
+    <p>Au cours de la phase d'authentification,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> recherche une entrée de l'annuaire
+    LDAP qui correspond au nom d'utilisateur fourni par le client HTTP.
+    Si une correspondance unique est trouvée,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de se connecter au serveur
+    hébergeant l'annuaire LDAP en utilisant le DN de l'entrée et le mot
+    de passe fourni par le client HTTP. Comme ce processus effectue tout
+    d'abord une recherche, puis une connexion, il est aussi connu sous
+    le nom de phase de recherche/connexion. Voici le détail des étapes
+    constituant la phase de recherche/connexion :</p>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
+    <ol>
+      <li>Confection d'un filtre de recherche en combinant les attribut
+      et filtre définis par la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> avec le nom d'utilisateur et le mot de
+      passe fournis par le client HTTP.</li>
 
+      <li>Recherche dans l'annuaire LDAP en utilisant le filtre
+      confectionné précédemment. Si le résultat de la recherche est
+      négatif ou comporte plusieurs entrées, refus ou restriction de
+      l'accès.</li>
 
+      <li>Extraction du DN (distinguished name) de l'entrée issue du
+      résultat de la recherche, et tentative de connexion au serveur
+      LDAP en utilisant ce DN et le mot de passe fournis par le client
+      HTTP. Si la connexion échoue, refus ou restriction de
+      l'accès.</li>
+    </ol>
 
+    <p>Les directives utilisées durant la phase de recherche/connexion
+    sont les suivantes :</p>
 
-<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
+    <table>
+      
+      <tr>
+        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
 
-    <p>La directive <code>Require ldap-filter</code> permet à
-    l'administrateur d'accorder l'autorisation d'accès en fonction d'un
-    filtre de recherche LDAP complexe. L'autorisation d'accès est
-    accordée si le DN renvoyé par le filtre de recherche correspond au
-    DN de l'utilisateur authentifié.</p>
+        <td>Spécifie le serveur LDAP, le DN de base, l'attribut à
+       utiliser pour la recherche, ainsi que les filtres de recherche
+       supplémentaires.</td>
+      </tr>
 
-    <p>La directive suivante accorderait l'autorisation d'accès à tout
-    utilisateur possédant un téléphone cellulaire et faisant partie du
-    département "marketing" :</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></td>
 
-    <pre class="prettyprint lang-config">Require ldap-filter &amp;(cell=*)(department=marketing)</pre>
+        <td>Un DN optionnel pour se connecter durant la phase de
+       recherche.</td>
+      </tr>
 
+      <tr>
+        <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code></td>
 
-    <p>Alors que la directive <code>Require ldap-attribute</code> se
-    contente d'une simple comparaison d'attributs, la directive
-    <code>Require ldap-filter</code> effectue une opération de recherche
-    dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
-    Si une simple comparaison d'attributs suffit, l'opération de
-    comparaison effectuée par <code>ldap-attribute</code> sera plus
-    rapide que l'opération de recherche effectuée par
-    <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
-    LDAP de grande taille.</p>
+        <td>Un mot de passe optionnel pour se connecter durant la phase
+       de recherche.</td>
+      </tr>
+    </table>
 
 
+<h3><a name="authorphase" id="authorphase">La phase d'autorisation</a></h3>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
+    <p>Au cours de la phase d'autorisation,
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tente de déterminer si
+    l'utilisateur est autorisé à accéder à la ressource considérée. Une
+    grande partie de cette vérification consiste pour
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> en des opérations de comparaison au
+    niveau du serveur LDAP. C'est pourquoi cette phase est aussi connue
+    sous le nom de phase de comparaison.
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> accepte les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> suivantes pour
+    déterminer si les informations de connexion permettent d'accorder
+    l'accès à l'utilisateur :</p>
 
     <ul>
-      <li>
-        Accorde l'autorisation d'accès à tout utilisateur présent dans
-       l'annuaire LDAP, en utilisant son UID pour effectuer la
-       recherche :
-<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
-Require valid-user</pre>
-
-      </li>
+      <li>Avec la directive <a href="#reqgroup"><code>Require ldap-user</code></a>,
+      l'autorisation d'accès est accordée si le nom d'utilisateur
+      spécifié par la directive correspond au nom d'utilisateur fourni
+      par le client.</li>
 
-      <li>
-        L'exemple suivant est similaire au précédent, mais les champs
-       dont les valeurs par défaut conviennent sont omis. Notez aussi
-       la présence d'un annuaire LDAP redondant :
-<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
-Require valid-user</pre>
+      <li>Avec la directive <a href="#reqdn"><code>Require
+      ldap-dn</code></a>, l'autorisation d'accès est accordée si le DN
+      spécifié par la directive correspond au DN extrait du résultat de
+      la recherche dans l'annuaire LDAP.</li>
 
-      </li>
+      <li>Avec la directive <a href="#reqgroup"><code>Require ldap-group</code></a>,
+      l'autorisation d'accès est accordée si le DN extrait du résultat de
+      la recherche dans l'annuaire LDAP (ou le nom d'utilisateur fourni
+      par le client) appartient au groupe LDAP spécifié par la
+      directive, ou éventuellement à un de ses sous-groupes.</li>
 
-      <li>
-        Encore un exemple similaire aux précédents, mais cette fois,
-       c'est l'attribut cn qui est utilisé pour la recherche à la place
-       de l'UID. Notez que ceci peut poser problème si plusieurs
-       utilisateurs de l'annuaire partagent le même <code>cn</code>,
-       car une recherche sur le <code>cn</code> <strong>doit</strong>
-       retourner une entrée et une seule. C'est pourquoi cette
-       approche n'est pas recommandée : il est préférable de choisir un
-       attribut de votre annuaire dont l'unicité soit garantie, comme
-       <code>uid</code>.
-<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
-Require valid-user</pre>
+      <li>Avec la directive <a href="#reqattribute">
+      <code>Require ldap-attribute</code></a>, l'autorisation d'accès
+      est accordée si la valeur de l'attribut extraite de la recherche
+      dans l'annuaire LDAP correspond à la valeur spécifiée par la
+      directive.</li>
 
-      </li>
+      <li>Avec la directive <a href="#reqfilter">
+      <code>Require ldap-filter</code></a>, l'autorisation d'accès
+      est accordée si le filtre de recherche renvoie un objet
+      utilisateur unique qui corresponde au DN de l'utilisateur
+      authentifié.</li>
 
-      <li>
-        Accorde l'autorisation d'accès à tout utilisateur appartenant au
-       groupe Administrateurs. Les utilisateurs doivent s'authentifier
-       en utilisant leur UID :
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
-Require ldap-group cn=Administrators, o=Example</pre>
+      <li>dans tous les autres cas, refus ou restriction de
+      l'accès.</li>
+    </ul>
 
-      </li>
+    <p>Sous réserve du chargement de modules d'autorisation
+    supplémentaires, d'autres valeurs de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> peuvent être
+    spécifiées.</p>
 
-      <li>
-      Accorde l'accès à tout utilisateur appartenant au groupe dont le
-      nom correspond au nom d'hôte du serveur virtuel. Dans cet exemple,
-      on utilise une <a href="../expr.html">expression</a> pour
-      construire le filtre.
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
-Require ldap-group cn=%{SERVER_NAME}, o=Example</pre>
+    <ul>
+        <li>L'accès est accordé à tous les utilisateurs authentifiés si
+       une directive <a href="#requser"><code>Require
+       valid-user</code></a> est présente (nécessite le module
+       <code class="module"><a href="../mod/mod_authz_user.html">mod_authz_user</a></code>).</li>
 
-      </li>
+        <li>Avec la directive <a href="#reqgroup"><code>Require group</code></a>, l'autorisation
+       d'accès est accordée si le module
+       <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> a été chargé et si la
+       directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> a été
+       définie.</li>
 
-      <li>
-        Pour l'exemple suivant, on suppose que tout utilisateur de chez
-       Example qui dispose d'un bippeur alphanumérique possèdera un
-       attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
-       (authentifiés via leur UID) se verront accorder l'autorisation
-       d'accès :
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
-Require valid-user</pre>
+        <li>etc...</li>
+     </ul>
 
-      </li>
 
-      <li>
-        <p>L'exemple suivant illustre la puissance des filtres pour
-       effectuer des requêtes complexes. Sans les filtres, il aurait
-       été nécessaire de créer un nouveau groupe LDAP et de s'assurer
-       de la synchronisation des membres du groupe avec les
-       utilisateurs possédant un bippeur. Tout devient limpide avec les
-       filtres. Nous avons pour but d'accorder l'autorisation d'accès à
-       tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
-       qui ne possède pas de bippeur, mais doit tout de même pouvoir
-       accéder à la ressource :</p>
-<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
-Require valid-user</pre>
+    <p>Durant la phase de comparaison, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
+    utilise les directives suivantes :</p>
 
+    <table>
+      
+      <tr>
+        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>
+       </td>
 
-        <p>Ce dernier exemple peut sembler confus au premier abord ; en
-       fait, il permet de mieux comprendre à quoi doit ressembler le
-       filtre en fonction de l'utilisateur qui se connecte. Si Fred
-       User se connecte en tant que <code>fuser</code>, le filtre devra
-       ressembler à :</p>
+        <td>On utilise l'attribut spécifié dans l'URL pour les
+       opérations de comparaison initiées par la directive
+       <code>Require ldap-user</code>.</td>
+      </tr>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
+      <tr>
+        <td><code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code></td>
 
-        <p>Un recherche avec le filtre ci-dessus ne retournera un
-       résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
-       Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
-       devra ressembler à :</p>
+        <td>Détermine le comportement de la directive <code>Require
+       ldap-dn</code>.</td>
+      </tr>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
+      <tr>
+        <td><code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code></td>
 
-        <p>Un recherche avec le filtre ci-dessus retournera un
-       résultat positif que <em>jmanager</em> dispose d'un
-       bippeur ou non</p>
-      </li>
-    </ul>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
+        <td>Détermine l'attribut utilisé pour les opérations de
+       comparaison initiées par la directive <code>Require
+       ldap-group</code>.</td>
+      </tr>
 
-    <p>Pour l'utilisation de TLS, voir les directives du module
-    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> et <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code></td>
 
-    <p>Un second paramètre optionnel peut être ajouté à la directive
-    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
-    remplacer le type de connexion par défaut défini par la directive
-    <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
-    permettra de promouvoir la connexion établie via une URL du type
-    <em>ldap://</em> au statut de connection sécurisée sur le même
-    port.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
+        <td>Spécifie si l'on doit utiliser le DN ou le nom de
+       l'utilisateur lors des opérations de comparaison initiées par la
+       directive <code>Require ldap-group</code>.</td>
+      </tr>
 
-    <p>Pour l'utilisation de SSL, voir les directives du module
-    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> et <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code></td>
 
-    <p>Pour spécifier un serveur LDAP sécurisé, utilisez
-    <em>ldaps://</em> au lieu de
-    <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="exposed" id="exposed">Mise à disposition des informations de
-connexion</a></h2>
+        <td>Détermine la profondeur maximale de l'arborescence des
+       sous-groupes qui seront évalués au cours des opérations de
+       comparaisons initiées par la directive <code>Require
+       ldap-group</code>.</td>
+      </tr>
 
-    <p>Au cours du processus d'<em>authentification</em>, les attributs LDAP
-    spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
-    dans des variables d'environnement préfixées par la chaîne
-    "AUTHENTICATE_".</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code></td>
 
-    <p>Au cours du processus d'<em>autorisation</em>, les attributs LDAP
-    spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
-    dans des variables d'environnement préfixées par la chaîne
-    "AUTHORIZE_".</p>
+        <td>Détermine l'attribut à utiliser lors de l'extraction de
+       membres de sous-groupes du groupe courant au cours des
+       opérations de comparaison initiées par la directive
+       <code>Require ldap-group</code>.</td>
+      </tr>
 
-    <p>Si les champs attribut contiennent le nom, le CN et le numéro de
-    téléphone d'un utilisateur, un programme CGI pourra accéder à ces
-    informations sans devoir effectuer une autre requête LDAP pour
-    les extraire de l'annuaire.</p>
+      <tr>
+        <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
 
-    <p>Ceci a pour effet de simplifier considérablement le code et la
-    configuration nécessaire de certaines applications web.</p>
+        <td>Spécifie les valeurs de classe d'objet LDAP à utiliser pour
+       déterminer si les objets extraits de l'annuaire sont bien des
+       objets de type groupe (et non des objets de type utilisateur),
+       au cours du traitement des sous-groupes initié par la directive
+       <code>Require ldap-group</code>.</td>
+      </tr>
+    </table>
 
 </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
-<h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
-Directory</a></h2>
+<h2><a name="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
 
-    <p>Active Directory peut supporter plusieurs domaines à la fois.
-    Pour faire la distinction entre les utilisateurs de plusieurs
-    domaines, on peut ajouter à l'entrée de l'utilisateur dans
-    l'annuaire un identifiant appelé Nom
-    Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
-    compose en général du nom de compte de l'utilisateur, suivi du nom
-    du domaine considéré, par exemple <em>untel@nz.example.com</em>.</p>
+    <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache sont utilisées
+    au cours de la phase d'autorisation afin de s'assurer que
+    l'utilisateur est autorisé à accéder à une ressource.
+    mod_authnz_ldap enrichit la liste des types d'autorisations avec les
+    valeurs <code>ldap-user</code>, <code>ldap-dn</code>,
+    <code>ldap-group</code>, <code>ldap-attribute</code> et
+    <code>ldap-filter</code>. D'autres types d'autorisations sont
+    disponibles, sous réserve du chargement de modules d'autorisation
+    supplémentaires.</p>
 
-    <p>Vous voudrez probablement configurer le module
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> afin de pouvoir authentifier les
-    utilisateurs de n'importe quel domaine de la forêt Active Directory.
-    Ainsi, <em>untel@nz.example.com</em> et
-    <em>untel@au.example.com</em> pourront être authentifiés en une
-    seule fois par la même requête.</p>
+    <p>Depuis la version 2.4.8, les directives require LDAP supportent
+    les <a href="../expr.html">expressions</a>.</p>
 
-    <p>Pour y parvenir, on utilise le concept de Catalogue Global
-    d'Active Directory. Ce Catalogue Global est une copie en lecture
-    seule des attributs sélectionnés de tous les serveurs de la forêt
-    Active Directory. Une requête vers le
-    Catalogue Global permet donc d'atteindre tous les domaines en une
-    seule fois, sans avoir à se connecter aux différents serveurs, via
-    des liaisons dont certaines peuvent être lentes.</p>
+<h3><a name="requser" id="requser">Require ldap-user</a></h3>
 
-    <p>Lorsqu'il est activé, la Catalogue Global est un serveur
-    d'annuaire indépendant accessible sur le port 3268 (3269 pour SSL).
-    Pour rechercher un utilisateur, effectuez une recherche sur
-    l'attribut <em>userPrincipalName</em>, avec une base de recherche
-    vide, comme suit :</p>
+    <p>La directive <code>Require ldap-user</code> permet de spécifier
+    les noms des utilisateurs autorisés à accéder à la ressource.
+    Lorsque <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a extrait un DN unique de
+    l'annuaire LDAP, il effectue une opération de comparaison LDAP en
+    utilisant le nom d'utilisateur spécifié par la directive
+    <code>Require ldap-user</code>, pour vérifier si ce nom
+    d'utilisateur correspond à l'entrée LDAP extraite. On peut accorder
+    l'accès à plusieurs utilisateurs en plaçant plusieurs nom
+    d'utilisateurs sur la même ligne séparés par des espaces. Si un nom
+    d'utilisateur contient des espaces, il doit être entouré de
+    guillemets. On peut aussi accorder l'accès à plusieurs utilisateurs
+    en utilisant une directive <code>Require ldap-user</code> par
+    utilisateur. Par exemple, avec la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> définie à
+    <code>ldap://ldap/o=Example?cn</code> (spécifiant donc que l'attribut
+    <code>cn</code> sera utilisé pour les recherches), on pourra
+    utiliser les directives Require suivantes pour restreindre l'accès
+    :</p>
+<pre class="prettyprint lang-config">Require ldap-user "Barbara Jenson"
+Require ldap-user "Fred User"
+Require ldap-user "Joe Manager"</pre>
 
-<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
-AuthLDAPBindPassword password
-AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</pre>
 
+    <p>De par la manière dont <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> traite
+    cette directive, Barbara Jenson peut s'authentifier comme
+    <em>Barbara Jenson</em>, <em>Babs Jenson</em> ou tout autre
+    <code>cn</code> sous lequel elle est enregistrée dans l'annuaire
+    LDAP. Une seule ligne <code>Require ldap-user</code> suffit pour
+    toutes les valeurs de l'attribut dans l'entrée LDAP de
+    l'utilisateur.</p>
+
+    <p>Si l'attribut <code>uid</code> avait été spécifié à la place de
+    l'attribut <code>cn</code> dans l'URL précédente, les trois lignes
+    ci-dessus auraient pû être condensées en une seule ligne :</p>
+<pre class="prettyprint lang-config">Require ldap-user bjenson fuser jmanager</pre>
 
-    <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
-    la forme<em>untel@nz.example.com</em>.</p>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
-    FrontPage avec mod_authnz_ldap</a></h2>
 
-    <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
-    spécifiques à FrontPage-web (c'est à dire les modules
-    <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
-    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
-    l'authentification. Malheureusement, il ne suffit pas de modifier
-    l'authentification LDAP en ajoutant les directives appropriées, car
-    ceci corromprait les formulaires de <em>Permissions</em> dans le
-    client FrontPage, qui sont censés modifier les fichiers
-    d'autorisation standards au format texte.</p>
+<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
+
+    <p>Cette directive permet de spécifier un groupe LDAP dont les
+    membres auront l'autorisation d'accès. Elle prend comme argument le
+    DN du groupe LDAP. Note : n'entourez pas le nom du groupe avec des
+    guillemets. Par exemple, supposons que l'entrée suivante existe dans
+    l'annuaire LDAP :</p>
+<div class="example"><pre>dn: cn=Administrators, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Barbara Jenson, o=Example
+uniqueMember: cn=Fred User, o=Example</pre></div>
 
-    <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
-    l'authentification LDAP consiste à ajouter les directives suivantes
-    à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
-    le site web :</p>
-<pre class="prettyprint lang-config">AuthLDAPURL       "the url"
-AuthGroupFile     mygroupfile
-Require group     mygroupfile</pre>
+    <p>La directive suivante autoriserait alors l'accès à Fred et
+    Barbara :</p>
+<pre class="prettyprint lang-config">Require ldap-group cn=Administrators, o=Example</pre>
 
 
-<h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
+    <p>Les membres peuvent aussi se trouver dans les sous-groupes du
+    groupe LDAP spécifié si la directive <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code> a été
+    définie à une valeur supérieure à 0. Par exemple, supposons que les
+    entrées suivantes existent dans l'annuaire LDAP :</p>
+<div class="example"><pre>dn: cn=Employees, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Managers, o=Example
+uniqueMember: cn=Administrators, o=Example
+uniqueMember: cn=Users, o=Example
 
-    <p>FrontPage restreint l'accès à un site web en ajoutant la
-    directive <code>Require valid-user</code> aux fichiers
-    <code>.htaccess</code>. La directive <code>Require valid-user</code>
-    permettra l'accès à tout utilisateur valide <em>du point de vue
-    LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
-    dans l'annuaire LDAP sera considéré comme valide, alors que
-    FrontPage ne considère comme valides que les utilisateurs
-    enregistrés dans le fichier des utilisateurs local. En remplaçant
-    l'autorisation par groupe LDAP par une autorisation par fichier de
-    groupe, Apache sera en mesure de consulter le fichier des
-    utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
-    - lors du processus d'autorisation des utilisateurs.</p>
+dn: cn=Managers, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Bob Ellis, o=Example
+uniqueMember: cn=Tom Jackson, o=Example
 
-    <p>Une fois les directives ajoutées selon ce qui précède, les
-    utilisateurs FrontPage pourront effectuer toutes les opérations de
-    gestion à partir du client FrontPage.</p>
+dn: cn=Administrators, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Barbara Jenson, o=Example
+uniqueMember: cn=Fred User, o=Example
 
+dn: cn=Users, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Allan Jefferson, o=Example
+uniqueMember: cn=Paul Tilley, o=Example
+uniqueMember: cn=Temporary Employees, o=Example
 
-<h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
+dn: cn=Temporary Employees, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Jim Swenson, o=Example
+uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
 
-    <ul>
-      <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
-      l'authentification doit aussi être valide pour le fichier des
-      utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
-      l'UID est idéal.</li>
+    <p>Les directives suivantes autoriseraient alors l'accès à Bob
+    Ellis, Tom Jackson, Barbara Jenson, Fred User, Allan Jefferson, et
+    Paul Tilley, mais l'interdiraient à Jim Swenson, ou Elliot Rhodes
+    (car ils sont situés dans un sous-groupe de niveau de profondeur 2)
+    :</p>
+<pre class="prettyprint lang-config">Require ldap-group cn=Employees, o=Example
+AuthLDAPMaxSubGroupDepth 1</pre>
 
-      <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
-      administrateurs de FrontPage doivent choisir des noms
-      d'utilisateurs qui existent déjà dans l'annuaire LDAP (pour des
-      raisons évidentes). De même, le mot de passe que l'administrateur
-      entre dans le formulaire est ignoré, car pour l'authentification,
-      Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
-      de passe enregistré dans le fichier des utilisateurs, ce qui peut
-      semer la confusion parmi les administrateurs web.</li>
 
-      
-      <li>Pour supporter FrontPage, Apache doit être compilé avec
-      <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>
-      et <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>. Ceci est dû au fait
-      qu'Apache doit utiliser le fichier de groupes de
-      <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> pour déterminer le niveau
-      d'accès d'un utilisateur au site web FrontPage.</li>
+    <p>Le comportement de cette directive est modifié par les directives
+    <code class="directive"><a href="#authldapgroupattribute">AuthLDAPGroupAttribute</a></code>,
+    <code class="directive"><a href="#authldapgroupattributeisdn">AuthLDAPGroupAttributeIsDN</a></code>,
+    <code class="directive"><a href="#authldapmaxsubgroupdepth">AuthLDAPMaxSubGroupDepth</a></code>,
+    <code class="directive"><a href="#authldapsubgroupattribute">AuthLDAPSubGroupAttribute</a></code>, et
+    <code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code>.</p>
 
-      <li>Les directives doivent être placées dans les fichiers
-      <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
-      placez dans une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>. Ceci est dû au fait que pour savoir
-      où se trouve la liste des utilisateurs valides,
-      <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> doit être en mesure d'atteindre
-      la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> qui se trouve
-      dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
-      de <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sont pas situées dans le
-      même fichier <code>.htaccess</code> que les directives FrontPage,
-      la configuration ne fonctionnera pas, car
-      <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sera jamais en mesure de
-      traiter le fichier <code>.htaccess</code>, et par conséquent ne
-      pourra jamais trouver le fichier des utilisateurs géré par
-      FrontPage.</li>
-    </ul>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapauthorizeprefix" id="authldapauthorizeprefix">Directive</a> <a name="AuthLDAPAuthorizePrefix" id="AuthLDAPAuthorizePrefix">AuthLDAPAuthorizePrefix</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le préfixe ajouté aux variables d'environnement
-durant la phase d'autorisation</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPAuthorizePrefix <em>préfixe</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPAuthorizePrefix AUTHORIZE_</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le préfixe ajouté aux
-    variables d'environnement durant la phase d'autorisation. Si la
-    valeur spécifiée est <em>AUTHENTICATE_</em>, les utilisateurs de ces
-    variables d'environnement verront les mêmes informations, que le
-    serveur effectue une authentification, une autorisation, ou les
-    deux.</p>
+<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
 
-    <div class="note"><h3>Note</h3>
-    Aucune variable d'autorisation n'est définie lorsqu'un utilisateur
-    s'est vu autoriser l'accès via la directive <code>Require
-    valid-user</code>.
-    </div>
+    <p>La directive <code>Require ldap-dn</code> permet à
+    l'administrateur d'accorder l'utorisation d'accès en fonction du DN.
+    Elle permet de spécifier un DN pour lequel l'accès est autorisé. Si
+    le DN extrait de
+    l'annuaire correspond au DN spécifié par la directive <code>Require
+    ldap-dn</code>, l'autorisation d'accès est accordée. Note :
+    n'entourez pas Le DN de guillemets.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapbindauthoritative" id="authldapbindauthoritative">Directive</a> <a name="AuthLDAPBindAuthoritative" id="AuthLDAPBindAuthoritative">AuthLDAPBindAuthoritative</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si l'on doit utiliser d'autres fournisseurs
-d'authentification lorsque le serveur ne peut pas valider les données
-d'authentification de l'utilisateur, alors que ce dernier possède un
-DN.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindAuthoritative<em>off|on</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPBindAuthoritative on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Par défaut, des fournisseurs d'authentification sont appelés
-    si un utilisateur ne possède pas de DN, mais ne le sont pas si
-    l'utilisateur possède un DN et si son mot de passe ne peut pas être
-    vérifié lors d'une connexion au serveur LDAP. Si la directive
-    <code class="directive"><a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></code> est
-    définie à <em>off</em>, d'autres modules d'authentification
-    configurés auront une chance de valider le mot de passe de
-    l'utilisateur si la tentative de connexion au serveur LDAP échoue
-    pour une raison quelconque (avec les données d'authentification
-    fournies).</p>
-    <p>Ceci permet aux utilisateurs présent à la fois dans l'annuaire
-    LDAP et dans un fichier <code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code> de s'authentifier
-    lorsque le serveur LDAP est disponible, alors que le compte de
-    l'utilisateur est verrouillé ou que son mot de passe est
-    inutilisable pour une raison quelconque.</p>
+    <p>La directive suivante accorderait l'accès à un DN spécifique
+    :</p>
+<pre class="prettyprint lang-config">Require ldap-dn cn=Barbara Jenson, o=Example</pre>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_authn_file.html#authuserfile">AuthUserFile</a></code></li>
-<li><code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapbinddn" id="authldapbinddn">Directive</a> <a name="AuthLDAPBindDN" id="AuthLDAPBindDN">AuthLDAPBindDN</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Un DN optionnel pour se connecter au serveur
-LDAP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindDN <em>dn</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Cette directive permet de définir un DN optionnel pour se
-    connecter au serveur afin d'y rechercher des entrées. Si aucun DN
-    n'est spécifié, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera une
-    connexion anonyme.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapbindpassword" id="authldapbindpassword">Directive</a> <a name="AuthLDAPBindPassword" id="AuthLDAPBindPassword">AuthLDAPBindPassword</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mot de passe à utiliser en conjonction avec le DN de
-connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPBindPassword <em>mot-de-passe</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td><em>exec:</em> est disponible depuis la version 2.4.5 du
-serveur HTTP Apache.</td></tr>
-</table>
-    <p>Cette directive permet de spécifier un mot de passe à utiliser en
-    conjonction avec le DN de connexion. Notez que ce mot de passe
-    constitue en général une donnée sensible, et doit donc être protégé
-    de manière appropriée. Vous ne devez utiliser les directives
-    <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code> et <code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</a></code> que si
-    vous en avez vraiment besoin pour effectuer une recherche dans
-    l'annuaire.</p>
+    <p>Le comportement ce cette directive est modifié par la directive
+    <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
 
-    <p>Si la valeur spécifiée débute par "exec:", la commande qui suit sera
-    exécutée, et la première ligne renvoyée par la commande sur la
-    sortie standard sera utilisée comme mot de passe.</p>
-<pre class="prettyprint lang-config"># Mot de passe spécifié directement
-AuthLDAPBindPassword secret
 
-# Exécution de /path/to/program pour obtenir le mot de passe
-AuthLDAPBindPassword exec:/path/to/program
+<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
 
-# Exécution de /path/to/otherProgram avec un argument pour obtenir le mot de passe
-AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre>
+    <p>La directive <code>Require ldap-attribute</code> permet à
+    l'administrateur d'accorder l'autorisation d'accès en fonction des
+    attributs de l'utilisateur authentifié dans l'annuaire LDAP. Si la
+    valeur de l'attribut dans l'annuaire correspond à la valeur
+    spécifiée par la directive, l'autorisation d'accès est accordée.</p>
 
+    <p>La directive suivante accorderait l'autorisation d'accès à tout
+    utilisateur dont l'attribut employeeType a pour valeur "actif" :</p>
 
+    <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapcharsetconfig" id="authldapcharsetconfig">Directive</a> <a name="AuthLDAPCharsetConfig" id="AuthLDAPCharsetConfig">AuthLDAPCharsetConfig</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de configuration de la correspondance
-langage/jeu de caractères</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCharsetConfig <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>La directive <code class="directive">AuthLDAPCharsetConfig</code> permet
-    de définir le chemin du fichier de configuration de la
-    correspondance langage/jeu de caractères. <var>chemin-fichier</var>
-    est un chemin relatif au répertoire défini par la directive
-    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Ce fichier contient une liste
-    de correspondances extension de langage/jeu de caractères. La
-    plupart des administrateurs utilisent le fichier
-    <code>charset.conv</code> fourni qui associe les extensions de
-    langage courantes à leurs jeux de caractères.</p>
 
-    <p>Le fichier contient des lignes au format suivant :</p>
+    <p>Plusieurs paires attribut/valeur peuvent être spécifiées par une
+    même directive en les séparant par des espaces, ou en définissant
+    plusieurs directives <code>Require ldap-attribute</code>. La logique
+    sous-jacente à une liste de paires attribut/valeur est une opération
+    OU. L'autorisation d'accès sera accordée si au moins une paire
+    attribut/valeur de la liste spécifiée correspond à la paire
+    attribut/valeur de l'utilisateur authentifié. Si elle contient des
+    espaces, la valeur, et seulement la valeur, doit être entourée de
+    guillemets.</p>
+
+    <p>La directive suivante accorderait l'autorisation d'accès à tout
+    utilisateur dont l'attribut city aurait pour valeur "San Jose", ou
+    donc l'attribut status aurait pour valeur "actif" :</p>
 
-    <div class="example"><p><code>
-      <var>extension de langage</var> <var>jeu de caractères</var>
-      [<var>Nom du langage</var>] ...
-    </code></p></div>
+    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
 
-    <p>L'extension est insensible à la casse. Les lignes vides et les
-    lignes commençant par un dièse (<code>#</code>) sont ignorées.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapcompareasuser" id="authldapcompareasuser">Directive</a> <a name="AuthLDAPCompareAsUser" id="AuthLDAPCompareAsUser">AuthLDAPCompareAsUser</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation des données d'authentification de l'utilisateur
-pour effectuer les comparaisons pour l'attribution des autorisations</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareAsUser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareAsUser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version version 2.3.6</td></tr>
-</table>
-    <p>Lorsque cette directive est définie, et si
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
-    recherches LDAP pour les autorisations utilisent le nom distinctif
-    trouvé (DN) et le mot de passe d'authentification basique HTTP de
-    l'utilisateur authentifié au lieu des données d'authentification
-    configurées au niveau du serveur.</p>
 
-    <p>Les vérifications d'autorisation <em>ldap-attribute</em>,
-    <em>ldap-user</em>, et <em>ldap-group</em> (niveau simple seulement)
-    utilisent des comparaisons.</p>
 
-    <p>Cette directive n'a d'effet sur les comparaisons effectuées au
-    cours des traitements de groupe imbriqués, et lorsque la directive
-    <code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code>
-    est aussi activée.</p>
+<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
 
-    <p>Cette directive ne doit être utilisée que si votre serveur LDAP
-     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
-     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-     </p>
+    <p>La directive <code>Require ldap-filter</code> permet à
+    l'administrateur d'accorder l'autorisation d'accès en fonction d'un
+    filtre de recherche LDAP complexe. L'autorisation d'accès est
+    accordée si le DN renvoyé par le filtre de recherche correspond au
+    DN de l'utilisateur authentifié.</p>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapcomparednonserver" id="authldapcomparednonserver">Directive</a> <a name="AuthLDAPCompareDNOnServer" id="AuthLDAPCompareDNOnServer">AuthLDAPCompareDNOnServer</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le serveur LDAP pour comparer les DNs</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPCompareDNOnServer on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPCompareDNOnServer on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Lorsque cette directive est définie à on,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise le serveur LDAP pour
-    comparer les DNs. Il s'agit de la seule méthode infaillible pour
-    comparer les DNs. <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va rechercher
-    dans l'annuaire le DN spécifié par la directive <a href="#reqdn"><code>Require dn</code></a>, puis extraire ce DN et le
-    comparer avec le DN extrait de l'entrée de l'utilisateur. Si cette
-    directive est à off, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> effectue une
-    simple comparaison de chaînes. Cette dernière approche peut produire
-    des faux négatifs, mais elle est beaucoup plus rapide. Notez
-    cependant que le cache de <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> peut accélérer
-    la comparaison de DNs dans la plupart des situations.</p>
+    <p>La directive suivante accorderait l'autorisation d'accès à tout
+    utilisateur possédant un téléphone cellulaire et faisant partie du
+    département "marketing" :</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapdereferencealiases" id="authldapdereferencealiases">Directive</a> <a name="AuthLDAPDereferenceAliases" id="AuthLDAPDereferenceAliases">AuthLDAPDereferenceAliases</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>À quel moment le module va déréférencer les
-alias</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPDereferenceAliases never|searching|finding|always</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPDereferenceAliases always</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier à quel moment
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va déréférencer les alias au cours
-    des opérations liées à LDAP. La valeur par défaut est
-    <code>always</code>.</p>
+    <pre class="prettyprint lang-config">Require ldap-filter &amp;(cell=*)(department=marketing)</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapgroupattribute" id="authldapgroupattribute">Directive</a> <a name="AuthLDAPGroupAttribute" id="AuthLDAPGroupAttribute">AuthLDAPGroupAttribute</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'attribut LDAP utilisé pour vérifier l'appartenance d'un
-utilisateur à un groupe.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttribute <em>attribut</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttribute member uniquemember</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier quel attribut LDAP est
-    utilisé pour vérifier l'appartenance d'un utilisateur à un
-    groupe. On peut spécifier plusieurs attributs en répétant cette
-    directive plusieurs fois. Si la directive n'est pas définie,
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
-    <code>member</code> et <code>uniquemember</code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapgroupattributeisdn" id="authldapgroupattributeisdn">Directive</a> <a name="AuthLDAPGroupAttributeIsDN" id="AuthLDAPGroupAttributeIsDN">AuthLDAPGroupAttributeIsDN</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour vérifier son
-appartenance à un groupe</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPGroupAttributeIsDN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPGroupAttributeIsDN on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Lorsqu'elle est définie à <code>on</code>, cette directive
-    indique que c'est le DN de l'utilisateur qui doit être utilisé pour
-    vérifier son appartenance à un groupe. Dans le cas contraire, c'est
-    le nom de l'utilisateur qui sera utilisé. Par exemple, supposons que
-    le client envoie le nom d'utilisateur <code>bjenson</code>, qui
-    correspond au DN LDAP <code>cn=Babs Jenson,o=Example</code>. Si la
-    directive est à <code>on</code>, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> va
-    vérifier si <code>cn=Babs Jenson, o=Example</code> est un membre du
-    groupe. Dans le cas contraire, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>
-    vérifiera si <code>bjenson</code> est un membre du groupe.</p>
+    <p>Alors que la directive <code>Require ldap-attribute</code> se
+    contente d'une simple comparaison d'attributs, la directive
+    <code>Require ldap-filter</code> effectue une opération de recherche
+    dans l'annuaire LDAP en utilisant le filtre de recherche spécifié.
+    Si une simple comparaison d'attributs suffit, l'opération de
+    comparaison effectuée par <code>ldap-attribute</code> sera plus
+    rapide que l'opération de recherche effectuée par
+    <code>ldap-filter</code>, en particulier dans le cas d'un annuaire
+    LDAP de grande taille.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapinitialbindasuser" id="authldapinitialbindasuser">Directive</a> <a name="AuthLDAPInitialBindAsUser" id="AuthLDAPInitialBindAsUser">AuthLDAPInitialBindAsUser</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si le serveur effectue la recherche initiale du
-DN en utilisant le nom propre de l'utilisateur pour l'authentification
-de base
-et non de manière anonyme, ou en utilisant des données d'authentification
-codées en dur pour le serveur</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindAsUser <em>off|on</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindAsUser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
-</table>
-    <p>Par défaut, le serveur convertit le nom d'utilisateur pour
-    l'authentification de base en nom distinctif LDAP (DN) soit de
-    manière anonyme, soit avec un couple nom/mot de passe dédié. Cette
-    directive permet de forcer le serveur à utiliser les véritables nom
-    d'utilisateur et mot de passe fournis par l'utilisateur pour
-    effectuer la recherche initiale du DN.</p>
 
-     <p>Si le nom d'utilisateur ne peut pas s'authentifier directement
-     et nécessite de légères modifications, voir la directive <code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code>.</p>
 
-     <p>Cette directive ne doit être utilisée que si votre serveur LDAP
-     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
-     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-     </p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
 
-     <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
-         On ne peut utiliser cette directive que si ce module
-        effectue une authentification, et n'a aucun effet si ce module
-        n'est utilisé que pour les processus d'autorisation.
-     </div>
+    <ul>
+      <li>
+        Accorde l'autorisation d'accès à tout utilisateur présent dans
+       l'annuaire LDAP, en utilisant son UID pour effectuer la
+       recherche :
+<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com:389/ou=People, o=Example?uid?sub?(objectClass=*)"
+Require valid-user</pre>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindpattern">AuthLDAPInitialBindPattern</a></code></li>
-<li><code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code></li>
-<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapsearchasuser">AuthLDAPSearchAsUser</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapinitialbindpattern" id="authldapinitialbindpattern">Directive</a> <a name="AuthLDAPInitialBindPattern" id="AuthLDAPInitialBindPattern">AuthLDAPInitialBindPattern</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la modification a apporter au nom d'utilisateur
-pour l'authentification de base lors de l'authentification auprès du
-serveur LDAP pour effectuer une recherche de DN</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPInitialBindPattern<em><var>regex</var> <var>substitution</var></em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPInitialBindPattern (.*) $1 (nom de l'utilisateur
-distant utilisé tel quel)</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
-</table>
-    <p>Si la directive <code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code> est
-    définie à <em>ON</em>, le nom utilisateur pour l'authentification de
-    base sera transformé selon l'expression rationnelle
-    <var>regex</var> et l'argument <var>substitution</var> spécifiés.</p>
+      </li>
 
-    <p>L'expression rationnelle est comparée au nom d'utilisateur pour
-    l'authentification de base courant. L'argument
-    <var>substitution</var> peut contenir des références arrières, mais
-    n'effectue aucune autre interpolation de variable.</p>
+      <li>
+        L'exemple suivant est similaire au précédent, mais les champs
+       dont les valeurs par défaut conviennent sont omis. Notez aussi
+       la présence d'un annuaire LDAP redondant :
+<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap1.example.com ldap2.example.com/ou=People, o=Example"
+Require valid-user</pre>
 
-    <p>Cette directive ne doit être utilisée que si votre serveur LDAP
-     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
-     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-     </p>
+      </li>
+
+      <li>
+        Encore un exemple similaire aux précédents, mais cette fois,
+       c'est l'attribut cn qui est utilisé pour la recherche à la place
+       de l'UID. Notez que ceci peut poser problème si plusieurs
+       utilisateurs de l'annuaire partagent le même <code>cn</code>,
+       car une recherche sur le <code>cn</code> <strong>doit</strong>
+       retourner une entrée et une seule. C'est pourquoi cette
+       approche n'est pas recommandée : il est préférable de choisir un
+       attribut de votre annuaire dont l'unicité soit garantie, comme
+       <code>uid</code>.
+<pre class="prettyprint lang-config">AuthLDAPURL "ldap://ldap.example.com/ou=People, o=Example?cn"
+Require valid-user</pre>
 
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
+      </li>
 
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
+      <li>
+        Accorde l'autorisation d'accès à tout utilisateur appartenant au
+       groupe Administrateurs. Les utilisateurs doivent s'authentifier
+       en utilisant leur UID :
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
+Require ldap-group cn=Administrators, o=Example</pre>
 
+      </li>
 
-    <div class="note"><h3>Non disponible dans la cas d'une autorisation seule</h3>
-         On ne peut utiliser cette directive que si ce module
-        effectue une authentification, et n'a aucun effet si ce module
-        n'est utilisé que pour les processus d'autorisation.
-     </div>
-    <div class="note"><h3>Débogage</h3>
-        Le DN de substitution est enregistré dans la variable
-       d'environnement <em>LDAP_BINDASUSER</em>. Si l'expression
-       rationnelle ne convient pas, le nom d'utilisateur est utilisé
-       tel quel.
-    </div>
+      <li>
+      Accorde l'accès à tout utilisateur appartenant au groupe dont le
+      nom correspond au nom d'hôte du serveur virtuel. Dans cet exemple,
+      on utilise une <a href="../expr.html">expression</a> pour
+      construire le filtre.
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid
+Require ldap-group cn=%{SERVER_NAME}, o=Example</pre>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
-<li><code class="directive"><a href="../mod/mod_authnnz_ldap.html#authldapbinddn">AuthLDAPBindDN</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapmaxsubgroupdepth" id="authldapmaxsubgroupdepth">Directive</a> <a name="AuthLDAPMaxSubGroupDepth" id="AuthLDAPMaxSubGroupDepth">AuthLDAPMaxSubGroupDepth</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie la profondeur d'imbrication des sous-groupes
-maximale prise en compte avant l'abandon de la recherche de
-l'utilisateur.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPMaxSubGroupDepth <var>Nombre</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPMaxSubGroupDepth 10</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
-Apache</td></tr>
-</table>
-   <p>Lorsque cette directive est définie à une valeur <code>X</code>
-   non nulle, en combinaison avec l'utilisation de la directive
-   <code>Require ldap-group DN-groupe</code>, les données de connexion
-   fournies seront utilisées pour vérifier l'appartenance de
-   l'utilisateur à l'objet de l'annuaire <code>DN-groupe</code> ou à
-   tout sous-groupe du groupe courant en tenant compte de la profondeur
-   d'imbrication maximale <code>X</code> spécifiée par la directive.</p>
-   <p>Se référer à la section <a href="#reqgroup"><code>Require
-   ldap-group</code></a> pour un exemple plus détaillé.</p>
+      </li>
 
-   <div class="note"><h3>Performances dans le cas des groupes imbriqués</h3>
-   <p>Lorsque les directives
-   <code class="directive">AuthLDAPSubGroupAttribute</code> et
-   <code class="directive">AuthLDAPGroupAttribute</code> se recouvrent (comme
-   c'est le cas par défaut et requis par les schémas LDAP courants), la
-   recherche de sous-groupes au sein de grands groupes peut être très
-   longue. Si vos groupes sont très grands et non imbriqués, définissez
-   la directive <code class="directive">AuthLDAPMaxSubGroupDepth</code> à 0.</p>
-   </div>
+      <li>
+        Pour l'exemple suivant, on suppose que tout utilisateur de chez
+       Example qui dispose d'un bippeur alphanumérique possèdera un
+       attribut LDAP <code>qpagePagerID</code>. Seuls ces utilisateurs
+       (authentifiés via leur UID) se verront accorder l'autorisation
+       d'accès :
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(qpagePagerID=*)
+Require valid-user</pre>
 
+      </li>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapremoteuserattribute" id="authldapremoteuserattribute">Directive</a> <a name="AuthLDAPRemoteUserAttribute" id="AuthLDAPRemoteUserAttribute">AuthLDAPRemoteUserAttribute</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'attribut dont la valeur renvoyée au cours de la
-requête de l'utilisateur sera utilisée pour définir la variable
-d'environnement REMOTE_USER</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserAttribute uid</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Lorsque cette directive est définie, la variable d'environnement
-    <code>REMOTE_USER</code> sera définie à la valeur de l'attribut
-    spécifié. Assurez-vous que cet attribut soit bien inclus dans la
-    liste d'attributs spécifiés dans la définition de AuthLDAPUrl ; dans
-    le cas contraire, cette directive n'aurait aucun effet. Si elle est
-    présente, cette directive l'emporte sur AuthLDAPRemoteUserIsDN. Elle
-    peut s'avérer utile par exemple, si vous souhaitez que les
-    utilisateurs se connectent à un site web en utilisant leur adresse
-    email, alors qu'une application sous-jacente nécessite un nom
-    d'utilisateur comme identifiant.</p>
+      <li>
+        <p>L'exemple suivant illustre la puissance des filtres pour
+       effectuer des requêtes complexes. Sans les filtres, il aurait
+       été nécessaire de créer un nouveau groupe LDAP et de s'assurer
+       de la synchronisation des membres du groupe avec les
+       utilisateurs possédant un bippeur. Tout devient limpide avec les
+       filtres. Nous avons pour but d'accorder l'autorisation d'accès à
+       tout utilisateur disposant d'un bippeur ainsi qu'à Joe Manager
+       qui ne possède pas de bippeur, mais doit tout de même pouvoir
+       accéder à la ressource :</p>
+<pre class="prettyprint lang-config">AuthLDAPURL ldap://ldap.example.com/o=Example?uid??(|(qpagePagerID=*)(uid=jmanager))
+Require valid-user</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapremoteuserisdn" id="authldapremoteuserisdn">Directive</a> <a name="AuthLDAPRemoteUserIsDN" id="AuthLDAPRemoteUserIsDN">AuthLDAPRemoteUserIsDN</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise le DN de l'utilisateur pour définir la variable
-d'environnement REMOTE_USER</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPRemoteUserIsDN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPRemoteUserIsDN off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Lorsque cette directive est à on, la variable d'environnement
-    <code>REMOTE_USER</code> sera définie avec la valeur du DN complet
-    de l'utilisateur authentifié, et non plus avec simplement le nom
-    d'utilisateur fourni par le client. Elle est définie à off par
-    défaut.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapsearchasuser" id="authldapsearchasuser">Directive</a> <a name="AuthLDAPSearchAsUser" id="AuthLDAPSearchAsUser">AuthLDAPSearchAsUser</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise les données d'authentification de l'utilisateur
-pour la recherche des autorisations</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSearchAsUser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSearchAsUser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.6</td></tr>
-</table>
-    <p>Lorsque cette directive est définie, et si
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> a authentifié l'utilisateur, les
-    recherches LDAP pour définir les autorisations utilisent le nom
-    distinctif (DN) trouvé et le mot de passe pour l'authentification de
-    base HTTP de l'utilisateur authentifié, au lieu des données
-    d'authentification configurées au niveau du serveur.</p>
+        <p>Ce dernier exemple peut sembler confus au premier abord ; en
+       fait, il permet de mieux comprendre à quoi doit ressembler le
+       filtre en fonction de l'utilisateur qui se connecte. Si Fred
+       User se connecte en tant que <code>fuser</code>, le filtre devra
+       ressembler à :</p>
 
-    <p>Les vérifications d'autorisation <em>ldap-filter</em> et
-    <em>ldap-dn</em> utilisent des recherches.</p>
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
 
-    <p>Cette directive n'a d'effet sur les comparaisons effectuées au
-    cours des traitements de groupe imbriqués, et lorsque la directive
-    <code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code>
-    est aussi activée.</p>
+        <p>Un recherche avec le filtre ci-dessus ne retournera un
+       résultat positif que si <em>fuser</em> dispose d'un bippeur. Si
+       Joe Manager se connecte en tant que <em>jmanager</em>, le filtre
+       devra ressembler à :</p>
 
-     <p>Cette directive ne doit être utilisée que si votre serveur LDAP
-     n'autorise pas les recherches anonymes, ou si vous ne pouvez pas
-     utiliser de nom d'utilisateur dédié via la directive <code class="directive"><a href="#authldapbinddn">AuthLDAPBindDN</a></code>.
-     </p>
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
 
+        <p>Un recherche avec le filtre ci-dessus retournera un
+       résultat positif que <em>jmanager</em> dispose d'un
+       bippeur ou non</p>
+      </li>
+    </ul>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingtls" id="usingtls">Utilisation de TLS</a></h2>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#authldapinitialbindasuser">AuthLDAPInitialBindAsUser</a></code></li>
-<li><code class="directive"><a href="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapsubgroupattribute" id="authldapsubgroupattribute">Directive</a> <a name="AuthLDAPSubGroupAttribute" id="AuthLDAPSubGroupAttribute">AuthLDAPSubGroupAttribute</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie les noms d'attribut, un par directive, utilisés
-pour différencier les membres du groupe courant qui sont eux-mêmes des
-groupes.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupAttribute <em>attribut</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubgroupAttribute member uniquemember</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
-Apache</td></tr>
-</table>
-    <p>Un objet groupe LDAP peut contenir des membres qui sont des
-    utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
-    sous-groupes ou groupes imbriqués). La directive
-    <code>AuthLDAPSubGroupAttribute</code> spécifie l'attribut utilisé
-    pour identifier les groupes, alors que la directive
-    <code>AuthLDAPGroupAttribute</code> spécifie l'attribut utilisé
-    pour identifier les utilisateurs. On peut spécifier plusieurs
-    attributs en répétant la directive plusieurs fois. Si elle n'est pas
-    définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
-    <code>member</code> et <code>uniqueMember</code>.</p>
+    <p>Pour l'utilisation de TLS, voir les directives du module
+    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> et <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapsubgroupclass" id="authldapsubgroupclass">Directive</a> <a name="AuthLDAPSubGroupClass" id="AuthLDAPSubGroupClass">AuthLDAPSubGroupClass</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie quelles valeurs d'objectClass LDAP identifient les
-objets de l'annuaire qui sont des groupes au cours du traitement des
-sous-groupes.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPSubGroupClass <em>ObjectClass-LDAP</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthLDAPSubGroupClass groupOfNames groupOfUniqueNames</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.0 du serveur HTTP
-Apache</td></tr>
-</table>
-    <p>Un objet groupe LDAP peut contenir des membres qui sont des
-    utilisateurs et des membres qui sont eux-mêmes des groupes (appelés
-    sous-groupes ou groupes imbriqués). La directive
-    <code>AuthLDAPSubGroupAttribute</code> permet d'identifier les
-    membres qui sont des sous-groupes du groupe courant (à l'opposé des
-    membres utilisateurs). La directive
-    <code>AuthLDAPSubGroupClass</code> permet de spécifier les valeurs
-    d'objectClass LDAP utilisées pour vérifier que certains membres sont
-    en fait des objets groupe. Les sous-groupes ainsi identifiés peuvent
-    alors faire l'objet d'une recherche d'autres membres utilisateurs ou
-    sous-groupes. On peut spécifier plusieurs attributs en répétant
-    cette directive plusieurs fois. Si cette directive n'est pas
-    définie, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> utilise les attributs
-    <code>groupOfNames</code> et <code>groupOfUniqueNames</code>.</p>
+    <p>Un second paramètre optionnel peut être ajouté à la directive
+    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> pour
+    remplacer le type de connexion par défaut défini par la directive
+    <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>. Ceci
+    permettra de promouvoir la connexion établie via une URL du type
+    <em>ldap://</em> au statut de connection sécurisée sur le même
+    port.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingssl" id="usingssl">Utilisation de SSL</a></h2>
+
+    <p>Pour l'utilisation de SSL, voir les directives du module
+    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedclientcert">LDAPTrustedClientCert</a></code>, <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedglobalcert">LDAPTrustedGlobalCert</a></code> et <code class="directive"><a href="../mod/mod_ldap.html#ldaptrustedmode">LDAPTrustedMode</a></code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authldapurl" id="authldapurl">Directive</a> <a name="AuthLDAPUrl" id="AuthLDAPUrl">AuthLDAPUrl</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'URL permettant de spécifier les paramètres de la
-recherche LDAP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthLDAPUrl <em>url [NONE|SSL|TLS|STARTTLS]</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authnz_ldap</td></tr>
-</table>
-    <p>Une URL conforme à la RFC 2255 qui permet de spécifier les
-    paramètres à utiliser pour la recherche dans l'annuaire LDAP. La
-    syntaxe de l'URL est :</p>
-<div class="example"><p><code>ldap://hôte:port/DN-de-base?attribut?portée?filtre</code></p></div>
-    <p>Si vous souhaitez mettre à la disposition d'Apache plusieurs URLs
-    LDAP, la syntaxe sera :</p>
-<pre class="prettyprint lang-config">AuthLDAPUrl "ldap://ldap1.example.com ldap2.example.com/dc=..."</pre>
+    <p>Pour spécifier un serveur LDAP sécurisé, utilisez
+    <em>ldaps://</em> au lieu de
+    <em>ldap://</em> dans la directive <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="exposed" id="exposed">Mise à disposition des informations de
+connexion</a></h2>
 
-<p><em><strong>Mise en garde : </strong>Si vous spécifiez plusieurs
-serveurs, vous devez en entourer la liste avec des guillemets ; dans le
-cas contraire, vous générerez une erreur : "AuthLDAPURL takes one
-argument, URL to define LDAP connection..".</em> Vous pouvez bien
-entendu ajouter des paramètres de recherche à chacun des serveurs
-spécifiés.</p>
+    <p>Au cours du processus d'<em>authentification</em>, les attributs LDAP
+    spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
+    dans des variables d'environnement préfixées par la chaîne
+    "AUTHENTICATE_".</p>
 
-<dl>
-<dt>ldap</dt>
+    <p>Au cours du processus d'<em>autorisation</em>, les attributs LDAP
+    spécifiés par la directive <code class="directive"><a href="#authldapurl">authldapurl</a></code> sont enregistrés
+    dans des variables d'environnement préfixées par la chaîne
+    "AUTHORIZE_".</p>
 
-        <dd>Pour ldap non sécurisé, utilisez la chaîne
-       <code>ldap</code>. Pour ldap sécurisé, utilisez à la place la
-       chaîne <code>ldaps</code>. LDAP sécurisé n'est disponible que si
-       Apache a été lié avec une bibliothèque LDAP supportant SSL.</dd>
+    <p>Si les champs attribut contiennent le nom, le CN et le numéro de
+    téléphone d'un utilisateur, un programme CGI pourra accéder à ces
+    informations sans devoir effectuer une autre requête LDAP pour
+    les extraire de l'annuaire.</p>
 
-<dt>hôte:port</dt>
+    <p>Ceci a pour effet de simplifier considérablement le code et la
+    configuration nécessaire de certaines applications web.</p>
 
-        <dd>
-          <p>Il s'agit du nom/port du serveur ldap
-         (dont la valeur par défaut est
-         <code>localhost:389</code> pour <code>ldap</code>, et
-         <code>localhost:636</code> pour <code>ldaps</code>). Pour
-         spécifier plusieurs serveurs LDAP redondants, indiquez
-         simplement leur liste en les séparant par des espaces.
-         <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera alors de se connecter
-         à chacun des serveurs jusqu'à ce qu'il parvienne à se
-         connecter avec succès. Notez qu'en cas de multiples serveurs
-         LDAP, l'ensemble de l'URL LDAP doit être entourée de
-         guillemets.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
+Directory</a></h2>
 
-          <p>lorsqu'une connection a été établie avec un serveur, elle
-         reste active pendant toute la durée de vie du processus
-         <code class="program"><a href="../programs/httpd.html">httpd</a></code>, ou jusqu'à ce que le serveur LDAP
-         cesse de fonctionner.</p>
+    <p>Active Directory peut supporter plusieurs domaines à la fois.
+    Pour faire la distinction entre les utilisateurs de plusieurs
+    domaines, on peut ajouter à l'entrée de l'utilisateur dans
+    l'annuaire un identifiant appelé Nom
+    Principal d'Utilisateur (User Principle Name ou UPN). Cet UPN se
+    compose en général du nom de compte de l'utilisateur, suivi du nom
+    du domaine considéré, par exemple <em>untel@nz.example.com</em>.</p>
 
-          <p>Si le serveur LDAP cesse de fonctionner, et ainsi
-         interrompt une
-         connexion existante, <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> tentera
-         de se reconnecter en commençant par le premier serveur de la
-         liste, et ainsi de suite avec les serveurs redondants
-         suivants. Notez que ce processus n'a rien à voir avec une
-         véritable recherche de type round-robin.</p>
-        </dd>
+    <p>Vous voudrez probablement configurer le module
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> afin de pouvoir authentifier les
+    utilisateurs de n'importe quel domaine de la forêt Active Directory.
+    Ainsi, <em>untel@nz.example.com</em> et
+    <em>untel@au.example.com</em> pourront être authentifiés en une
+    seule fois par la même requête.</p>
 
-<dt>DN-de-base</dt>
-        <dd>Le DN de la branche de l'annuaire à partir de laquelle
-       toutes les recherches seront lancées. Il doit au moins
-       correspondre à la racine de votre annuaire, mais vous pouvez
-       aussi indiquer une branche plus spécifique.</dd>
+    <p>Pour y parvenir, on utilise le concept de Catalogue Global
+    d'Active Directory. Ce Catalogue Global est une copie en lecture
+    seule des attributs sélectionnés de tous les serveurs de la forêt
+    Active Directory. Une requête vers le
+    Catalogue Global permet donc d'atteindre tous les domaines en une
+    seule fois, sans avoir à se connecter aux différents serveurs, via
+    des liaisons dont certaines peuvent être lentes.</p>
 
-<dt>attribut</dt>
+    <p>Lorsqu'il est activé, la Catalogue Global est un serveur
+    d'annuaire indépendant accessible sur le port 3268 (3269 pour SSL).
+    Pour rechercher un utilisateur, effectuez une recherche sur
+    l'attribut <em>userPrincipalName</em>, avec une base de recherche
+    vide, comme suit :</p>
 
-        <dd>Il s'agit de l'attribut à utiliser pour la recherche.
-       Bien que la RFC
-       2255 autorise une liste d'attributs séparés par des virgules,
-       seul le premier sera retenu, sans tenir compte des autres
-       attributs fournis. Si aucun attribut n'est fourni, l'attribut
-       par défaut est <code>uid</code>. Il est judicieux de choisir un
-       attribut dont la valeur sera unique parmi toutes les entrées de
-       la branche de l'annuaire que vous aurez définie. Tous les
-       attributs spécifiés seront enregistrés dans des variables
-       d'environnement avec le préfixe AUTHENTICATE_, afin de pouvoir
-       être utilisés par d'autres modules.</dd>
+<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
+AuthLDAPBindPassword password
+AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</pre>
 
-<dt>portée</dt>
 
-        <dd>Il s'agit de la portée de la recherche. Elle peut prendre
-       les valeurs <code>one</code> ou <code>sub</code>. Notez que la
-       RFC 2255 supporte aussi une portée de valeur <code>base</code>,
-       mais cette dernière n'est pas supportée par le module. Si la
-       portée n'est pas définie, ou si elle est définie à
-       <code>base</code>, c'est la valeur de portée par défaut
-       <code>sub</code> qui sera utilisée.</dd>
+    <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
+    la forme<em>untel@nz.example.com</em>.</p>
 
-<dt>filtre</dt>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="frontpage" id="frontpage">Utilisation de Microsoft
+    FrontPage avec mod_authnz_ldap</a></h2>
 
-        <dd>Il s'agit d'un filtre de recherche LDAP valide. Si aucun
-       filtre n'est spécifié, le filtre par défaut
-       <code>(objectClass=*)</code> sera utilisé, ce qui corrspond à
-       une recherche de tous les types d'objets de l'arborescence. La
-       taille des filtres est limitée à environ 8000 caractères (valeur
-       de la macro <code>MAX_STRING_LEN</code> dans le code source
-       d'Apache), ce qui s'avère plus que suffisant pour la plupart des
-       applications. Depuis la version 2.4.10, il est possible
-       d'utiliser le paramètre "none" pour spécifier qu'aucun filtre
-       n'est activé ; ce paramètre est obligatoire avec certains
-       serveurs LDAP primitifs.</dd>
-</dl>
+    <p>Normalement, FrontPage utilise des fichiers utilisateur/groupe
+    spécifiques à FrontPage-web (c'est à dire les modules
+    <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> et
+    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>) pour effectuer toute
+    l'authentification. Malheureusement, il ne suffit pas de modifier
+    l'authentification LDAP en ajoutant les directives appropriées, car
+    ceci corromprait les formulaires de <em>Permissions</em> dans le
+    client FrontPage, qui sont censés modifier les fichiers
+    d'autorisation standards au format texte.</p>
 
-    <p>Pour une recherche, les attribut, filtre et nom d'utilisateur
-    fournis par le client HTTP sont combinés pour créer un filtre de
-    recherche du style :
-    <code>(&amp;(<em>filtre</em>)(<em>attribut</em>
-    =<em>nom-utilisateur</em>))</code>.</p>
+    <p>Lorsqu'un site web FrontPage a été créé, lui adjoindre
+    l'authentification LDAP consiste à ajouter les directives suivantes
+    à <em>chaque</em> fichier <code>.htaccess</code> qui sera créé dans
+    le site web :</p>
+<pre class="prettyprint lang-config">AuthLDAPURL       "the url"
+AuthGroupFile     mygroupfile
+Require group     mygroupfile</pre>
 
-    <p>Par exemple, considérons l'URL
-    <code>ldap://ldap.example.com/o=Example?cn?sub?(posixid=*)</code>.
-    Lorsqu'un client tentera de se connecter en utilisant le nom
-    d'utilisateur <code>Babs Jenson</code>, le filtre de recherche sera
-    : <code>(&amp;(posixid=*)(cn=Babs Jenson))</code>.</p>
 
-    <p>On peut encore ajouter un paramètre optionnel pour permettre à
-    l'URL LDAP de surcharger le type de connexion. Ce paramètre peut
-    prendre l'une des valeurs suivantes :</p>
+<h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
 
-<dl>
-    <dt>NONE</dt>
-        <dd>Établit une connexion non sécurisée sur le port LDAP par
-       défaut, ce qui est équivalent à <code>ldap://</code> sur le port
-       389.</dd>
-    <dt>SSL</dt>
-        <dd>Établit une connexion sécurisée sur le port LDAP sécurisé
-       par défaut, ce qui est équivalent à <code>ldaps://</code>.</dd>
-    <dt>TLS | STARTTLS</dt>
-        <dd>Établit une connexion sécurisée par élévation de niveau sur
-       le port LDAP par défaut. Cette connexion sera initialisée sur le
-       port 389 par défaut, puis élevée à un niveau de connexion
-       sécurisée sur le même port.</dd>
-</dl>
+    <p>FrontPage restreint l'accès à un site web en ajoutant la
+    directive <code>Require valid-user</code> aux fichiers
+    <code>.htaccess</code>. La directive <code>Require valid-user</code>
+    permettra l'accès à tout utilisateur valide <em>du point de vue
+    LDAP</em>. Cela signifie que tout utilisateur possédant une entrée
+    dans l'annuaire LDAP sera considéré comme valide, alors que
+    FrontPage ne considère comme valides que les utilisateurs
+    enregistrés dans le fichier des utilisateurs local. En remplaçant
+    l'autorisation par groupe LDAP par une autorisation par fichier de
+    groupe, Apache sera en mesure de consulter le fichier des
+    utilisateurs local (géré par FrontPage) - au lieu de l'annuaire LDAP
+    - lors du processus d'autorisation des utilisateurs.</p>
 
-    <p>Voir plus haut pour des exemples d'URLs définies par la directive
-    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
+    <p>Une fois les directives ajoutées selon ce qui précède, les
+    utilisateurs FrontPage pourront effectuer toutes les opérations de
+    gestion à partir du client FrontPage.</p>
+
+
+<h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
+
+    <ul>
+      <li>Lors du choix de l'URL LDAP, l'attribut à utiliser pour
+      l'authentification doit aussi être valide pour le fichier des
+      utilisateurs de <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>. A cette fin,
+      l'UID est idéal.</li>
+
+      <li>Lorsqu'ils ajoutent des utilisateurs via FrontPage, les
+      administrateurs de FrontPage doivent choisir des noms
+      d'utilisateurs qui existent déjà dans l'annuaire LDAP (pour des
+      raisons évidentes). De même, le mot de passe que l'administrateur
+      entre dans le formulaire est ignoré, car pour l'authentification,
+      Apache utilise le mot de passe de l'annuaire LDAP, et non le mot
+      de passe enregistré dans le fichier des utilisateurs, ce qui peut
+      semer la confusion parmi les administrateurs web.</li>
+
+      
+      <li>Pour supporter FrontPage, Apache doit être compilé avec
+      <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>, <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code>
+      et <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code>. Ceci est dû au fait
+      qu'Apache doit utiliser le fichier de groupes de
+      <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> pour déterminer le niveau
+      d'accès d'un utilisateur au site web FrontPage.</li>
+
+      <li>Les directives doivent être placées dans les fichiers
+      <code>.htaccess</code>. Elles ne fonctionneront pas si vous les
+      placez dans une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>. Ceci est dû au fait que pour savoir
+      où se trouve la liste des utilisateurs valides,
+      <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> doit être en mesure d'atteindre
+      la directive <code class="directive"><a href="../mod/mod_authz_groupfile.html#authgroupfile">AuthGroupFile</a></code> qui se trouve
+      dans les fichiers <code>.htaccess</code> de FrontPage. Si les directives
+      de <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sont pas situées dans le
+      même fichier <code>.htaccess</code> que les directives FrontPage,
+      la configuration ne fonctionnera pas, car
+      <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code> ne sera jamais en mesure de
+      traiter le fichier <code>.htaccess</code>, et par conséquent ne
+      pourra jamais trouver le fichier des utilisateurs géré par
+      FrontPage.</li>
+    </ul>
 
 </div>
 </div>
index 69f6fcfe2f75161d09c86926981bb0dd41cbae4a..3f06a422083fc9250bfe329560a27ca84cc31b6b 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">The Require Directives</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="authzalias" id="authzalias">Creating Authorization Provider Aliases</a></h2>
-
-    <p>Extended authorization providers can be created within the configuration
-    file and assigned an alias name.  The alias providers can then be referenced
-    through the <code class="directive"><a href="#require">Require</a></code> directive
-    in the same way as a base authorization provider.  Besides the ability to
-    create and alias an extended provider, it also allows the same extended
-    authorization provider to be referenced by multiple locations.
-    </p>
-
-    <h3><a name="example" id="example">Example</a></h3>
-        <p>The example below creates two different ldap authorization provider
-        aliases based on the ldap-group authorization provider.  This example
-        allows a single authorization location to check group membership within
-        multiple ldap hosts:
-        </p>
-
-        <pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx&gt;
-    AuthLDAPBindDN cn=youruser,o=ctx
-    AuthLDAPBindPassword yourpassword
-    AuthLDAPURL ldap://ldap.host/o=ctx
-&lt;/AuthzProviderAlias&gt;
-
-&lt;AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev&gt;
-    AuthLDAPBindDN cn=yourotheruser,o=dev
-    AuthLDAPBindPassword yourotherpassword
-    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
-&lt;/AuthzProviderAlias&gt;
-
-Alias "/secure" "/webpages/secure"
-&lt;Directory "/webpages/secure"&gt;
-    Require all granted
-    
-    AuthBasicProvider file
-    
-    AuthType Basic
-    AuthName LDAP_Protected_Place
-    
-    #implied OR operation
-    Require ldap-group-alias1
-    Require ldap-group-alias2
-&lt;/Directory&gt;</pre>
-
-    
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logic" id="logic">Authorization Containers</a></h2>
-
-    <p>The authorization container directives
-    <code class="directive"><a href="#requireall">&lt;RequireAll&gt;</a></code>,
-    <code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code>
-    and
-    <code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
-    may be combined with each other and with the
-    <code class="directive"><a href="#require">Require</a></code>
-    directive to express complex authorization logic.</p>
-
-    <p>The example below expresses the following authorization logic.
-    In order to access the resource, the user must either be the
-    <code>superadmin</code> user, or belong to both the
-    <code>admins</code> group and the <code>Administrators</code> LDAP
-    group and either belong to the <code>sales</code> group or
-    have the LDAP <code>dept</code> attribute <code>sales</code>.
-    Furthermore, in order to access the resource, the user must
-    not belong to either the <code>temps</code> group or the
-    LDAP group <code>Temporary Employees</code>.</p>
-
-    <pre class="prettyprint lang-config">&lt;Directory "/www/mydocs"&gt;
-    &lt;RequireAll&gt;
-        &lt;RequireAny&gt;
-            Require user superadmin
-            &lt;RequireAll&gt;
-                Require group admins
-                Require ldap-group cn=Administrators,o=Airius
-                &lt;RequireAny&gt;
-                    Require group sales
-                    Require ldap-attribute dept="sales"
-                &lt;/RequireAny&gt;
-            &lt;/RequireAll&gt;
-        &lt;/RequireAny&gt;
-        &lt;RequireNone&gt;
-            Require group temps
-            Require ldap-group cn=Temporary Employees,o=Airius
-        &lt;/RequireNone&gt;
-    &lt;/RequireAll&gt;
-&lt;/Directory&gt;</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
-
-  <p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides some generic authorization
-  providers which can be used with the
-  <code class="directive"><a href="#require">Require</a></code> directive.</p>
-
-  <h3><a name="reqenv" id="reqenv">Require env</a></h3>
-
-    <p>The <code>env</code> provider allows access to the server
-    to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Require
-    env <var>env-variable</var></code> is specified, then the request is
-    allowed access if the environment variable <var>env-variable</var>
-    exists. The server provides the ability to set environment
-    variables in a flexible way based on characteristics of the client
-    request using the directives provided by
-    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
-    used to allow access based on such factors as the clients
-    <code>User-Agent</code> (browser type), <code>Referer</code>, or
-    other HTTP request header fields.</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
-&lt;Directory "/docroot"&gt;
-    Require env let_me_in
-&lt;/Directory&gt;</pre>
-
-
-    <p>In this case, browsers with a user-agent string beginning
-    with <code>KnockKnock/2.0</code> will be allowed access, and all
-    others will be denied.</p>
-
-    <p>When the server looks up a path via an internal 
-    <a class="glossarylink" href="../glossary.html#subrequest" title="see glossary">subrequest</a> such as looking 
-    for a <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> 
-    or generating a directory listing with <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>,
-    per-request environment variables are <em>not</em> inherited in the 
-    subrequest. Additionally, 
-    <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
-    are not separately evaluated in the subrequest due to the API phases
-    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</p>
-
-  
-
-  <h3><a name="reqall" id="reqall">Require all</a></h3>
-
-    <p>The <code>all</code> provider mimics the functionality that
-    was previously provided by the 'Allow from all' and 'Deny from all'
-    directives.  This provider can take one of two arguments which are
-    'granted' or 'denied'.  The following examples will grant or deny
-    access to all requests.</p>
-
-    <pre class="prettyprint lang-config">Require all granted</pre>
-
-
-    <pre class="prettyprint lang-config">Require all denied</pre>
-
-
-  
-
-  <h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
-
-    <p>The <code>method</code> provider allows using the HTTP method in
-    authorization decisions. The GET and HEAD methods are treated as
-    equivalent. The TRACE method is not available to this provider,
-    use <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code> instead.</p>
-
-    <p>The following example will only allow GET, HEAD, POST, and OPTIONS
-    requests:</p>
-
-    <pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
-
-
-    <p>The following example will allow GET, HEAD, POST, and OPTIONS
-    requests without authentication, and require a valid user for all other
-    methods:</p>
-
-    <pre class="prettyprint lang-config">&lt;RequireAny&gt;
-     Require method GET POST OPTIONS
-     Require valid-user
-&lt;/RequireAny&gt;</pre>
-
-
-  
-
-  <h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
-
-  <p>The <code>expr</code> provider allows basing authorization
-  decisions on arbitrary expressions.</p>
-
-    <pre class="prettyprint lang-config">Require expr "%{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17"</pre>
-
-
-    <pre class="prettyprint lang-config">&lt;RequireAll&gt;
-    Require expr "!(%{QUERY_STRING} =~ /secret/)"
-    Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" 
-&lt;/RequireAll&gt;</pre>
-
-
-    <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
-
-
-  <p>The syntax is described in the <a href="../expr.html">ap_expr</a>
-  documentation.</p>
-
-  <p>Normally, the expression is evaluated before authentication. However, if
-  the expression returns false and references the variable
-  <code>%{REMOTE_USER}</code>, authentication will be performed and
-  the expression will be re-evaluated.</p>
-
-  
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthMerging" id="AuthMerging">AuthMerging</a> <a name="authmerging" id="authmerging">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls the manner in which each configuration section's
@@ -631,6 +427,210 @@ must succeed for the enclosing directive to not fail.</td></tr>
 <li><a href="../howto/auth.html">Authentication, Authorization,
     and Access Control</a></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="authzalias" id="authzalias">Creating Authorization Provider Aliases</a></h2>
+
+    <p>Extended authorization providers can be created within the configuration
+    file and assigned an alias name.  The alias providers can then be referenced
+    through the <code class="directive"><a href="#require">Require</a></code> directive
+    in the same way as a base authorization provider.  Besides the ability to
+    create and alias an extended provider, it also allows the same extended
+    authorization provider to be referenced by multiple locations.
+    </p>
+
+    <h3><a name="example" id="example">Example</a></h3>
+        <p>The example below creates two different ldap authorization provider
+        aliases based on the ldap-group authorization provider.  This example
+        allows a single authorization location to check group membership within
+        multiple ldap hosts:
+        </p>
+
+        <pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx&gt;
+    AuthLDAPBindDN cn=youruser,o=ctx
+    AuthLDAPBindPassword yourpassword
+    AuthLDAPURL ldap://ldap.host/o=ctx
+&lt;/AuthzProviderAlias&gt;
+
+&lt;AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev&gt;
+    AuthLDAPBindDN cn=yourotheruser,o=dev
+    AuthLDAPBindPassword yourotherpassword
+    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
+&lt;/AuthzProviderAlias&gt;
+
+Alias "/secure" "/webpages/secure"
+&lt;Directory "/webpages/secure"&gt;
+    Require all granted
+    
+    AuthBasicProvider file
+    
+    AuthType Basic
+    AuthName LDAP_Protected_Place
+    
+    #implied OR operation
+    Require ldap-group-alias1
+    Require ldap-group-alias2
+&lt;/Directory&gt;</pre>
+
+    
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logic" id="logic">Authorization Containers</a></h2>
+
+    <p>The authorization container directives
+    <code class="directive"><a href="#requireall">&lt;RequireAll&gt;</a></code>,
+    <code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code>
+    and
+    <code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
+    may be combined with each other and with the
+    <code class="directive"><a href="#require">Require</a></code>
+    directive to express complex authorization logic.</p>
+
+    <p>The example below expresses the following authorization logic.
+    In order to access the resource, the user must either be the
+    <code>superadmin</code> user, or belong to both the
+    <code>admins</code> group and the <code>Administrators</code> LDAP
+    group and either belong to the <code>sales</code> group or
+    have the LDAP <code>dept</code> attribute <code>sales</code>.
+    Furthermore, in order to access the resource, the user must
+    not belong to either the <code>temps</code> group or the
+    LDAP group <code>Temporary Employees</code>.</p>
+
+    <pre class="prettyprint lang-config">&lt;Directory "/www/mydocs"&gt;
+    &lt;RequireAll&gt;
+        &lt;RequireAny&gt;
+            Require user superadmin
+            &lt;RequireAll&gt;
+                Require group admins
+                Require ldap-group cn=Administrators,o=Airius
+                &lt;RequireAny&gt;
+                    Require group sales
+                    Require ldap-attribute dept="sales"
+                &lt;/RequireAny&gt;
+            &lt;/RequireAll&gt;
+        &lt;/RequireAny&gt;
+        &lt;RequireNone&gt;
+            Require group temps
+            Require ldap-group cn=Temporary Employees,o=Airius
+        &lt;/RequireNone&gt;
+    &lt;/RequireAll&gt;
+&lt;/Directory&gt;</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
+
+  <p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides some generic authorization
+  providers which can be used with the
+  <code class="directive"><a href="#require">Require</a></code> directive.</p>
+
+  <h3><a name="reqenv" id="reqenv">Require env</a></h3>
+
+    <p>The <code>env</code> provider allows access to the server
+    to be controlled based on the existence of an <a href="../env.html">environment variable</a>. When <code>Require
+    env <var>env-variable</var></code> is specified, then the request is
+    allowed access if the environment variable <var>env-variable</var>
+    exists. The server provides the ability to set environment
+    variables in a flexible way based on characteristics of the client
+    request using the directives provided by
+    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Therefore, this directive can be
+    used to allow access based on such factors as the clients
+    <code>User-Agent</code> (browser type), <code>Referer</code>, or
+    other HTTP request header fields.</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
+&lt;Directory "/docroot"&gt;
+    Require env let_me_in
+&lt;/Directory&gt;</pre>
+
+
+    <p>In this case, browsers with a user-agent string beginning
+    with <code>KnockKnock/2.0</code> will be allowed access, and all
+    others will be denied.</p>
+
+    <p>When the server looks up a path via an internal 
+    <a class="glossarylink" href="../glossary.html#subrequest" title="see glossary">subrequest</a> such as looking 
+    for a <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code> 
+    or generating a directory listing with <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>,
+    per-request environment variables are <em>not</em> inherited in the 
+    subrequest. Additionally, 
+    <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> directives
+    are not separately evaluated in the subrequest due to the API phases
+    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> takes action in.</p>
+
+  
+
+  <h3><a name="reqall" id="reqall">Require all</a></h3>
+
+    <p>The <code>all</code> provider mimics the functionality that
+    was previously provided by the 'Allow from all' and 'Deny from all'
+    directives.  This provider can take one of two arguments which are
+    'granted' or 'denied'.  The following examples will grant or deny
+    access to all requests.</p>
+
+    <pre class="prettyprint lang-config">Require all granted</pre>
+
+
+    <pre class="prettyprint lang-config">Require all denied</pre>
+
+
+  
+
+  <h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
+
+    <p>The <code>method</code> provider allows using the HTTP method in
+    authorization decisions. The GET and HEAD methods are treated as
+    equivalent. The TRACE method is not available to this provider,
+    use <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code> instead.</p>
+
+    <p>The following example will only allow GET, HEAD, POST, and OPTIONS
+    requests:</p>
+
+    <pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
+
+
+    <p>The following example will allow GET, HEAD, POST, and OPTIONS
+    requests without authentication, and require a valid user for all other
+    methods:</p>
+
+    <pre class="prettyprint lang-config">&lt;RequireAny&gt;
+     Require method GET POST OPTIONS
+     Require valid-user
+&lt;/RequireAny&gt;</pre>
+
+
+  
+
+  <h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
+
+  <p>The <code>expr</code> provider allows basing authorization
+  decisions on arbitrary expressions.</p>
+
+    <pre class="prettyprint lang-config">Require expr "%{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17"</pre>
+
+
+    <pre class="prettyprint lang-config">&lt;RequireAll&gt;
+    Require expr "!(%{QUERY_STRING} =~ /secret/)"
+    Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" 
+&lt;/RequireAll&gt;</pre>
+
+
+    <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
+
+
+  <p>The syntax is described in the <a href="../expr.html">ap_expr</a>
+  documentation.</p>
+
+  <p>Normally, the expression is evaluated before authentication. However, if
+  the expression returns false and references the variable
+  <code>%{REMOTE_USER}</code>, authentication will be performed and
+  the expression will be re-evaluated.</p>
+
+  
+
+
 </div>
 </div>
 <div class="bottomlang">
index a7fb4aa85be3fb44d2a0228dc6fc91c5ad1d4ab1..0b040c26b9ba0e2a4950ee64892c1ec76666e8a7 100644 (file)
@@ -65,208 +65,6 @@ d'autorisation</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives Require</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="authzalias" id="authzalias">Création des alias du fournisseur
-d'autorisation</a></h2>
-
-    <p>Il est possible de créer des fournisseurs d'autorisation étendus
-    dans le fichier de configuration et de leur assigner un nom d'alias.
-    On peut ensuite utiliser ces fournisseurs aliasés dans une
-    directive <code class="directive"><a href="#require">Require</a></code> de
-    la même manière qu'on le ferait pour des fournisseurs d'autorisation
-    de base. En plus de la possibilité de créer et d'aliaser un
-    fournisseur étendu, le même fournisseur d'autorisation étendu peut
-    être référencé par plusieurs localisations.
-    </p>
-
-    <h3><a name="example" id="example">Exemple</a></h3>
-        <p>Dans l'exemple suivant, on crée deux alias de fournisseur
-       d'autorisation ldap différents basés sur le fournisseur
-       d'autorisation ldap-group. Il est ainsi possible pour un seul
-       répertoire de vérifier l'appartenance à un groupe dans plusieurs
-       serveurs ldap :
-        </p>
-
-        <pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx&gt;
-    AuthLDAPBindDN cn=youruser,o=ctx
-    AuthLDAPBindPassword yourpassword
-    AuthLDAPURL ldap://ldap.host/o=ctx
-&lt;/AuthzProviderAlias&gt;
-
-&lt;AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev&gt;
-    AuthLDAPBindDN cn=yourotheruser,o=dev
-    AuthLDAPBindPassword yourotherpassword
-    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
-&lt;/AuthzProviderAlias&gt;
-
-Alias /secure /webpages/secure
-&lt;Directory /webpages/secure&gt;
-    Require all granted
-    
-    AuthBasicProvider file
-    
-    AuthType Basic
-    AuthName LDAP_Protected_Place
-    
-    #implied OR operation
-    Require ldap-group-alias1
-    Require ldap-group-alias2
-&lt;/Directory&gt;</pre>
-
-    
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logic" id="logic">Conteneurs d'autorisation</a></h2>
-
-    <p>Les directives de conteneur d'autorisation <code class="directive"><a href="#requireall">&lt;RequireAll&gt;</a></code>,
-    <code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code> et <code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
-    peuvent être combinées entre elles et avec la directive <code class="directive"><a href="#require">Require</a></code> pour confectionner une
-    logique d'autorisation complexe.</p>
-
-    <p>L'exemple ci-dessous illustre la logique d'autorisation suivante.
-    Pour pouvoir accéder à la ressource, l'utilisateur doit être
-    l'utilisateur <code>superadmin</code>, ou appartenir aux deux
-    groupes LDAP <code>admins</code> et <code>Administrateurs</code> et
-    soit appartenir au groupe <code>ventes</code> ou avoir
-    <code>ventes</code> comme valeur de l'attribut LDAP
-    <code>dept</code>. De plus, pour pouvoir accéder à la ressource,
-    l'utilisateur ne doit appartenir ni au groupe <code>temps</code>, ni
-    au groupe LDAP <code>Employés temporaires</code>.</p>
-
-    <pre class="prettyprint lang-config">&lt;Directory /www/mydocs&gt;
-    &lt;RequireAll&gt;
-        &lt;RequireAny&gt;
-            Require user superadmin
-            &lt;RequireAll&gt;
-            Require group admins
-            Require ldap-group cn=Administrators,o=Airius
-                &lt;RequireAny&gt;
-                Require group sales
-                Require ldap-attribute dept="sales"
-                &lt;/RequireAny&gt;
-            &lt;/RequireAll&gt;
-        &lt;/RequireAny&gt;
-        &lt;RequireNone&gt;
-            Require group temps
-            Require ldap-group cn=Temporary Employees,o=Airius
-        &lt;/RequireNone&gt;
-    &lt;/RequireAll&gt;
-&lt;/Directory&gt;</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
-
-  <p>Le module <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> met à disposition des
-  fournisseurs d'autorisation génériques utilisables avec la directive
-  <code class="directive"><a href="#require">Require</a></code>.</p>
-
-  <h3><a name="reqenv" id="reqenv">Require env</a></h3>
-
-    <p>Le fournisseur <code>env</code> permet de contrôler l'accès au
-    serveur en fonction de l'existence d'une <a href="../env.html">variable d'environnement</a>. Lorsque <code>Require
-    env <var>env-variable</var></code> est spécifié, la requête se voit
-    autoriser l'accès si la variable d'environnement
-    <var>env-variable</var> existe. Le serveur permet de définir
-    facilement des variables d'environnement en fonction des
-    caractéristiques de la requête du client via les directives fournies
-    par le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Cette directive Require
-    env permet donc de contrôler l'accès en fonction des
-    valeurs des en-têtes de la requête HTTP tels que
-    <code>User-Agent</code> (type de navigateur), <code>Referer</code>,
-    entre autres.</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
-&lt;Directory /docroot&gt;
-    Require env let_me_in
-&lt;/Directory&gt;</pre>
-
-
-    <p>Avec cet exemple, les navigateurs dont la chaîne user-agent
-    commence par <code>KnockKnock/2.0</code> se verront autoriser
-    l'accès, alors que tous les autres seront rejetés.</p>
-
-    <p>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="../glossary.html#subrequest" title="voir glossaire">sous-requête</a> interne (par exemple la
-   recherche d'un <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il génère un
-   listing du contenu d'un répertoire via le module
-   <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requête n'hérite pas des
-   variables d'environnement spécifiques à la requête. En outre, à cause
-   des phases de l'API auxquelles <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> prend
-   part, les directives <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> ne sont pas évaluées
-   séparément dans la sous-requête.</p>
-
-  
-
-  <h3><a name="reqall" id="reqall">Require all</a></h3>
-
-    <p>Le fournisseur <code>all</code> reproduit la fonctionnalité
-    précédemment fournie par les directives 'Allow from all' et 'Deny
-    from all'. Il accepte un argument dont les deux valeurs possibles
-    sont : 'granted' ou 'denied'. Les exemples suivants autorisent ou
-    interdisent l'accès à toutes les requêtes.</p>
-
-    <pre class="prettyprint lang-config">Require all granted</pre>
-
-
-    <pre class="prettyprint lang-config">Require all denied</pre>
-
-
-  
-
-  <h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
-
-    <p>Le fournisseur <code>method</code> permet d'utiliser la méthode
-    HTTP dans le processus d'autorisation. Les méthodes GET et HEAD sont
-    ici considérées comme équivalentes. La méthode TRACE n'est pas
-    supportée par ce fournisseur ; utilisez à la place la directive
-    <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code>.</p>
-
-    <p>Dans l'exemple suivant, seules les méthodes GET, HEAD, POST, et
-    OPTIONS sont autorisées :</p>
-
-    <pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
-
-
-    <p>Dans l'exemple suivant, les méthodes GET, HEAD, POST, et OPTIONS
-    sont autorisées sans authentification, alors que toutes les autres
-    méthodes nécessitent un utilisateur valide :</p>
-
-    <pre class="prettyprint lang-config">&lt;RequireAny&gt;
-     Require method GET POST OPTIONS
-     Require valid-user
-&lt;/RequireAny&gt;</pre>
-
-
-  
-  <h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
-
-  <p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation
-  d'accès de base en fonction d'expressions arbitraires.</p>
-
-    <pre class="prettyprint lang-config">Require expr "%{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17"</pre>
-
-
-    <pre class="prettyprint lang-config">&lt;RequireAll&gt;
-    Require expr "!(%{QUERY_STRING} =~ /secret/)"
-    Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" 
-&lt;/RequireAll&gt;</pre>
-
-
-    <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
-
-
-    <p>La syntaxe de l'expression est décrite dans la documentation de <a href="../expr.html">ap_expr</a>.</p>
-
-    <p>Normalement, l'expression est évaluée avant l'authentification.
-    Cependant, si l'expression renvoie false et se réfère à la variable
-    <code>%{REMOTE_USER}</code>, le processus d'authentification sera
-    engagé et l'expression réévaluée.</p>
-
-  
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authmerging" id="authmerging">Directive</a> <a name="AuthMerging" id="AuthMerging">AuthMerging</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la manière dont chaque logique d'autorisation des
@@ -640,6 +438,208 @@ pas.</td></tr>
 <li><a href="../howto/auth.html">Authentification, autorisation et
 contrôle d'accès</a></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="authzalias" id="authzalias">Création des alias du fournisseur
+d'autorisation</a></h2>
+
+    <p>Il est possible de créer des fournisseurs d'autorisation étendus
+    dans le fichier de configuration et de leur assigner un nom d'alias.
+    On peut ensuite utiliser ces fournisseurs aliasés dans une
+    directive <code class="directive"><a href="#require">Require</a></code> de
+    la même manière qu'on le ferait pour des fournisseurs d'autorisation
+    de base. En plus de la possibilité de créer et d'aliaser un
+    fournisseur étendu, le même fournisseur d'autorisation étendu peut
+    être référencé par plusieurs localisations.
+    </p>
+
+    <h3><a name="example" id="example">Exemple</a></h3>
+        <p>Dans l'exemple suivant, on crée deux alias de fournisseur
+       d'autorisation ldap différents basés sur le fournisseur
+       d'autorisation ldap-group. Il est ainsi possible pour un seul
+       répertoire de vérifier l'appartenance à un groupe dans plusieurs
+       serveurs ldap :
+        </p>
+
+        <pre class="prettyprint lang-config">&lt;AuthzProviderAlias ldap-group ldap-group-alias1 cn=my-group,o=ctx&gt;
+    AuthLDAPBindDN cn=youruser,o=ctx
+    AuthLDAPBindPassword yourpassword
+    AuthLDAPURL ldap://ldap.host/o=ctx
+&lt;/AuthzProviderAlias&gt;
+
+&lt;AuthzProviderAlias ldap-group ldap-group-alias2 cn=my-other-group,o=dev&gt;
+    AuthLDAPBindDN cn=yourotheruser,o=dev
+    AuthLDAPBindPassword yourotherpassword
+    AuthLDAPURL ldap://other.ldap.host/o=dev?cn
+&lt;/AuthzProviderAlias&gt;
+
+Alias /secure /webpages/secure
+&lt;Directory /webpages/secure&gt;
+    Require all granted
+    
+    AuthBasicProvider file
+    
+    AuthType Basic
+    AuthName LDAP_Protected_Place
+    
+    #implied OR operation
+    Require ldap-group-alias1
+    Require ldap-group-alias2
+&lt;/Directory&gt;</pre>
+
+    
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logic" id="logic">Conteneurs d'autorisation</a></h2>
+
+    <p>Les directives de conteneur d'autorisation <code class="directive"><a href="#requireall">&lt;RequireAll&gt;</a></code>,
+    <code class="directive"><a href="#requireany">&lt;RequireAny&gt;</a></code> et <code class="directive"><a href="#requirenone">&lt;RequireNone&gt;</a></code>
+    peuvent être combinées entre elles et avec la directive <code class="directive"><a href="#require">Require</a></code> pour confectionner une
+    logique d'autorisation complexe.</p>
+
+    <p>L'exemple ci-dessous illustre la logique d'autorisation suivante.
+    Pour pouvoir accéder à la ressource, l'utilisateur doit être
+    l'utilisateur <code>superadmin</code>, ou appartenir aux deux
+    groupes LDAP <code>admins</code> et <code>Administrateurs</code> et
+    soit appartenir au groupe <code>ventes</code> ou avoir
+    <code>ventes</code> comme valeur de l'attribut LDAP
+    <code>dept</code>. De plus, pour pouvoir accéder à la ressource,
+    l'utilisateur ne doit appartenir ni au groupe <code>temps</code>, ni
+    au groupe LDAP <code>Employés temporaires</code>.</p>
+
+    <pre class="prettyprint lang-config">&lt;Directory /www/mydocs&gt;
+    &lt;RequireAll&gt;
+        &lt;RequireAny&gt;
+            Require user superadmin
+            &lt;RequireAll&gt;
+            Require group admins
+            Require ldap-group cn=Administrators,o=Airius
+                &lt;RequireAny&gt;
+                Require group sales
+                Require ldap-attribute dept="sales"
+                &lt;/RequireAny&gt;
+            &lt;/RequireAll&gt;
+        &lt;/RequireAny&gt;
+        &lt;RequireNone&gt;
+            Require group temps
+            Require ldap-group cn=Temporary Employees,o=Airius
+        &lt;/RequireNone&gt;
+    &lt;/RequireAll&gt;
+&lt;/Directory&gt;</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
+
+  <p>Le module <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> met à disposition des
+  fournisseurs d'autorisation génériques utilisables avec la directive
+  <code class="directive"><a href="#require">Require</a></code>.</p>
+
+  <h3><a name="reqenv" id="reqenv">Require env</a></h3>
+
+    <p>Le fournisseur <code>env</code> permet de contrôler l'accès au
+    serveur en fonction de l'existence d'une <a href="../env.html">variable d'environnement</a>. Lorsque <code>Require
+    env <var>env-variable</var></code> est spécifié, la requête se voit
+    autoriser l'accès si la variable d'environnement
+    <var>env-variable</var> existe. Le serveur permet de définir
+    facilement des variables d'environnement en fonction des
+    caractéristiques de la requête du client via les directives fournies
+    par le module <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>. Cette directive Require
+    env permet donc de contrôler l'accès en fonction des
+    valeurs des en-têtes de la requête HTTP tels que
+    <code>User-Agent</code> (type de navigateur), <code>Referer</code>,
+    entre autres.</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
+&lt;Directory /docroot&gt;
+    Require env let_me_in
+&lt;/Directory&gt;</pre>
+
+
+    <p>Avec cet exemple, les navigateurs dont la chaîne user-agent
+    commence par <code>KnockKnock/2.0</code> se verront autoriser
+    l'accès, alors que tous les autres seront rejetés.</p>
+
+    <p>Lorsque le serveur cherche un chemin via une <a class="glossarylink" href="../glossary.html#subrequest" title="voir glossaire">sous-requête</a> interne (par exemple la
+   recherche d'un <code class="directive"><a href="../mod/mod_dir.html#directoryindex">DirectoryIndex</a></code>), ou lorsqu'il génère un
+   listing du contenu d'un répertoire via le module
+   <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>, la sous-requête n'hérite pas des
+   variables d'environnement spécifiques à la requête. En outre, à cause
+   des phases de l'API auxquelles <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> prend
+   part, les directives <code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code> ne sont pas évaluées
+   séparément dans la sous-requête.</p>
+
+  
+
+  <h3><a name="reqall" id="reqall">Require all</a></h3>
+
+    <p>Le fournisseur <code>all</code> reproduit la fonctionnalité
+    précédemment fournie par les directives 'Allow from all' et 'Deny
+    from all'. Il accepte un argument dont les deux valeurs possibles
+    sont : 'granted' ou 'denied'. Les exemples suivants autorisent ou
+    interdisent l'accès à toutes les requêtes.</p>
+
+    <pre class="prettyprint lang-config">Require all granted</pre>
+
+
+    <pre class="prettyprint lang-config">Require all denied</pre>
+
+
+  
+
+  <h3><a name="reqmethod" id="reqmethod">Require method</a></h3>
+
+    <p>Le fournisseur <code>method</code> permet d'utiliser la méthode
+    HTTP dans le processus d'autorisation. Les méthodes GET et HEAD sont
+    ici considérées comme équivalentes. La méthode TRACE n'est pas
+    supportée par ce fournisseur ; utilisez à la place la directive
+    <code class="directive"><a href="../mod/core.html#traceenable">TraceEnable</a></code>.</p>
+
+    <p>Dans l'exemple suivant, seules les méthodes GET, HEAD, POST, et
+    OPTIONS sont autorisées :</p>
+
+    <pre class="prettyprint lang-config">Require method GET POST OPTIONS</pre>
+
+
+    <p>Dans l'exemple suivant, les méthodes GET, HEAD, POST, et OPTIONS
+    sont autorisées sans authentification, alors que toutes les autres
+    méthodes nécessitent un utilisateur valide :</p>
+
+    <pre class="prettyprint lang-config">&lt;RequireAny&gt;
+     Require method GET POST OPTIONS
+     Require valid-user
+&lt;/RequireAny&gt;</pre>
+
+
+  
+  <h3><a name="reqexpr" id="reqexpr">Require expr</a></h3>
+
+  <p>Le fournisseur <code>expr</code> permet d'accorder l'autorisation
+  d'accès de base en fonction d'expressions arbitraires.</p>
+
+    <pre class="prettyprint lang-config">Require expr "%{TIME_HOUR} -ge 9 &amp;&amp; %{TIME_HOUR} -le 17"</pre>
+
+
+    <pre class="prettyprint lang-config">&lt;RequireAll&gt;
+    Require expr "!(%{QUERY_STRING} =~ /secret/)"
+    Require expr "%{REQUEST_URI} in { '/example.cgi', '/other.cgi' }" 
+&lt;/RequireAll&gt;</pre>
+
+
+    <pre class="prettyprint lang-config">Require expr "!(%{QUERY_STRING} =~ /secret/) &amp;&amp; %{REQUEST_URI} in { '/example.cgi', '/other.cgi' }"</pre>
+
+
+    <p>La syntaxe de l'expression est décrite dans la documentation de <a href="../expr.html">ap_expr</a>.</p>
+
+    <p>Normalement, l'expression est évaluée avant l'authentification.
+    Cependant, si l'expression renvoie false et se réfère à la variable
+    <code>%{REMOTE_USER}</code>, le processus d'authentification sera
+    engagé et l'expression réévaluée.</p>
+
+  
+
 </div>
 </div>
 <div class="bottomlang">
index 2710cb6ed6b4b96320d6c39872aaf0d3d5be6a99..a3f016e33f48495a3599ddde0482ad77b2e59cec 100644 (file)
 <li><code class="directive"><a href="../mod/mod_dbd.html#dbdparams">DBDParams</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a> <a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether to redirect the Client to the Referring
+page on successful login or logout if a <code>Referer</code> request
+header is present</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
+</table>
+    <p>In conjunction with <code>Require dbd-login</code> or
+    <code>Require dbd-logout</code>, this provides the option to
+    redirect the client back to the Referring page (the URL in
+    the <code>Referer</code> HTTP request header, if present).
+    When there is no <code>Referer</code> header,
+    <code>AuthzDBDLoginToReferer On</code> will be ignored.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a> <a name="authzdbdquery" id="authzdbdquery">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify the SQL Query for the required operation</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDQuery <var>query</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
+</table>
+    <p>The <code class="directive">AuthzDBDQuery</code> specifies an SQL
+    query to run.  The purpose of the query depends on the
+    <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive in
+    effect.</p>
+    <ul>
+    <li>When used with a <code>Require dbd-group</code> directive,
+    it specifies a query to look up groups for the current user.  This is
+    the standard functionality of other authorization modules such as
+    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> and <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
+    The first column value of each row returned by the query statement
+    should be a string containing a group name.  Zero, one, or more rows
+    may be returned.
+    <pre class="prettyprint lang-config">Require dbd-group
+AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
+
+    </li>
+    <li>When used with a <code>Require dbd-login</code> or
+    <code>Require dbd-logout</code> directive, it will never deny access,
+    but will instead execute a SQL statement designed to log the user
+    in or out.  The user must already be authenticated with
+    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
+    <pre class="prettyprint lang-config">Require dbd-login
+AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
+
+    </li>
+    </ul>
+    <p>In all cases, the user's ID will be passed as a single string
+    parameter when the SQL query is executed.  It may be referenced within
+    the query statement using a <code>%s</code> format specifier.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a> <a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a query to look up a login page for the user</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDRedirectQuery <var>query</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
+</table>
+    <p>Specifies an optional SQL query to use after successful login
+    (or logout) to redirect the user to a URL, which may be
+    specific to the user.  The user's ID will be passed as a single string
+    parameter when the SQL query is executed.  It may be referenced within
+    the query statement using a <code>%s</code> format specifier.</p>
+    <pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
+
+    <p>The first column value of the first row returned by the query
+    statement should be a string containing a URL to which to redirect
+    the client.  Subsequent rows will be ignored.  If no rows are returned,
+    the client will not be redirected.</p>
+    <p>Note that <code class="directive">AuthzDBDLoginToReferer</code> takes
+    precedence if both are set.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
 
@@ -197,90 +281,6 @@ DBDExptime 300
   &lt;/Files&gt;
 &lt;/Directory&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a> <a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether to redirect the Client to the Referring
-page on successful login or logout if a <code>Referer</code> request
-header is present</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
-</table>
-    <p>In conjunction with <code>Require dbd-login</code> or
-    <code>Require dbd-logout</code>, this provides the option to
-    redirect the client back to the Referring page (the URL in
-    the <code>Referer</code> HTTP request header, if present).
-    When there is no <code>Referer</code> header,
-    <code>AuthzDBDLoginToReferer On</code> will be ignored.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a> <a name="authzdbdquery" id="authzdbdquery">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify the SQL Query for the required operation</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDQuery <var>query</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
-</table>
-    <p>The <code class="directive">AuthzDBDQuery</code> specifies an SQL
-    query to run.  The purpose of the query depends on the
-    <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive in
-    effect.</p>
-    <ul>
-    <li>When used with a <code>Require dbd-group</code> directive,
-    it specifies a query to look up groups for the current user.  This is
-    the standard functionality of other authorization modules such as
-    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> and <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
-    The first column value of each row returned by the query statement
-    should be a string containing a group name.  Zero, one, or more rows
-    may be returned.
-    <pre class="prettyprint lang-config">Require dbd-group
-AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
-
-    </li>
-    <li>When used with a <code>Require dbd-login</code> or
-    <code>Require dbd-logout</code> directive, it will never deny access,
-    but will instead execute a SQL statement designed to log the user
-    in or out.  The user must already be authenticated with
-    <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
-    <pre class="prettyprint lang-config">Require dbd-login
-AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
-
-    </li>
-    </ul>
-    <p>In all cases, the user's ID will be passed as a single string
-    parameter when the SQL query is executed.  It may be referenced within
-    the query statement using a <code>%s</code> format specifier.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a> <a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify a query to look up a login page for the user</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthzDBDRedirectQuery <var>query</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
-</table>
-    <p>Specifies an optional SQL query to use after successful login
-    (or logout) to redirect the user to a URL, which may be
-    specific to the user.  The user's ID will be passed as a single string
-    parameter when the SQL query is executed.  It may be referenced within
-    the query statement using a <code>%s</code> format specifier.</p>
-    <pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
-
-    <p>The first column value of the first row returned by the query
-    statement should be a string containing a URL to which to redirect
-    the client.  Subsequent rows will be ignored.  If no rows are returned,
-    the client will not be redirected.</p>
-    <p>Note that <code class="directive">AuthzDBDLoginToReferer</code> takes
-    precedence if both are set.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index dcea399ff4328cd52260fd7196b690949056fbe0..85d75f7a98d2a0d304202bbfa920a0cc6af8ae4d 100644 (file)
@@ -75,6 +75,99 @@ d'Apache</td></tr></table>
 <li><code class="directive"><a href="../mod/mod_dbd.html#dbdparams">DBDParams</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a> <a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si le client doit être redirigé vers la page
+d'origine en cas de connexion ou de déconnexion réussie si un en-tête
+de requête <code>Referer</code> est présent</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
+</table>
+    <p>Utilisée en conjonction avec <code>Require dbd-login</code> ou
+    <code>Require dbd-logout</code>, cette directive permet de rediriger
+    le client vers la page d'origine (l'URL contenue dans l'en-tête
+    de requête HTTP <code>Referer</code>, s'il est présent). En
+    l'absence d'en-tête <code>Referer</code>, la définition
+    <code>AuthzDBDLoginToReferer On</code> sera ignorée.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authzdbdquery" id="authzdbdquery">Directive</a> <a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la requête SQL pour l'opération
+requise</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDQuery <var>requête</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
+</table>
+    <p>La directive <code class="directive">AuthzDBDQuery</code> permet de
+    spécifier une requête SQL à exécuter. Le but de cette requête dépend
+    de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en cours de
+    traitement.</p>
+    <ul>
+    <li>Avec la directive <code>Require dbd-group</code>, elle spécifie
+    une requête permettant de rechercher les groupes d'appartenance de
+    l'utilisateur courant. Ceci correspond à la fonctionnalité standard
+    d'autres modules d'autorisation comme
+    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> et
+    <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
+    La première colonne de chaque enregistrement renvoyé par la requête
+    doit contenir une chaîne de caractères correspondant à un nom de
+    groupe. La requête peut renvoyer zéro, un ou plusieurs
+    enregistrements.
+    <pre class="prettyprint lang-config">Require dbd-group
+AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
+
+    </li>
+    <li>Avec la directive <code>Require dbd-login</code> ou
+    <code>Require dbd-logout</code>, elle ne refusera jamais l'accès,
+    mais au contraire exécutera une requête SQL permettant d'enregistrer
+    la connexion ou la déconnexion de l'utilisateur. Ce dernier doit
+    être déjà authentifié avec <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
+    <pre class="prettyprint lang-config">Require dbd-login
+AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
+
+    </li>
+    </ul>
+    <p>Dans tous les cas, l'identifiant utilisateur sera transmis comme
+    paramètre sous la forme d'une simple chaîne lorsque la requête SQL
+    sera exécutée. Il y sera fait référence dans la requête en utilisant
+    le spécificateur de format <code>%s</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a> <a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une requête pour rechercher une page vers laquelle
+rediriger l'utilisateur après une connexion réussie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDRedirectQuery <var>requête</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
+</table>
+    <p>Spécifie une requête SQL optionnelle à utiliser après une
+    connexion (ou une déconnexion) réussie pour rediriger l'utilisateur
+    vers une URL, qui peut être spécifique à l'utilisateur.
+    L'identifiant utilisateur sera transmis comme paramètre sous la
+    forme d'une simple chaîne lorsque la requête SQL sera exécutée. Il y
+    sera fait référence dans la requête en utilisant le spécificateur de
+    format <code>%s</code>.</p>
+    <pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
+
+    <p>La première colonne du premier enregistrement renvoyé par la
+    requête doit contenir une chaîne de caractères correspondant à une
+    URL vers laquelle rediriger le client. Les enregistrements suivants
+    sont ignorés. Si aucun enregistrement n'est renvoyé, le client ne
+    sera pas redirigé.</p>
+    <p>Notez que <code class="directive">AuthzDBDLoginToReferer</code> l'emporte
+    sur cette directive si les deux sont définies.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="requiredirectives" id="requiredirectives">Les directives Require</a></h2>
 
@@ -210,99 +303,6 @@ DBDExptime 300
   &lt;/Files&gt;
 &lt;/Directory&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authzdbdlogintoreferer" id="authzdbdlogintoreferer">Directive</a> <a name="AuthzDBDLoginToReferer" id="AuthzDBDLoginToReferer">AuthzDBDLoginToReferer</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si le client doit être redirigé vers la page
-d'origine en cas de connexion ou de déconnexion réussie si un en-tête
-de requête <code>Referer</code> est présent</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDLoginToReferer On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthzDBDLoginToReferer Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
-</table>
-    <p>Utilisée en conjonction avec <code>Require dbd-login</code> ou
-    <code>Require dbd-logout</code>, cette directive permet de rediriger
-    le client vers la page d'origine (l'URL contenue dans l'en-tête
-    de requête HTTP <code>Referer</code>, s'il est présent). En
-    l'absence d'en-tête <code>Referer</code>, la définition
-    <code>AuthzDBDLoginToReferer On</code> sera ignorée.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authzdbdquery" id="authzdbdquery">Directive</a> <a name="AuthzDBDQuery" id="AuthzDBDQuery">AuthzDBDQuery</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la requête SQL pour l'opération
-requise</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDQuery <var>requête</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
-</table>
-    <p>La directive <code class="directive">AuthzDBDQuery</code> permet de
-    spécifier une requête SQL à exécuter. Le but de cette requête dépend
-    de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> en cours de
-    traitement.</p>
-    <ul>
-    <li>Avec la directive <code>Require dbd-group</code>, elle spécifie
-    une requête permettant de rechercher les groupes d'appartenance de
-    l'utilisateur courant. Ceci correspond à la fonctionnalité standard
-    d'autres modules d'autorisation comme
-    <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> et
-    <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code>.
-    La première colonne de chaque enregistrement renvoyé par la requête
-    doit contenir une chaîne de caractères correspondant à un nom de
-    groupe. La requête peut renvoyer zéro, un ou plusieurs
-    enregistrements.
-    <pre class="prettyprint lang-config">Require dbd-group
-AuthzDBDQuery "SELECT group FROM groups WHERE user = %s"</pre>
-
-    </li>
-    <li>Avec la directive <code>Require dbd-login</code> ou
-    <code>Require dbd-logout</code>, elle ne refusera jamais l'accès,
-    mais au contraire exécutera une requête SQL permettant d'enregistrer
-    la connexion ou la déconnexion de l'utilisateur. Ce dernier doit
-    être déjà authentifié avec <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.
-    <pre class="prettyprint lang-config">Require dbd-login
-AuthzDBDQuery "UPDATE authn SET login = 'true' WHERE user = %s"</pre>
-
-    </li>
-    </ul>
-    <p>Dans tous les cas, l'identifiant utilisateur sera transmis comme
-    paramètre sous la forme d'une simple chaîne lorsque la requête SQL
-    sera exécutée. Il y sera fait référence dans la requête en utilisant
-    le spécificateur de format <code>%s</code>.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authzdbdredirectquery" id="authzdbdredirectquery">Directive</a> <a name="AuthzDBDRedirectQuery" id="AuthzDBDRedirectQuery">AuthzDBDRedirectQuery</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une requête pour rechercher une page vers laquelle
-rediriger l'utilisateur après une connexion réussie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthzDBDRedirectQuery <var>requête</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_authz_dbd</td></tr>
-</table>
-    <p>Spécifie une requête SQL optionnelle à utiliser après une
-    connexion (ou une déconnexion) réussie pour rediriger l'utilisateur
-    vers une URL, qui peut être spécifique à l'utilisateur.
-    L'identifiant utilisateur sera transmis comme paramètre sous la
-    forme d'une simple chaîne lorsque la requête SQL sera exécutée. Il y
-    sera fait référence dans la requête en utilisant le spécificateur de
-    format <code>%s</code>.</p>
-    <pre class="prettyprint lang-config">AuthzDBDRedirectQuery "SELECT userpage FROM userpages WHERE user = %s"</pre>
-
-    <p>La première colonne du premier enregistrement renvoyé par la
-    requête doit contenir une chaîne de caractères correspondant à une
-    URL vers laquelle rediriger le client. Les enregistrements suivants
-    sont ignorés. Si aucun enregistrement n'est renvoyé, le client ne
-    sera pas redirigé.</p>
-    <p>Notez que <code class="directive">AuthzDBDLoginToReferer</code> l'emporte
-    sur cette directive si les deux sont définies.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index 0b56e30d82e1691772e01c3aa3e1465d15a5c3c1..481d330afe70d294ec58c160a5c71cd06d759c9b 100644 (file)
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
-
-    <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
-    directives are used during the authorization phase to ensure that
-    a user is allowed to access a resource.  mod_authz_dbm extends the
-    authorization types with <code>dbm-group</code>.</p>
-
-    <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
-    within the DBM require directives.</p>
-
-<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
-
-    <p>This directive specifies group membership that is required for the
-    user to gain access.</p>
-
-    <pre class="prettyprint lang-config">Require dbm-group admin</pre>
-
-
-
-
-<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
-
-    <p>When this directive is specified, the user must be a member of the group
-    assigned to the file being accessed.</p>
-
-    <pre class="prettyprint lang-config">Require dbm-file-group</pre>
-
-
-
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Example usage</a></h2>
-
-<p><em>Note that using mod_authz_dbm requires you to require <code>dbm-group</code>
-instead of <code>group</code>:</em>
-</p>
-<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
-  AuthType Basic
-  AuthName "Secure Area"
-  AuthBasicProvider dbm
-  AuthDBMUserFile "site/data/users"
-  AuthDBMGroupFile "site/data/users"
-  Require dbm-group admin
-&lt;/Directory&gt;</pre>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the name of the database file containing the list
@@ -180,6 +131,55 @@ store list of user groups</td></tr>
     <p>It is crucial that whatever program you use to create your group
     files is configured to use the same type of database.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
+
+    <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
+    directives are used during the authorization phase to ensure that
+    a user is allowed to access a resource.  mod_authz_dbm extends the
+    authorization types with <code>dbm-group</code>.</p>
+
+    <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
+    within the DBM require directives.</p>
+
+<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
+
+    <p>This directive specifies group membership that is required for the
+    user to gain access.</p>
+
+    <pre class="prettyprint lang-config">Require dbm-group admin</pre>
+
+
+
+
+<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
+
+    <p>When this directive is specified, the user must be a member of the group
+    assigned to the file being accessed.</p>
+
+    <pre class="prettyprint lang-config">Require dbm-file-group</pre>
+
+
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Example usage</a></h2>
+
+<p><em>Note that using mod_authz_dbm requires you to require <code>dbm-group</code>
+instead of <code>group</code>:</em>
+</p>
+<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
+  AuthType Basic
+  AuthName "Secure Area"
+  AuthBasicProvider dbm
+  AuthDBMUserFile "site/data/users"
+  AuthDBMGroupFile "site/data/users"
+  Require dbm-group admin
+&lt;/Directory&gt;</pre>
+
 </div>
 </div>
 <div class="bottomlang">
index e8972f711f638c9df5775444eaf8a7ffc609cb87..05746eb0788b8c3bf71fea2d467050ce135f7044 100644 (file)
@@ -59,56 +59,6 @@ d'Apache</td></tr></table>
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
-
-    <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
-    au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
-    est bien autorisé à accéder à une ressource.  mod_authz_dbm ajoute
-    les types d'autorisation <code>dbm-group</code> et <code>dbm-file-group</code>.</p>
-
-    <p>A partir de la version 2.4.8, les directives require DBM
-    supportent les <a href="../expr.html">expressions</a>.</p>
-
-<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
-
-    <p>Cette directive permet de spécifier à quel groupe un utilisateur
-    doit appartenir pour obtenir l'autorisation d'accès.</p>
-
-    <pre class="prettyprint lang-config">Require dbm-group admin</pre>
-
-
-
-
-<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
-
-    <p>Lorsque cette directive est définie, l'utilisateur doit
-    appartenir au groupe du fichier pour pouvoir y accéder.</p>
-
-    <pre class="prettyprint lang-config">Require dbm-file-group</pre>
-
-
-
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemple d'utilisation</a></h2>
-
-<p><em>Notez que si vous utilisez mod_authz_dbm, le mot-clé pour les
-groupes d'authentification qui était auparavant <code>group</code> est
-maintenant <code>dbm-group</code> :</em>
-</p>
-<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
-  AuthType Basic 
-  AuthName "Secure Area"
-  AuthBasicProvider dbm 
-  AuthDBMUserFile site/data/users 
-  AuthDBMGroupFile site/data/users 
-  Require dbm-group admin 
-&lt;/Directory&gt;</pre>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authdbmgroupfile" id="authdbmgroupfile">Directive</a> <a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom du fichier de base de données contenant la
@@ -192,6 +142,56 @@ la liste des groupes d'utilisateurs</td></tr>
     fichier de groupes, il est impératif que celui-ci soit configuré
     pour utiliser le même type de base de données.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
+
+    <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
+    au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
+    est bien autorisé à accéder à une ressource.  mod_authz_dbm ajoute
+    les types d'autorisation <code>dbm-group</code> et <code>dbm-file-group</code>.</p>
+
+    <p>A partir de la version 2.4.8, les directives require DBM
+    supportent les <a href="../expr.html">expressions</a>.</p>
+
+<h3><a name="reqgroup" id="reqgroup">Require dbm-group</a></h3>
+
+    <p>Cette directive permet de spécifier à quel groupe un utilisateur
+    doit appartenir pour obtenir l'autorisation d'accès.</p>
+
+    <pre class="prettyprint lang-config">Require dbm-group admin</pre>
+
+
+
+
+<h3><a name="reqfilegroup" id="reqfilegroup">Require dbm-file-group</a></h3>
+
+    <p>Lorsque cette directive est définie, l'utilisateur doit
+    appartenir au groupe du fichier pour pouvoir y accéder.</p>
+
+    <pre class="prettyprint lang-config">Require dbm-file-group</pre>
+
+
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemple d'utilisation</a></h2>
+
+<p><em>Notez que si vous utilisez mod_authz_dbm, le mot-clé pour les
+groupes d'authentification qui était auparavant <code>group</code> est
+maintenant <code>dbm-group</code> :</em>
+</p>
+<pre class="prettyprint lang-config">&lt;Directory "/foo/bar"&gt;
+  AuthType Basic 
+  AuthName "Secure Area"
+  AuthBasicProvider dbm 
+  AuthDBMUserFile site/data/users 
+  AuthDBMGroupFile site/data/users 
+  Require dbm-group admin 
+&lt;/Directory&gt;</pre>
+
 </div>
 </div>
 <div class="bottomlang">
index 28ed80a6a2351ece99a49f515a7ef24c6de41ce5..ad83851263796053d45da5123f6c855081a8742e 100644 (file)
@@ -51,7 +51,6 @@
 <li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthDBMGroupFile" id="AuthDBMGroupFile">AuthDBMGroupFile</a> <a name="authdbmgroupfile" id="authdbmgroupfile">Áö½Ã¾î</a></h2>
 <table class="directive">
     »ç¿ëÇϵµ·Ï ¼³Á¤ÇؾߠÇÑ´Ù.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_authz_dbm.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index b421614b1f660750b787b08ccf7406d93f51535d..fc7388a760f96275d0bf0444813181ffad144f2e 100644 (file)
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
-
-    <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
-    directives are used during the authorization phase to ensure that
-    a user is allowed to access a resource.  mod_authz_groupfile extends the
-    authorization types with <code>group</code> and <code>group-file</code>.
-    </p>
-
-    <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
-    within the groupfile require directives.</p>
-
-<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
-
-    <p>This directive specifies group membership that is required for the
-    user to gain access.</p>
-
-    <pre class="prettyprint lang-config">Require group admin</pre>
-
-
-
-
-<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
-
-    <p>When this directive is specified, the user must be a member of the group
-    assigned to the file being accessed.</p>
-
-    <pre class="prettyprint lang-config">Require file-group</pre>
-
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the name of a text file containing the list
@@ -119,6 +85,40 @@ of user groups for authorization</td></tr>
       be able to download the <code class="directive">AuthGroupFile</code>.</p>
     </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
+
+    <p>Apache's <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>
+    directives are used during the authorization phase to ensure that
+    a user is allowed to access a resource.  mod_authz_groupfile extends the
+    authorization types with <code>group</code> and <code>group-file</code>.
+    </p>
+
+    <p>Since v2.4.8, <a href="../expr.html">expressions</a> are supported
+    within the groupfile require directives.</p>
+
+<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
+
+    <p>This directive specifies group membership that is required for the
+    user to gain access.</p>
+
+    <pre class="prettyprint lang-config">Require group admin</pre>
+
+
+
+
+<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
+
+    <p>When this directive is specified, the user must be a member of the group
+    assigned to the file being accessed.</p>
+
+    <pre class="prettyprint lang-config">Require file-group</pre>
+
+
+
+
 </div>
 </div>
 <div class="bottomlang">
index 7b333a846181e5abb93d3515607707c21ea0986b..8adbcfbeea020fbd38cf7814f2eca3561bad491a 100644 (file)
@@ -55,40 +55,6 @@ fonction de leur appartenance 
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
-
-    <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
-    au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
-    est bien autorisé à accéder à une ressource. mod_authz_groupfile ajoute
-    les types d'autorisation <code>group</code> et <code>file-group</code>.
-    </p>
-
-    <p>A partir de la version 2.4.8, les directives require groupfile
-    supportent les <a href="../expr.html">expressions</a>.</p>
-
-<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
-
-    <p>Cette directive permet de spécifier à quel groupe un utilisateur
-    doit appartenir pour obtenir l'autorisation d'accès.</p>
-
-    <pre class="prettyprint lang-config">Require group admin</pre>
-
-
-
-
-<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
-
-    <p>Lorsque cette directive est définie, l'utilisateur doit
-    appartenir au groupe du fichier pour pouvoir y accéder.</p>
-
-    <pre class="prettyprint lang-config">Require file-group</pre>
-
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="authgroupfile" id="authgroupfile">Directive</a> <a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom d'un fichier texte contenant la liste des
@@ -127,6 +93,40 @@ s
 clients pourraient le télécharger.</p>
     </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="requiredirectives" id="requiredirectives">The Require Directives</a></h2>
+
+    <p>Les directives <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> d'Apache permettent,
+    au cours de la phase d'autorisation, de s'assurer qu'un utilisateur
+    est bien autorisé à accéder à une ressource. mod_authz_groupfile ajoute
+    les types d'autorisation <code>group</code> et <code>file-group</code>.
+    </p>
+
+    <p>A partir de la version 2.4.8, les directives require groupfile
+    supportent les <a href="../expr.html">expressions</a>.</p>
+
+<h3><a name="reqgroup" id="reqgroup">Require group</a></h3>
+
+    <p>Cette directive permet de spécifier à quel groupe un utilisateur
+    doit appartenir pour obtenir l'autorisation d'accès.</p>
+
+    <pre class="prettyprint lang-config">Require group admin</pre>
+
+
+
+
+<h3><a name="reqfilegroup" id="reqfilegroup">Require file-group</a></h3>
+
+    <p>Lorsque cette directive est définie, l'utilisateur doit
+    appartenir au groupe du fichier pour pouvoir y accéder.</p>
+
+    <pre class="prettyprint lang-config">Require file-group</pre>
+
+
+
+
 </div>
 </div>
 <div class="bottomlang">
index 26425dd2abea488db5fbbfcdc0f9d0310fee560a..27a3313e348f553496085be892fb627fe888d58b 100644 (file)
@@ -53,7 +53,6 @@
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">ディレクティブ</a></h2>
 <table class="directive">
@@ -95,6 +94,7 @@
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 0aa3ce2494db4c6048832a52e12e356da0d16ec5..bffb3c7511d4a8f321ae1e84e71dbfc5ff52a15b 100644 (file)
@@ -51,7 +51,6 @@
 <li><code class="directive"><a href="../mod/core.html#require">Require</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#satisfy">Satisfy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AuthGroupFile" id="AuthGroupFile">AuthGroupFile</a> <a name="authgroupfile" id="authgroupfile">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -86,6 +85,7 @@
     </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_authz_groupfile.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 529ffdf02764331259efe4b6b661fca68de7d50b..9864dce3c3b5d6529b21e2e2f6f204403002777c 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex Request Query Arguments</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="query" id="query">Autoindex Request Query Arguments</a></h2>
-    
-
-    <p>Various query string arguments are available to give the client
-    some control over the ordering of the directory listing, as well as
-    what files are listed. If you do not wish to give the client this
-    control, the <code><a href="#indexoptions.ignoreclient">IndexOptions
-    IgnoreClient</a></code> option disables that functionality.</p>
-
-    <p>The column sorting headers themselves are self-referencing
-    hyperlinks that add the sort query options shown below. Any
-    option below may be added to any request for the directory
-    resource.</p>
-
-    <ul>
-      <li><code>C=N</code> sorts the directory by file name</li>
-
-      <li><code>C=M</code> sorts the directory by last-modified
-      date, then file name</li>
-
-      <li><code>C=S</code> sorts the directory by size, then file
-      name</li>
-
-      <li class="separate"><code>C=D</code> sorts the directory by description, then
-      file name</li>
-
-      <li><code>O=A</code> sorts the listing in Ascending
-      Order</li>
-
-      <li class="separate"><code>O=D</code> sorts the listing in Descending
-      Order</li>
-
-      <li><code>F=0</code> formats the listing as a simple list
-      (not FancyIndexed)</li>
-
-      <li><code>F=1</code> formats the listing as a FancyIndexed
-      list</li>
-
-      <li class="separate"><code>F=2</code> formats the listing as an
-      HTMLTable FancyIndexed list</li>
-
-      <li><code>V=0</code> disables version sorting</li>
-
-      <li class="separate"><code>V=1</code> enables version sorting</li>
-
-      <li><code>P=<var>pattern</var></code> lists only files matching
-      the given <var>pattern</var></li>
-    </ul>
-
-    <p>Note that the 'P'attern query argument is tested
-    <em>after</em> the usual <code class="directive"><a href="#indexignore">IndexIgnore</a></code> directives are processed,
-    and all file names are still subjected to the same criteria as
-    any other autoindex listing. The Query Arguments parser in
-    <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> will stop abruptly when an unrecognized
-    option is encountered. The Query Arguments must be well formed,
-    according to the table above.</p>
-
-    <p>The simple example below, which can be clipped and saved in
-    a header.html file, illustrates these query options. Note that
-    the unknown "X" argument, for the submit button, is listed last
-    to assure the arguments are all parsed before mod_autoindex
-    encounters the X=Go input.</p>
-
-    <div class="example"><p><code>
-      &lt;form action="" method="get"&gt;<br />
-      <span class="indent">
-        Show me a &lt;select name="F"&gt;<br />
-        <span class="indent">
-          &lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
-          &lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
-          &lt;option value="2"&gt; Table list&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        Sorted by &lt;select name="C"&gt;<br />
-        <span class="indent">
-          &lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
-          &lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
-          &lt;option value="S"&gt; Size&lt;/option&gt;<br />
-          &lt;option value="D"&gt; Description&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="O"&gt;<br />
-        <span class="indent">
-          &lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
-          &lt;option value="D"&gt; Descending&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="V"&gt;<br />
-        <span class="indent">
-          &lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
-          &lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        Matching &lt;input type="text" name="P" value="*" /&gt;<br />
-        &lt;input type="submit" name="X" value="Go" /&gt;<br />
-      </span>
-      &lt;/form&gt;
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Alternate text to display for a file, instead of an
@@ -1012,6 +910,108 @@ ReadmeName /include/FOOTER.html</pre>
     <p>See also <code class="directive"><a href="#headername">HeaderName</a></code>, where this behavior is described in greater
     detail.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="query" id="query">Autoindex Request Query Arguments</a></h2>
+    
+
+    <p>Various query string arguments are available to give the client
+    some control over the ordering of the directory listing, as well as
+    what files are listed. If you do not wish to give the client this
+    control, the <code><a href="#indexoptions.ignoreclient">IndexOptions
+    IgnoreClient</a></code> option disables that functionality.</p>
+
+    <p>The column sorting headers themselves are self-referencing
+    hyperlinks that add the sort query options shown below. Any
+    option below may be added to any request for the directory
+    resource.</p>
+
+    <ul>
+      <li><code>C=N</code> sorts the directory by file name</li>
+
+      <li><code>C=M</code> sorts the directory by last-modified
+      date, then file name</li>
+
+      <li><code>C=S</code> sorts the directory by size, then file
+      name</li>
+
+      <li class="separate"><code>C=D</code> sorts the directory by description, then
+      file name</li>
+
+      <li><code>O=A</code> sorts the listing in Ascending
+      Order</li>
+
+      <li class="separate"><code>O=D</code> sorts the listing in Descending
+      Order</li>
+
+      <li><code>F=0</code> formats the listing as a simple list
+      (not FancyIndexed)</li>
+
+      <li><code>F=1</code> formats the listing as a FancyIndexed
+      list</li>
+
+      <li class="separate"><code>F=2</code> formats the listing as an
+      HTMLTable FancyIndexed list</li>
+
+      <li><code>V=0</code> disables version sorting</li>
+
+      <li class="separate"><code>V=1</code> enables version sorting</li>
+
+      <li><code>P=<var>pattern</var></code> lists only files matching
+      the given <var>pattern</var></li>
+    </ul>
+
+    <p>Note that the 'P'attern query argument is tested
+    <em>after</em> the usual <code class="directive"><a href="#indexignore">IndexIgnore</a></code> directives are processed,
+    and all file names are still subjected to the same criteria as
+    any other autoindex listing. The Query Arguments parser in
+    <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> will stop abruptly when an unrecognized
+    option is encountered. The Query Arguments must be well formed,
+    according to the table above.</p>
+
+    <p>The simple example below, which can be clipped and saved in
+    a header.html file, illustrates these query options. Note that
+    the unknown "X" argument, for the submit button, is listed last
+    to assure the arguments are all parsed before mod_autoindex
+    encounters the X=Go input.</p>
+
+    <div class="example"><p><code>
+      &lt;form action="" method="get"&gt;<br />
+      <span class="indent">
+        Show me a &lt;select name="F"&gt;<br />
+        <span class="indent">
+          &lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
+          &lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
+          &lt;option value="2"&gt; Table list&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        Sorted by &lt;select name="C"&gt;<br />
+        <span class="indent">
+          &lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
+          &lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
+          &lt;option value="S"&gt; Size&lt;/option&gt;<br />
+          &lt;option value="D"&gt; Description&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="O"&gt;<br />
+        <span class="indent">
+          &lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
+          &lt;option value="D"&gt; Descending&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="V"&gt;<br />
+        <span class="indent">
+          &lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
+          &lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        Matching &lt;input type="text" name="P" value="*" /&gt;<br />
+        &lt;input type="submit" name="X" value="Go" /&gt;<br />
+      </span>
+      &lt;/form&gt;
+    </code></p></div>
+
 </div>
 </div>
 <div class="bottomlang">
index f9e725043b7ce8e65fdc04c2abbb5f103ecfcd1e..3d299631571b6473e0f8d93d70f2572e14331370 100644 (file)
@@ -103,115 +103,6 @@ shell Win32 <code>dir</code></td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#query">Arguments de la requête d'autoindexation</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="query" id="query">Arguments de la requête d'autoindexation</a></h2>
-    
-
-    <p>La chaîne de paramètres de la requête peut contenir de nombreux
-    arguments permettant dans une certaine mesure au client de contrôler
-    l'ordre de l'index du répertoire, ainsi que la liste des fichiers à
-    afficher. Si vous souhaitez désactiver cette fonctionnalité,
-    utilisez l'option <code><a href="#indexoptions.ignoreclient">IndexOptions
-    IgnoreClient</a></code>.</p>
-
-    <p>Les en-têtes de tri des colonnes eux-mêmes sont des hyper-liens
-    auto-référant qui ajoutent les options de tri à la requête énumérées
-    ci-dessous qui peuvent être ajoutées à toute requête concernant la
-    ressource répertoire.</p>
-
-    <ul>
-      <li><code>C=N</code> trie l'affichage en fonction du nom de
-      fichier</li>
-
-      <li><code>C=M</code> trie l'affichage en fonction de la date de
-      dernière modification, puis du nom de fichier</li>
-
-      <li><code>C=S</code> trie l'affichage en fonction de la taille,
-      puis du nom de fichier</li>
-
-      <li class="separate"><code>C=D</code> trie l'affichage en fonction
-      de la description, puis du nom de fichier</li>
-
-      <li><code>O=A</code> trie l'affichage selon l'ordre croissant</li>
-
-      <li class="separate"><code>O=D</code> trie l'affichage selon
-      l'ordre décroissant</li>
-
-      <li><code>F=0</code> affiche le listing sous la forme d'une simple
-      liste (sans FancyIndex)</li>
-
-      <li><code>F=1</code> affiche le listing avec en-têtes de colonnes
-      sous forme de liens hyper-textes (FancyIndexed)</li>
-
-      <li class="separate"><code>F=2</code> affiche le listing sous
-      forme de table HTML avec en-têtes de colonnes contenant des liens
-      hyper-textes (FancyIndexed)</li>
-
-      <li><code>V=0</code> désactive le tri en fonction de la
-      version</li>
-
-      <li class="separate"><code>V=1</code> active le tri en fonction de
-      la version</li>
-
-      <li><code>P=<var>modèle</var></code> n'affiche que les fichiers
-      correspondant au <var>modèle</var> spécifié</li>
-    </ul>
-
-    <p>Notez que l'argument 'P' (pour Pattern) n'est testé
-    qu'<em>après</em> que les directives habituelles <code class="directive"><a href="#indexignore">IndexIgnore</a></code> ont été traitées,
-    et que tous les noms de fichiers sont encore assujettis aux mêmes
-    critères que pour tout autre listing auto-indexé. L'interpréteur
-    d'arguments de requête de <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> s'arrête
-    immédiatement s'il rencontre une option non reconnue. Les arguments
-    de requête doivent être bien formés, selon la table ci-dessus.</p>
-
-    <p>Les options de requêtes sont illustrées par l'exemple ci-dessous,
-    qui peut être copié et collé dans un fichier header.html. Notez que
-    l'argument inconnu "X", pour le bouton submit, est introduit en
-    dernier afin de s'assurer que tous les arguments ont été
-    interprétés avant que mod_autoindex ne rencontre l'entrée X=Go.</p>
-
-    <div class="example"><p><code>
-      &lt;form action="" method="get"&gt;<br />
-      <span class="indent">
-        Montre moi une &lt;select name="F"&gt;<br />
-        <span class="indent">
-          &lt;option value="0"&gt; liste simple&lt;/option&gt;<br />
-          &lt;option value="1" selected="selected"&gt; liste avec
-         en-têtes&lt;/option&gt;<br />
-          &lt;option value="2"&gt; liste avec en-tête sous forme de
-         table&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        triée par &lt;select name="C"&gt;<br />
-        <span class="indent">
-          &lt;option value="N" selected="selected"&gt; nom&lt;/option&gt;<br />
-          &lt;option value="M"&gt; date de modification&lt;/option&gt;<br />
-          &lt;option value="S"&gt; taille&lt;/option&gt;<br />
-          &lt;option value="D"&gt; description&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="O"&gt;<br />
-        <span class="indent">
-          &lt;option value="A" selected="selected"&gt; croissant&lt;/option&gt;<br />
-          &lt;option value="D"&gt; décroissant&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="V"&gt;<br />
-        <span class="indent">
-          &lt;option value="0" selected="selected"&gt; dans l'ordre
-         normal&lt;/option&gt;<br />
-          &lt;option value="1"&gt; en fonction de la version&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        correspondant à &lt;input type="text" name="P" value="*" /&gt;<br />
-        &lt;input type="submit" name="X" value="Go" /&gt;<br />
-      </span>
-      &lt;/form&gt;
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="addalt" id="addalt">Directive</a> <a name="AddAlt" id="AddAlt">AddAlt</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Texte optionnel à afficher à la place d'un icône pour un
@@ -1099,6 +990,115 @@ ReadmeName /include/FOOTER.html</pre>
     <p>Voir aussi la directive <code class="directive"><a href="#headername">HeaderName</a></code>, où cette fonctionnalité est décrite plus en
     détails.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="query" id="query">Arguments de la requête d'autoindexation</a></h2>
+    
+
+    <p>La chaîne de paramètres de la requête peut contenir de nombreux
+    arguments permettant dans une certaine mesure au client de contrôler
+    l'ordre de l'index du répertoire, ainsi que la liste des fichiers à
+    afficher. Si vous souhaitez désactiver cette fonctionnalité,
+    utilisez l'option <code><a href="#indexoptions.ignoreclient">IndexOptions
+    IgnoreClient</a></code>.</p>
+
+    <p>Les en-têtes de tri des colonnes eux-mêmes sont des hyper-liens
+    auto-référant qui ajoutent les options de tri à la requête énumérées
+    ci-dessous qui peuvent être ajoutées à toute requête concernant la
+    ressource répertoire.</p>
+
+    <ul>
+      <li><code>C=N</code> trie l'affichage en fonction du nom de
+      fichier</li>
+
+      <li><code>C=M</code> trie l'affichage en fonction de la date de
+      dernière modification, puis du nom de fichier</li>
+
+      <li><code>C=S</code> trie l'affichage en fonction de la taille,
+      puis du nom de fichier</li>
+
+      <li class="separate"><code>C=D</code> trie l'affichage en fonction
+      de la description, puis du nom de fichier</li>
+
+      <li><code>O=A</code> trie l'affichage selon l'ordre croissant</li>
+
+      <li class="separate"><code>O=D</code> trie l'affichage selon
+      l'ordre décroissant</li>
+
+      <li><code>F=0</code> affiche le listing sous la forme d'une simple
+      liste (sans FancyIndex)</li>
+
+      <li><code>F=1</code> affiche le listing avec en-têtes de colonnes
+      sous forme de liens hyper-textes (FancyIndexed)</li>
+
+      <li class="separate"><code>F=2</code> affiche le listing sous
+      forme de table HTML avec en-têtes de colonnes contenant des liens
+      hyper-textes (FancyIndexed)</li>
+
+      <li><code>V=0</code> désactive le tri en fonction de la
+      version</li>
+
+      <li class="separate"><code>V=1</code> active le tri en fonction de
+      la version</li>
+
+      <li><code>P=<var>modèle</var></code> n'affiche que les fichiers
+      correspondant au <var>modèle</var> spécifié</li>
+    </ul>
+
+    <p>Notez que l'argument 'P' (pour Pattern) n'est testé
+    qu'<em>après</em> que les directives habituelles <code class="directive"><a href="#indexignore">IndexIgnore</a></code> ont été traitées,
+    et que tous les noms de fichiers sont encore assujettis aux mêmes
+    critères que pour tout autre listing auto-indexé. L'interpréteur
+    d'arguments de requête de <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> s'arrête
+    immédiatement s'il rencontre une option non reconnue. Les arguments
+    de requête doivent être bien formés, selon la table ci-dessus.</p>
+
+    <p>Les options de requêtes sont illustrées par l'exemple ci-dessous,
+    qui peut être copié et collé dans un fichier header.html. Notez que
+    l'argument inconnu "X", pour le bouton submit, est introduit en
+    dernier afin de s'assurer que tous les arguments ont été
+    interprétés avant que mod_autoindex ne rencontre l'entrée X=Go.</p>
+
+    <div class="example"><p><code>
+      &lt;form action="" method="get"&gt;<br />
+      <span class="indent">
+        Montre moi une &lt;select name="F"&gt;<br />
+        <span class="indent">
+          &lt;option value="0"&gt; liste simple&lt;/option&gt;<br />
+          &lt;option value="1" selected="selected"&gt; liste avec
+         en-têtes&lt;/option&gt;<br />
+          &lt;option value="2"&gt; liste avec en-tête sous forme de
+         table&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        triée par &lt;select name="C"&gt;<br />
+        <span class="indent">
+          &lt;option value="N" selected="selected"&gt; nom&lt;/option&gt;<br />
+          &lt;option value="M"&gt; date de modification&lt;/option&gt;<br />
+          &lt;option value="S"&gt; taille&lt;/option&gt;<br />
+          &lt;option value="D"&gt; description&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="O"&gt;<br />
+        <span class="indent">
+          &lt;option value="A" selected="selected"&gt; croissant&lt;/option&gt;<br />
+          &lt;option value="D"&gt; décroissant&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="V"&gt;<br />
+        <span class="indent">
+          &lt;option value="0" selected="selected"&gt; dans l'ordre
+         normal&lt;/option&gt;<br />
+          &lt;option value="1"&gt; en fonction de la version&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        correspondant à &lt;input type="text" name="P" value="*" /&gt;<br />
+        &lt;input type="submit" name="X" value="Go" /&gt;<br />
+      </span>
+      &lt;/form&gt;
+    </code></p></div>
+
 </div>
 </div>
 <div class="bottomlang">
index 54334c68d6c0f5e4fa79d5da90c467236a909f1f..e0845fe2bcd1c2bfe2265815e8f9ba4dba200fd9 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex リクエストクエリー引数</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="query" id="query">Autoindex リクエストクエリー引数</a></h2>
-    
-
-    <p>Apache 2.0.23 で、
-    コラムソートのためにクエリー引数を再編成して、
-    新しいクエリーオプションのグループを導入しました。
-    出力に対するクライアントのすべての制御を効率的に抹消
-    できるように、
-    <code><a href="#indexoptions.ignoreclient">IndexOptions
-    IgnoreClient</a></code> が導入されました。</p>
-
-    <p>コラムソートのヘッダそれ自体が、
-    下記のソートクエリーオプションを付加する
-    自分自身を参照するリンクです。
-    下記のオプションのどれでも、
-    ディレクトリリソースへのリクエストに加えることができます。</p>
-
-    <ul>
-      <li><code>C=N</code> は、ファイル名でソートします。</li>
-
-      <li><code>C=M</code> は、更新日時、
-      ディレクトリ、ファイル名の順でソートします。</li>
-
-      <li><code>C=S</code> は、サイズ、
-      ディレクトリ、ファイル名の順でソートします。</li>
-
-      <li class="separate"><code>C=D</code> は、説明、
-      ディレクトリ、ファイル名の順でソートします。</li>
-
-      <li><code>O=A</code> は、昇順で表をソートします。</li>
-
-      <li class="separate"><code>O=D</code> は、降順で表をソートします。</li>
-
-      <li><code>F=0</code> は、単純な表の書式にします。
-      (FancyIndex ではありません。)</li>
-
-      <li><code>F=1</code> は、FancyIndex 
-      表示の表の書式にします。</li>
-
-      <li><code>F=2</code> は、表を HTML 
-      のテーブルを使った FancyIndex の書式にします。</li>
-
-      <li><code>V=0</code> 
-      は、バージョンによるソートを無効にします。</li>
-
-      <li class="separate"><code>V=1</code> 
-      は、バージョンによるソートを有効にします。</li>
-
-      <li><code>P=<var>pattern</var></code> 
-      は、与えられた <var>pattern</var>
-      に適合したファイルのみを表示します。</li>
-    </ul>
-
-    <p>"P (パターンの P)" クエリー引数は、
-    通常の <code class="directive"><a href="#indexignore">IndexIgnore</a></code>
-    ディレクティブが処理された<em>後</em>に検査され、
-    ファイル名全てが、他の autoindex
-    リスト処理と同様の判定基準下に置かれ続ける
-    ことに注意してください。
-    <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> のクエリー引数パーサ (解析) は、
-    認識不能なオプションにぶつかると即座に停止します。
-    クエリー引数は上の表に従って
-    正しい形式になっていなければなりません。</p>
-
-    <p>下の単純な例は、これらのクエリーオプションを
-    表します。これをそのまま切り取って HEADER.html 
-    ファイルに保存することもできます。
-    mod_autoindex が X=Go 入力にぶつかる前に
-    引数が全て解釈されるように、
-    未知の引数 "X" はリストの最後に置かれています。</p>
-
-    <div class="example"><p><code>
-      &lt;form action="" method="get"&gt;<br />
-      <span class="indent">
-        Show me a &lt;select name="F"&gt;<br />
-        <span class="indent">
-          &lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
-          &lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
-          &lt;option value="2"&gt; Table list&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        Sorted by &lt;select name="C"&gt;<br />
-        <span class="indent">
-          &lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
-          &lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
-          &lt;option value="S"&gt; Size&lt;/option&gt;<br />
-          &lt;option value="D"&gt; Description&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="O"&gt;<br />
-        <span class="indent">
-          &lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
-          &lt;option value="D"&gt; Descending&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="V"&gt;<br />
-        <span class="indent">
-          &lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
-          &lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        Matching &lt;input type="text" name="P" value="*" /&gt;<br />
-        &lt;input type="submit" name="X" value="Go" /&gt;<br />
-      </span>
-      &lt;/form&gt;
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイコンの代わりに
@@ -1042,6 +932,116 @@ Name|Date|Size|Description</code></td></tr>
     <p>より詳細にまでこの挙動について記述している <code class="directive"><a href="#headername">HeaderName</a></code>
     もご覧下さい。</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="query" id="query">Autoindex リクエストクエリー引数</a></h2>
+    
+
+    <p>Apache 2.0.23 で、
+    コラムソートのためにクエリー引数を再編成して、
+    新しいクエリーオプションのグループを導入しました。
+    出力に対するクライアントのすべての制御を効率的に抹消
+    できるように、
+    <code><a href="#indexoptions.ignoreclient">IndexOptions
+    IgnoreClient</a></code> が導入されました。</p>
+
+    <p>コラムソートのヘッダそれ自体が、
+    下記のソートクエリーオプションを付加する
+    自分自身を参照するリンクです。
+    下記のオプションのどれでも、
+    ディレクトリリソースへのリクエストに加えることができます。</p>
+
+    <ul>
+      <li><code>C=N</code> は、ファイル名でソートします。</li>
+
+      <li><code>C=M</code> は、更新日時、
+      ディレクトリ、ファイル名の順でソートします。</li>
+
+      <li><code>C=S</code> は、サイズ、
+      ディレクトリ、ファイル名の順でソートします。</li>
+
+      <li class="separate"><code>C=D</code> は、説明、
+      ディレクトリ、ファイル名の順でソートします。</li>
+
+      <li><code>O=A</code> は、昇順で表をソートします。</li>
+
+      <li class="separate"><code>O=D</code> は、降順で表をソートします。</li>
+
+      <li><code>F=0</code> は、単純な表の書式にします。
+      (FancyIndex ではありません。)</li>
+
+      <li><code>F=1</code> は、FancyIndex 
+      表示の表の書式にします。</li>
+
+      <li><code>F=2</code> は、表を HTML 
+      のテーブルを使った FancyIndex の書式にします。</li>
+
+      <li><code>V=0</code> 
+      は、バージョンによるソートを無効にします。</li>
+
+      <li class="separate"><code>V=1</code> 
+      は、バージョンによるソートを有効にします。</li>
+
+      <li><code>P=<var>pattern</var></code> 
+      は、与えられた <var>pattern</var>
+      に適合したファイルのみを表示します。</li>
+    </ul>
+
+    <p>"P (パターンの P)" クエリー引数は、
+    通常の <code class="directive"><a href="#indexignore">IndexIgnore</a></code>
+    ディレクティブが処理された<em>後</em>に検査され、
+    ファイル名全てが、他の autoindex
+    リスト処理と同様の判定基準下に置かれ続ける
+    ことに注意してください。
+    <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> のクエリー引数パーサ (解析) は、
+    認識不能なオプションにぶつかると即座に停止します。
+    クエリー引数は上の表に従って
+    正しい形式になっていなければなりません。</p>
+
+    <p>下の単純な例は、これらのクエリーオプションを
+    表します。これをそのまま切り取って HEADER.html 
+    ファイルに保存することもできます。
+    mod_autoindex が X=Go 入力にぶつかる前に
+    引数が全て解釈されるように、
+    未知の引数 "X" はリストの最後に置かれています。</p>
+
+    <div class="example"><p><code>
+      &lt;form action="" method="get"&gt;<br />
+      <span class="indent">
+        Show me a &lt;select name="F"&gt;<br />
+        <span class="indent">
+          &lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
+          &lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
+          &lt;option value="2"&gt; Table list&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        Sorted by &lt;select name="C"&gt;<br />
+        <span class="indent">
+          &lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
+          &lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
+          &lt;option value="S"&gt; Size&lt;/option&gt;<br />
+          &lt;option value="D"&gt; Description&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="O"&gt;<br />
+        <span class="indent">
+          &lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
+          &lt;option value="D"&gt; Descending&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="V"&gt;<br />
+        <span class="indent">
+          &lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
+          &lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        Matching &lt;input type="text" name="P" value="*" /&gt;<br />
+        &lt;input type="submit" name="X" value="Go" /&gt;<br />
+      </span>
+      &lt;/form&gt;
+    </code></p></div>
+
 </div>
 </div>
 <div class="bottomlang">
index d0bb17091759229146a8f6d2cb4c293a99edd03e..151c67cf75047a6d7e42b0d4c257a81c02495ea3 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex ¿äû ¾Æ±Ô¸ÕÆ®</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="query" id="query">Autoindex ¿äû ¾Æ±Ô¸ÕÆ®</a></h2>
-    
-
-    <p>¾ÆÆÄÄ¡ 2.0.23´Â ¿­¼ø¼­¿¡ ´ëÇÑ ¿äû ¾Æ±Ô¸ÕÆ®¸¦ Á¤¸®Çϰí,
-    »õ·Î¿î ¿É¼ÇµéÀ» Ãß°¡Çß´Ù. Ãâ·ÂÀ» Å¬¶óÀÌ¾ðÆ®°¡ Á¶ÀýÇÒ ¼ö
-    ¾øµµ·Ï ¸¸µå´Â <code><a href="#indexoptions.ignoreclient">IndexOptions
-    IgnoreClient</a></code> ¿É¼ÇÀÌ Ãß°¡µÇ¾ú´Ù.</p>
-
-    <p>¿­¼ø¼­ À̸§Àº ¾Æ·¡ ³ª¿Â ¼ø¼­ ¿äû ¿É¼ÇÀ» ´õÇÑ ÀÚ±âÂüÁ¶
-    ¸µÅ©´Ù. ¾Æ·¡ ¿É¼ÇÀº µð·ºÅ丮 ÀÚ¿ø¿¡ ´ëÇÑ ¾î¶² ¿äû¿¡µµ
-    »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
-
-    <ul>
-      <li><code>C=N</code>Àº ÆÄÀÏ¸í ¼øÀÌ´Ù</li>
-
-      <li><code>C=M</code>Àº ÃÖ±Ù ¼öÁ¤ÀÏ ¼ø, ±×¸®°í ÆÄÀÏ¸í ¼øÀÌ´Ù</li>
-
-      <li><code>C=S</code>´Â Å©±â ¼ø, ±×¸®°í ÆÄÀÏ¸í ¼øÀÌ´Ù</li>
-
-      <li class="separate"><code>C=D</code>´Â ¼³¸í ¼ø, ±×¸®°í ÆÄÀϸí
-      ¼øÀÌ´Ù</li>
-
-      <li><code>O=A</code>´Â ¿À¸§Â÷¼øÀ¸·Î ¸ñ·ÏÀ» Á¤·ÄÇÑ´Ù</li>
-
-      <li class="separate"><code>O=D</code>´Â ³»¸²Â÷¼øÀ¸·Î ¸ñ·ÏÀ» Á¤·ÄÇÑ´Ù</li>
-
-      <li><code>F=0</code>Àº (FancyIndexed°¡ ¾Æ´Ñ) °£´ÜÇÑ ¸ñ·Ï Çü½ÄÀÌ´Ù</li>
-
-      <li><code>F=1</code>Àº FancyIndexed ¸ñ·Ï Çü½ÄÀÌ´Ù</li>
-
-      <li class="separate"><code>F=2</code>´Â HTMLTable FancyIndexed ¸ñ·Ï
-      Çü½ÄÀÌ´Ù</li>
-
-      <li><code>V=0</code>Àº ¹öÀü ¼øÀ¸·Î Á¤·ÄÇÏÁö ¾Ê´Â´Ù</li>
-
-      <li class="separate"><code>V=1</code>Àº ¹öÀü ¼øÀ¸·Î Á¤·ÄÇÑ´Ù</li>
-
-      <li><code>P=<var>pattern</var></code>Àº ÁÖ¾îÁø <var>pattern</var>¿¡
-      ÇØ´çÇϴ ÆÄÀϸ¸À» ¸ñ·ÏÀ¸·Î ¸¸µç´Ù</li>
-    </ul>
-
-    <p>'P'attern ¾Æ±Ô¸ÕÆ®´Â ÀϹÝÀûÀΠ<code class="directive"><a href="#indexignore">IndexIgnore</a></code> Áö½Ã¾î¸¦ Ã³¸®ÇÑ <em>ÈÄ¿¡</em>
-    °Ë»çÇϱ⶧¹®¿¡, ¸ñ·ÏÀº ´Ù¸¥ autoindex Á¶°ÇÀ» µû¸§À» ÁÖÀÇÇ϶ó.
-    <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>ÀÇ ¿äû ¾Æ±Ô¸ÕÆ®¸¦ ÀоîµéÀ϶§
-    ¾Ë ¼ö ¾ø´Â ¿É¼ÇÀ» ¹ß°ßÇϸ頴õ ÀÌ»ó ÀÐÁö¾Ê´Â´Ù. ¿äû ¾Æ±Ô¸ÕÆ®´Â
-    À§ÀǠǥ¿¡ µû¶ó ¸¸µé¾î¾ß ÇÑ´Ù.</p>
-
-    <p>header.html ÆÄÀÏ¿¡ »ç¿ëÇÒ ¼ö Àִ ¾Æ·¡ °£´ÜÇÑ ¿¹Á¦´Â
-    ÀÌ ¿É¼ÇµéÀ» ¼³¸íÇÑ´Ù. submit ¹öÅÏÀÇ ¾Ë ¼ö ¾ø´Â "X" ¾Æ±Ô¸ÕÆ®´Â
-    mod_autoindex°¡ X=Go Àü±îÁö ¸ðµç ¾Æ±Ô¸ÕÆ®¸¦ ÀоîµéÀÓÀ»
-    È®ÀÎÇϱâÀ§ÇØ ¸¶Áö¸·¿¡ »ç¿ëÇß´Ù.</p>
-
-    <div class="example"><p><code>
-      &lt;form action="" method="get"&gt;<br />
-      <span class="indent">
-        Show me a &lt;select name="F"&gt;<br />
-        <span class="indent">
-          &lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
-          &lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
-          &lt;option value="2"&gt; Table list&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        Sorted by &lt;select name="C"&gt;<br />
-        <span class="indent">
-          &lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
-          &lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
-          &lt;option value="S"&gt; Size&lt;/option&gt;<br />
-          &lt;option value="D"&gt; Description&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="O"&gt;<br />
-        <span class="indent">
-          &lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
-          &lt;option value="D"&gt; Descending&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        &lt;select name="V"&gt;<br />
-        <span class="indent">
-          &lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
-          &lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
-        </span>
-        &lt;/select&gt;<br />
-        Matching &lt;input type="text" name="P" value="*" /&gt;<br />
-        &lt;input type="submit" name="X" value="Go" /&gt;<br />
-      </span>
-      &lt;/form&gt;
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ÆÄÀϸíÀ¸·Î ¼±ÅÃÇÑ ¾ÆÀÌÄÜ´ë½Å »ç¿ëÇÒ ÆÄÀÏ ¼³¸í±Û</td></tr>
@@ -854,6 +763,97 @@ Name|Date|Size|Description</code></td></tr>
 
     <p>ÀÌ µ¿ÀÛÀ» ÀÚ¼¼È÷ ¼³¸íÇÑ <code class="directive"><a href="#headername">HeaderName</a></code>µµ Âü°íÇ϶ó.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="query" id="query">Autoindex ¿äû ¾Æ±Ô¸ÕÆ®</a></h2>
+    
+
+    <p>¾ÆÆÄÄ¡ 2.0.23´Â ¿­¼ø¼­¿¡ ´ëÇÑ ¿äû ¾Æ±Ô¸ÕÆ®¸¦ Á¤¸®Çϰí,
+    »õ·Î¿î ¿É¼ÇµéÀ» Ãß°¡Çß´Ù. Ãâ·ÂÀ» Å¬¶óÀÌ¾ðÆ®°¡ Á¶ÀýÇÒ ¼ö
+    ¾øµµ·Ï ¸¸µå´Â <code><a href="#indexoptions.ignoreclient">IndexOptions
+    IgnoreClient</a></code> ¿É¼ÇÀÌ Ãß°¡µÇ¾ú´Ù.</p>
+
+    <p>¿­¼ø¼­ À̸§Àº ¾Æ·¡ ³ª¿Â ¼ø¼­ ¿äû ¿É¼ÇÀ» ´õÇÑ ÀÚ±âÂüÁ¶
+    ¸µÅ©´Ù. ¾Æ·¡ ¿É¼ÇÀº µð·ºÅ丮 ÀÚ¿ø¿¡ ´ëÇÑ ¾î¶² ¿äû¿¡µµ
+    »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
+
+    <ul>
+      <li><code>C=N</code>Àº ÆÄÀÏ¸í ¼øÀÌ´Ù</li>
+
+      <li><code>C=M</code>Àº ÃÖ±Ù ¼öÁ¤ÀÏ ¼ø, ±×¸®°í ÆÄÀÏ¸í ¼øÀÌ´Ù</li>
+
+      <li><code>C=S</code>´Â Å©±â ¼ø, ±×¸®°í ÆÄÀÏ¸í ¼øÀÌ´Ù</li>
+
+      <li class="separate"><code>C=D</code>´Â ¼³¸í ¼ø, ±×¸®°í ÆÄÀϸí
+      ¼øÀÌ´Ù</li>
+
+      <li><code>O=A</code>´Â ¿À¸§Â÷¼øÀ¸·Î ¸ñ·ÏÀ» Á¤·ÄÇÑ´Ù</li>
+
+      <li class="separate"><code>O=D</code>´Â ³»¸²Â÷¼øÀ¸·Î ¸ñ·ÏÀ» Á¤·ÄÇÑ´Ù</li>
+
+      <li><code>F=0</code>Àº (FancyIndexed°¡ ¾Æ´Ñ) °£´ÜÇÑ ¸ñ·Ï Çü½ÄÀÌ´Ù</li>
+
+      <li><code>F=1</code>Àº FancyIndexed ¸ñ·Ï Çü½ÄÀÌ´Ù</li>
+
+      <li class="separate"><code>F=2</code>´Â HTMLTable FancyIndexed ¸ñ·Ï
+      Çü½ÄÀÌ´Ù</li>
+
+      <li><code>V=0</code>Àº ¹öÀü ¼øÀ¸·Î Á¤·ÄÇÏÁö ¾Ê´Â´Ù</li>
+
+      <li class="separate"><code>V=1</code>Àº ¹öÀü ¼øÀ¸·Î Á¤·ÄÇÑ´Ù</li>
+
+      <li><code>P=<var>pattern</var></code>Àº ÁÖ¾îÁø <var>pattern</var>¿¡
+      ÇØ´çÇϴ ÆÄÀϸ¸À» ¸ñ·ÏÀ¸·Î ¸¸µç´Ù</li>
+    </ul>
+
+    <p>'P'attern ¾Æ±Ô¸ÕÆ®´Â ÀϹÝÀûÀΠ<code class="directive"><a href="#indexignore">IndexIgnore</a></code> Áö½Ã¾î¸¦ Ã³¸®ÇÑ <em>ÈÄ¿¡</em>
+    °Ë»çÇϱ⶧¹®¿¡, ¸ñ·ÏÀº ´Ù¸¥ autoindex Á¶°ÇÀ» µû¸§À» ÁÖÀÇÇ϶ó.
+    <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code>ÀÇ ¿äû ¾Æ±Ô¸ÕÆ®¸¦ ÀоîµéÀ϶§
+    ¾Ë ¼ö ¾ø´Â ¿É¼ÇÀ» ¹ß°ßÇϸ頴õ ÀÌ»ó ÀÐÁö¾Ê´Â´Ù. ¿äû ¾Æ±Ô¸ÕÆ®´Â
+    À§ÀǠǥ¿¡ µû¶ó ¸¸µé¾î¾ß ÇÑ´Ù.</p>
+
+    <p>header.html ÆÄÀÏ¿¡ »ç¿ëÇÒ ¼ö Àִ ¾Æ·¡ °£´ÜÇÑ ¿¹Á¦´Â
+    ÀÌ ¿É¼ÇµéÀ» ¼³¸íÇÑ´Ù. submit ¹öÅÏÀÇ ¾Ë ¼ö ¾ø´Â "X" ¾Æ±Ô¸ÕÆ®´Â
+    mod_autoindex°¡ X=Go Àü±îÁö ¸ðµç ¾Æ±Ô¸ÕÆ®¸¦ ÀоîµéÀÓÀ»
+    È®ÀÎÇϱâÀ§ÇØ ¸¶Áö¸·¿¡ »ç¿ëÇß´Ù.</p>
+
+    <div class="example"><p><code>
+      &lt;form action="" method="get"&gt;<br />
+      <span class="indent">
+        Show me a &lt;select name="F"&gt;<br />
+        <span class="indent">
+          &lt;option value="0"&gt; Plain list&lt;/option&gt;<br />
+          &lt;option value="1" selected="selected"&gt; Fancy list&lt;/option&gt;<br />
+          &lt;option value="2"&gt; Table list&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        Sorted by &lt;select name="C"&gt;<br />
+        <span class="indent">
+          &lt;option value="N" selected="selected"&gt; Name&lt;/option&gt;<br />
+          &lt;option value="M"&gt; Date Modified&lt;/option&gt;<br />
+          &lt;option value="S"&gt; Size&lt;/option&gt;<br />
+          &lt;option value="D"&gt; Description&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="O"&gt;<br />
+        <span class="indent">
+          &lt;option value="A" selected="selected"&gt; Ascending&lt;/option&gt;<br />
+          &lt;option value="D"&gt; Descending&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        &lt;select name="V"&gt;<br />
+        <span class="indent">
+          &lt;option value="0" selected="selected"&gt; in Normal order&lt;/option&gt;<br />
+          &lt;option value="1"&gt; in Version order&lt;/option&gt;<br />
+        </span>
+        &lt;/select&gt;<br />
+        Matching &lt;input type="text" name="P" value="*" /&gt;<br />
+        &lt;input type="submit" name="X" value="Go" /&gt;<br />
+      </span>
+      &lt;/form&gt;
+    </code></p></div>
+
 </div>
 </div>
 <div class="bottomlang">
index c3e265287b5ad0ec21e494dc2c5a0d665fb7bf3b..4248056d50fa254a70841816bda1fcf3292ed549 100644 (file)
@@ -97,98 +97,6 @@ yaptığı gibi dizin içeriğini listeler.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#query">Sütun Sıralamada Sorgu Seçenekleri</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="query" id="query">Sütun Sıralamada Sorgu Seçenekleri</a></h2>
-    
-
-    <p>İstemciye, dizin içeriğini listelerken neleri hangi sırada
-      listeleyeceğini belirleyebilmesi için içerik üzerinde biraz denetim
-      sağlayabileceği çeşitli sorgu dizgesi bileşenleri sağlanmıştır.
-      Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için
-      <code class="directive"><a href="#indexoptions">IndexOptions</a></code> yönergesinin
-      <code><a href="#indexoptions.ignoreclient">IgnoreClient</a></code>
-      seçeneği kullanılabilir.</p>
-
-    <p>Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper
-      bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu
-      seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.</p>
-
-    <ul>
-      <li><code>C=N</code> dizini dosya adına göre sıralar</li>
-
-      <li><code>C=M</code> dizini son değişiklik zamanına ve ardından dosya
-        ismine göre sıralar.</li>
-
-      <li><code>C=S</code> dizini boyuta ve ardından dosya adına göre
-        sıralar</li>
-
-      <li class="separate"><code>C=D</code> dizini açıklamaya ve ardından
-        dosya adına göre sıralar.</li>
-
-      <li><code>O=A</code> artan sıralama uygulanır.</li>
-
-      <li class="separate"><code>O=D</code>  azalan sıralama uygulanır.</li>
-
-      <li><code>F=0</code> listeleme basit listeleme biçiminde yapılır
-        (<code>FancyIndexing</code> seçeneği ile etkinleştirilen biçimde
-        değil)</li>
-
-      <li><code>F=1</code> listeleme <code>FancyIndexing</code> seçeneği ile
-        etkinleştirilen biçimde yapılır</li>
-
-      <li class="separate"><code>F=2</code> listeleme <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> ve
-        <code><a href="#indexoptions.htmltable">HTMLTable</a></code> seçeneği
-        ile etkinleştirilen biçimde yapılır.</li>
-
-      <li><code>V=0</code> sürüme göre sıralama iptal edilir.</li>
-
-      <li class="separate"><code>V=1</code> sürüme göre sıralama etkin
-        kılınır.</li>
-
-      <li><code>P=<var>kalıp</var></code> sadece belirtilen
-        <code><em>kalıp</em></code> ile eşleşen dosyalar istelenir.</li>
-    </ul>
-
-    <p><code>P=<var>kalıp</var></code> sorgu seçeneğinin normalde <code class="directive"><a href="#indexignore">IndexIgnore</a></code> yönergesi işleme
-      sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer
-      kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine
-      dikkat ediniz. <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> modülündeki Sorgu
-      Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz
-      işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi
-      biçimli olmak zorundadır.</p>
-
-    <p>Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir.
-      Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine
-      dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra
-      <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> tarafından son argüman olarak ele
-      alınacak ve çözümleme işlemi o noktada duracaktır.</p>
-
-    <div class="example"><pre>&lt;form action="" method="get"&gt;
-  &lt;input type="text" name="P" value="*" /&gt; ile eşleşen
-  &lt;select name="C"&gt;
-    &lt;option value="N" selected="selected"&gt;isme&lt;/option&gt;
-    &lt;option value="M"&gt; değişiklik tarihine&lt;/option&gt;
-    &lt;option value="S"&gt; boyuta&lt;/option&gt;
-    &lt;option value="D"&gt; açıklamaya&lt;/option&gt;
-  &lt;/select&gt; göre
-  &lt;select name="O"&gt;
-    &lt;option value="A" selected="selected"&gt; artan&lt;/option&gt;
-    &lt;option value="D"&gt; azalan&lt;/option&gt;
-  &lt;/select&gt;
-  &lt;select name="V"&gt;
-    &lt;option value="0" selected="selected"&gt;normal&lt;/option&gt;
-    &lt;option value="1"&gt; sürümlü&lt;/option&gt;
-  &lt;/select&gt; sıralamayla bir
-  &lt;select name="F"&gt;
-    &lt;option value="0"&gt; basit liste&lt;/option&gt;
-    &lt;option value="1" selected="selected"&gt; süslü liste&lt;/option&gt;
-    &lt;option value="2"&gt; tablolu liste&lt;/option&gt;
-  &lt;/select&gt;
-  &lt;input type="submit" name="X" value="Göster" /&gt;
-&lt;/form&gt;</pre></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddAlt" id="AddAlt">AddAlt</a> <a name="addalt" id="addalt">Yönergesi</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Dosyaya göre seçilen simgenin yerinde gösterilecek metni belirler.
@@ -1014,6 +922,98 @@ ReadmeName /include/FOOTER.html</pre>
     <p>Ayrıca bu davranışın daha ayrıntılı ele alındığı <code class="directive"><a href="#headername">HeaderName</a></code> yönergesine de
       bakınız.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="query" id="query">Sütun Sıralamada Sorgu Seçenekleri</a></h2>
+    
+
+    <p>İstemciye, dizin içeriğini listelerken neleri hangi sırada
+      listeleyeceğini belirleyebilmesi için içerik üzerinde biraz denetim
+      sağlayabileceği çeşitli sorgu dizgesi bileşenleri sağlanmıştır.
+      Çıktı üzerinde kullanıcı denetimini tamamen ortadan kaldırmak için
+      <code class="directive"><a href="#indexoptions">IndexOptions</a></code> yönergesinin
+      <code><a href="#indexoptions.ignoreclient">IgnoreClient</a></code>
+      seçeneği kullanılabilir.</p>
+
+    <p>Sütun sıralama başlıklarının her biri hedefi kendisi olan birer hiper
+      bağ olup aşağıda sıralanan sorgu seçeneklerini kullanırlar. Bu
+      seçeneklerin her biri her dizin içerik listesi isteğine eklenebilir.</p>
+
+    <ul>
+      <li><code>C=N</code> dizini dosya adına göre sıralar</li>
+
+      <li><code>C=M</code> dizini son değişiklik zamanına ve ardından dosya
+        ismine göre sıralar.</li>
+
+      <li><code>C=S</code> dizini boyuta ve ardından dosya adına göre
+        sıralar</li>
+
+      <li class="separate"><code>C=D</code> dizini açıklamaya ve ardından
+        dosya adına göre sıralar.</li>
+
+      <li><code>O=A</code> artan sıralama uygulanır.</li>
+
+      <li class="separate"><code>O=D</code>  azalan sıralama uygulanır.</li>
+
+      <li><code>F=0</code> listeleme basit listeleme biçiminde yapılır
+        (<code>FancyIndexing</code> seçeneği ile etkinleştirilen biçimde
+        değil)</li>
+
+      <li><code>F=1</code> listeleme <code>FancyIndexing</code> seçeneği ile
+        etkinleştirilen biçimde yapılır</li>
+
+      <li class="separate"><code>F=2</code> listeleme <code><a href="#indexoptions.fancyindexing">FancyIndexing</a></code> ve
+        <code><a href="#indexoptions.htmltable">HTMLTable</a></code> seçeneği
+        ile etkinleştirilen biçimde yapılır.</li>
+
+      <li><code>V=0</code> sürüme göre sıralama iptal edilir.</li>
+
+      <li class="separate"><code>V=1</code> sürüme göre sıralama etkin
+        kılınır.</li>
+
+      <li><code>P=<var>kalıp</var></code> sadece belirtilen
+        <code><em>kalıp</em></code> ile eşleşen dosyalar istelenir.</li>
+    </ul>
+
+    <p><code>P=<var>kalıp</var></code> sorgu seçeneğinin normalde <code class="directive"><a href="#indexignore">IndexIgnore</a></code> yönergesi işleme
+      sokulduktan sonra değerlendirildiğine ve dosya isimlerinin diğer
+      kendiliğinden içerik listeleme koşullarının konusu olmaya devam ettiğine
+      dikkat ediniz. <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> modülündeki Sorgu
+      Seçenekleri çözümleyicisi tanımadığı bir seçeneğe rastlar rastlamaz
+      işlemi durdurur. Sorgu Seçenekleri yukarıda belirtilene uygun olarak iyi
+      biçimli olmak zorundadır.</p>
+
+    <p>Aşağıdaki basit örnekte sorgu seçeneklerinin kullanımı gösterilmiştir.
+      Son satırda bulunan "submit" düğmesindeki tanınmayan "X" girdisine
+      dikkat ediniz. "X=Göster" girdisi tüm seçenekler işlendikten sonra
+      <code class="module"><a href="../mod/mod_autoindex.html">mod_autoindex</a></code> tarafından son argüman olarak ele
+      alınacak ve çözümleme işlemi o noktada duracaktır.</p>
+
+    <div class="example"><pre>&lt;form action="" method="get"&gt;
+  &lt;input type="text" name="P" value="*" /&gt; ile eşleşen
+  &lt;select name="C"&gt;
+    &lt;option value="N" selected="selected"&gt;isme&lt;/option&gt;
+    &lt;option value="M"&gt; değişiklik tarihine&lt;/option&gt;
+    &lt;option value="S"&gt; boyuta&lt;/option&gt;
+    &lt;option value="D"&gt; açıklamaya&lt;/option&gt;
+  &lt;/select&gt; göre
+  &lt;select name="O"&gt;
+    &lt;option value="A" selected="selected"&gt; artan&lt;/option&gt;
+    &lt;option value="D"&gt; azalan&lt;/option&gt;
+  &lt;/select&gt;
+  &lt;select name="V"&gt;
+    &lt;option value="0" selected="selected"&gt;normal&lt;/option&gt;
+    &lt;option value="1"&gt; sürümlü&lt;/option&gt;
+  &lt;/select&gt; sıralamayla bir
+  &lt;select name="F"&gt;
+    &lt;option value="0"&gt; basit liste&lt;/option&gt;
+    &lt;option value="1" selected="selected"&gt; süslü liste&lt;/option&gt;
+    &lt;option value="2"&gt; tablolu liste&lt;/option&gt;
+  &lt;/select&gt;
+  &lt;input type="submit" name="X" value="Göster" /&gt;
+&lt;/form&gt;</pre></div>
+
 </div>
 </div>
 <div class="bottomlang">
index f696509c85f59e1cbf36a732ed6ddef11bcdf35a..04aa79eecd83f102351f48e5c1b6a6b30ba9b7b5 100644 (file)
@@ -78,7 +78,6 @@
 <ul class="seealso">
 <li><a href="../filter.html">Filters</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="BufferSize" id="BufferSize">BufferSize</a> <a name="buffersize" id="buffersize">Directive</a></h2>
 <table class="directive">
@@ -95,6 +94,7 @@
     The default is 128 kilobytes.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_buffer.html" title="English">&nbsp;en&nbsp;</a> |
index 3184b17a9f603a9c8f549e04b3efdfcc3f1889af..7e49a67f6a8dcd8f2f107594c7a1220e69712bd2 100644 (file)
@@ -81,7 +81,6 @@ d'Apache</td></tr></table>
 <ul class="seealso">
 <li><a href="../filter.html">Les filtres</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="buffersize" id="buffersize">Directive</a> <a name="BufferSize" id="BufferSize">BufferSize</a></h2>
 <table class="directive">
@@ -98,6 +97,7 @@ d'Apache</td></tr></table>
     128 ko.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_buffer.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 429137e164fd2d079e1ad670163d9770f71fd3fa..d0a2a6000a1a06cd1b1a2c15be4303ea8f1f11c1 100644 (file)
 <li><a href="../caching.html">Caching Guide</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="related" id="related">Related Modules and Directives</a></h2>
-    <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
-    <div class="example"><h3>Sample httpd.conf</h3><pre class="prettyprint lang-config">#
-# Sample Cache Configuration
-#
-LoadModule cache_module modules/mod_cache.so
-&lt;IfModule mod_cache.c&gt;
-    LoadModule cache_disk_module modules/mod_cache_disk.so
-    &lt;IfModule mod_cache_disk.c&gt;
-        CacheRoot "c:/cacheroot"
-        CacheEnable disk  "/"
-        CacheDirLevels 5
-        CacheDirLength 3
-    &lt;/IfModule&gt;
-
-    # When acting as a proxy, don't cache the list of security updates
-    CacheDisable "http://security.update.server/update-list/"
-&lt;/IfModule&gt;</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
-  <p>When a cached entry becomes stale, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will submit
-  a conditional request to the backend, which is expected to confirm whether the
-  cached entry is still fresh, and send an updated entity if not.</p>
-  <p>A small but finite amount of time exists between the time the cached entity
-  becomes stale, and the time the stale entity is fully refreshed. On a busy
-  server, a significant number of requests might arrive during this time, and
-  cause a <strong>thundering herd</strong> of requests to strike the backend
-  suddenly and unpredictably.</p>
-  <p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
-  directive can be used to define a directory in which locks are created for
-  URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
-  by other requests to either suppress an attempt to cache (someone else has
-  gone to fetch the entity), or to indicate that a stale entry is being refreshed
-  (stale content will be returned in the mean time).
-  </p>
-  <h3>Initial caching of an entry</h3>
-    
-    <p>When an entity is cached for the first time, a lock will be created for the
-    entity until the response has been fully cached. During the lifetime of the
-    lock, the cache will suppress the second and subsequent attempt to cache the
-    same entity. While this doesn't hold back the thundering herd, it does stop
-    the cache attempting to cache the same entity multiple times simultaneously.
-    </p>
-  
-  <h3>Refreshment of a stale entry</h3>
-    
-    <p>When an entity reaches its freshness lifetime and becomes stale, a lock
-    will be created for the entity until the response has either been confirmed as
-    still fresh, or replaced by the backend. During the lifetime of the lock, the
-    second and subsequent incoming request will cause stale data to be returned,
-    and the thundering herd is kept at bay.</p>
-  
-  <h3>Locks and Cache-Control: no-cache</h3>
-    
-    <p>Locks are used as a <strong>hint only</strong> to enable the cache to be
-    more gentle on backend servers, however the lock can be overridden if necessary.
-    If the client sends a request with a Cache-Control header forcing a reload, any
-    lock that may be present will be ignored, and the client's request will be
-    honored immediately and the cached entry refreshed.</p>
-    <p>As a further safety mechanism, locks have a configurable maximum age.
-    Once this age has been reached, the lock is removed, and a new request is
-    given the opportunity to create a new lock. This maximum age can be set using
-    the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
-    seconds.
-    </p>
-  
-  <h3>Example configuration</h3>
-    
-    <div class="example"><h3>Enabling the cache lock</h3><pre class="prettyprint lang-config">#
-# Enable the cache lock
-#
-&lt;IfModule mod_cache.c&gt;
-    CacheLock on
-    CacheLockPath "/tmp/mod_cache-lock"
-    CacheLockMaxAge 5
-&lt;/IfModule&gt;</pre>
-</div>
-  
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
-  <p>Under the default mode of cache operation, the cache runs as a quick handler,
-  short circuiting the majority of server processing and offering the highest
-  cache performance available.</p>
-
-  <p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
-  acting as if a free standing RFC 2616 caching proxy had been placed in front of
-  the server.</p>
-
-  <p>While this mode offers the best performance, the administrator may find that
-  under certain circumstances they may want to perform further processing on the
-  request after the request is cached, such as to inject personalisation into the
-  cached page, or to apply authorisation restrictions to the content. Under these
-  circumstances, an administrator is often forced to place independent reverse
-  proxy servers either behind or in front of the caching server to achieve this.</p>
-
-  <p>To solve this problem the <code class="directive"><a href="#cachequickhandler">CacheQuickHandler
-  </a></code> directive can be set to <strong>off</strong>, and the server will
-  process all phases normally handled by a non-cached request, including the
-  <strong>authentication and authorisation</strong> phases.</p>
-
-  <p>In addition, the administrator may optionally specify the <strong>precise point
-  within the filter chain</strong> where caching is to take place by adding the
-  <strong>CACHE</strong> filter to the output filter chain.</p>
-
-  <p>For example, to cache content before applying compression to the response,
-  place the <strong>CACHE</strong> filter before the <strong>DEFLATE</strong>
-  filter as in the example below:</p>
-
-  <pre class="prettyprint lang-config"># Cache content before optional compression
-CacheQuickHandler off
-AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
-
-
-  <p>Another option is to have content cached before personalisation is applied
-  by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
-  example templates containing tags understood by
-  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
-
-  <pre class="prettyprint lang-config"># Cache content before mod_include and mod_deflate
-CacheQuickHandler off
-AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
-
-
-  <p>You may place the <strong>CACHE</strong> filter anywhere you wish within the
-  filter chain. In this example, content is cached after being parsed by
-  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, but before being processed by
-  <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>:</p>
-
-  <pre class="prettyprint lang-config"># Cache content between mod_include and mod_deflate
-CacheQuickHandler off
-AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
-
-
-  <div class="warning"><h3>Warning:</h3>If the location of the
-  <strong>CACHE</strong> filter in the filter chain is changed for any reason,
-  you may need to <strong>flush your cache</strong> to ensure that your data
-  served remains consistent. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> is not in a position
-  to enforce this for you.</div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="status" id="status">Cache Status and Logging</a></h2>
-  <p>Once <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
-  an entity is to be served from cache, the detailed reason for the decision
-  is written to the subprocess environment within the request under the
-  <strong>cache-status</strong> key. This reason can be logged by the
-  <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
-  follows:</p>
-
-  <pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
-
-
-  <p>Based on the caching decision made, the reason is also written to the
-  subprocess environment under one the following four keys, as appropriate:</p>
-
-  <dl>
-    <dt>cache-hit</dt><dd>The response was served from cache.</dd>
-    <dt>cache-revalidate</dt><dd>The response was stale and was successfully
-      revalidated, then served from cache.</dd>
-    <dt>cache-miss</dt><dd>The response was served from the upstream server.</dd>
-    <dt>cache-invalidate</dt><dd>The cached entity was invalidated by a request
-      method other than GET or HEAD.</dd>
-  </dl>
-
-  <p>This makes it possible to support conditional logging of cached requests
-  as per the following example:</p>
-
-  <pre class="prettyprint lang-config">CustomLog "cached-requests.log" common env=cache-hit
-CustomLog "uncached-requests.log" common env=cache-miss
-CustomLog "revalidated-requests.log" common env=cache-revalidate
-CustomLog "invalidated-requests.log" common env=cache-invalidate</pre>
-
-
-  <p>For module authors, a hook called <var>cache_status</var> is available,
-  allowing modules to respond to the caching outcomes above in customised
-  ways.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The default duration to cache a document when no expiry date is specified.</td></tr>
@@ -1044,6 +859,191 @@ CacheStaleOnError on</pre>
 <li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="related" id="related">Related Modules and Directives</a></h2>
+    <table class="related"><tr><th>Related Modules</th><th>Related Directives</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
+    <div class="example"><h3>Sample httpd.conf</h3><pre class="prettyprint lang-config">#
+# Sample Cache Configuration
+#
+LoadModule cache_module modules/mod_cache.so
+&lt;IfModule mod_cache.c&gt;
+    LoadModule cache_disk_module modules/mod_cache_disk.so
+    &lt;IfModule mod_cache_disk.c&gt;
+        CacheRoot "c:/cacheroot"
+        CacheEnable disk  "/"
+        CacheDirLevels 5
+        CacheDirLength 3
+    &lt;/IfModule&gt;
+
+    # When acting as a proxy, don't cache the list of security updates
+    CacheDisable "http://security.update.server/update-list/"
+&lt;/IfModule&gt;</pre>
+</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="thunderingherd" id="thunderingherd">Avoiding the Thundering Herd</a></h2>
+  <p>When a cached entry becomes stale, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> will submit
+  a conditional request to the backend, which is expected to confirm whether the
+  cached entry is still fresh, and send an updated entity if not.</p>
+  <p>A small but finite amount of time exists between the time the cached entity
+  becomes stale, and the time the stale entity is fully refreshed. On a busy
+  server, a significant number of requests might arrive during this time, and
+  cause a <strong>thundering herd</strong> of requests to strike the backend
+  suddenly and unpredictably.</p>
+  <p>To keep the thundering herd at bay, the <code class="directive">CacheLock</code>
+  directive can be used to define a directory in which locks are created for
+  URLs <strong>in flight</strong>. The lock is used as a <strong>hint</strong>
+  by other requests to either suppress an attempt to cache (someone else has
+  gone to fetch the entity), or to indicate that a stale entry is being refreshed
+  (stale content will be returned in the mean time).
+  </p>
+  <h3>Initial caching of an entry</h3>
+    
+    <p>When an entity is cached for the first time, a lock will be created for the
+    entity until the response has been fully cached. During the lifetime of the
+    lock, the cache will suppress the second and subsequent attempt to cache the
+    same entity. While this doesn't hold back the thundering herd, it does stop
+    the cache attempting to cache the same entity multiple times simultaneously.
+    </p>
+  
+  <h3>Refreshment of a stale entry</h3>
+    
+    <p>When an entity reaches its freshness lifetime and becomes stale, a lock
+    will be created for the entity until the response has either been confirmed as
+    still fresh, or replaced by the backend. During the lifetime of the lock, the
+    second and subsequent incoming request will cause stale data to be returned,
+    and the thundering herd is kept at bay.</p>
+  
+  <h3>Locks and Cache-Control: no-cache</h3>
+    
+    <p>Locks are used as a <strong>hint only</strong> to enable the cache to be
+    more gentle on backend servers, however the lock can be overridden if necessary.
+    If the client sends a request with a Cache-Control header forcing a reload, any
+    lock that may be present will be ignored, and the client's request will be
+    honored immediately and the cached entry refreshed.</p>
+    <p>As a further safety mechanism, locks have a configurable maximum age.
+    Once this age has been reached, the lock is removed, and a new request is
+    given the opportunity to create a new lock. This maximum age can be set using
+    the <code class="directive">CacheLockMaxAge</code> directive, and defaults to 5
+    seconds.
+    </p>
+  
+  <h3>Example configuration</h3>
+    
+    <div class="example"><h3>Enabling the cache lock</h3><pre class="prettyprint lang-config">#
+# Enable the cache lock
+#
+&lt;IfModule mod_cache.c&gt;
+    CacheLock on
+    CacheLockPath "/tmp/mod_cache-lock"
+    CacheLockMaxAge 5
+&lt;/IfModule&gt;</pre>
+</div>
+  
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="finecontrol" id="finecontrol">Fine Control with the CACHE Filter</a></h2>
+  <p>Under the default mode of cache operation, the cache runs as a quick handler,
+  short circuiting the majority of server processing and offering the highest
+  cache performance available.</p>
+
+  <p>In this mode, the cache <strong>bolts onto</strong> the front of the server,
+  acting as if a free standing RFC 2616 caching proxy had been placed in front of
+  the server.</p>
+
+  <p>While this mode offers the best performance, the administrator may find that
+  under certain circumstances they may want to perform further processing on the
+  request after the request is cached, such as to inject personalisation into the
+  cached page, or to apply authorisation restrictions to the content. Under these
+  circumstances, an administrator is often forced to place independent reverse
+  proxy servers either behind or in front of the caching server to achieve this.</p>
+
+  <p>To solve this problem the <code class="directive"><a href="#cachequickhandler">CacheQuickHandler
+  </a></code> directive can be set to <strong>off</strong>, and the server will
+  process all phases normally handled by a non-cached request, including the
+  <strong>authentication and authorisation</strong> phases.</p>
+
+  <p>In addition, the administrator may optionally specify the <strong>precise point
+  within the filter chain</strong> where caching is to take place by adding the
+  <strong>CACHE</strong> filter to the output filter chain.</p>
+
+  <p>For example, to cache content before applying compression to the response,
+  place the <strong>CACHE</strong> filter before the <strong>DEFLATE</strong>
+  filter as in the example below:</p>
+
+  <pre class="prettyprint lang-config"># Cache content before optional compression
+CacheQuickHandler off
+AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
+
+
+  <p>Another option is to have content cached before personalisation is applied
+  by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (or another content processing filter). In this
+  example templates containing tags understood by
+  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> are cached before being parsed:</p>
+
+  <pre class="prettyprint lang-config"># Cache content before mod_include and mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
+
+
+  <p>You may place the <strong>CACHE</strong> filter anywhere you wish within the
+  filter chain. In this example, content is cached after being parsed by
+  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>, but before being processed by
+  <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code>:</p>
+
+  <pre class="prettyprint lang-config"># Cache content between mod_include and mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
+
+
+  <div class="warning"><h3>Warning:</h3>If the location of the
+  <strong>CACHE</strong> filter in the filter chain is changed for any reason,
+  you may need to <strong>flush your cache</strong> to ensure that your data
+  served remains consistent. <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> is not in a position
+  to enforce this for you.</div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="status" id="status">Cache Status and Logging</a></h2>
+  <p>Once <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> has made a decision as to whether or not
+  an entity is to be served from cache, the detailed reason for the decision
+  is written to the subprocess environment within the request under the
+  <strong>cache-status</strong> key. This reason can be logged by the
+  <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> directive as
+  follows:</p>
+
+  <pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
+
+
+  <p>Based on the caching decision made, the reason is also written to the
+  subprocess environment under one the following four keys, as appropriate:</p>
+
+  <dl>
+    <dt>cache-hit</dt><dd>The response was served from cache.</dd>
+    <dt>cache-revalidate</dt><dd>The response was stale and was successfully
+      revalidated, then served from cache.</dd>
+    <dt>cache-miss</dt><dd>The response was served from the upstream server.</dd>
+    <dt>cache-invalidate</dt><dd>The cached entity was invalidated by a request
+      method other than GET or HEAD.</dd>
+  </dl>
+
+  <p>This makes it possible to support conditional logging of cached requests
+  as per the following example:</p>
+
+  <pre class="prettyprint lang-config">CustomLog "cached-requests.log" common env=cache-hit
+CustomLog "uncached-requests.log" common env=cache-miss
+CustomLog "revalidated-requests.log" common env=cache-revalidate
+CustomLog "invalidated-requests.log" common env=cache-invalidate</pre>
+
+
+  <p>For module authors, a hook called <var>cache_status</var> is available,
+  allowing modules to respond to the caching outcomes above in customised
+  ways.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_cache.html" title="English">&nbsp;en&nbsp;</a> |
index 106894687c11bb82bf220a10e6fefd57be390188..7760f19a4c8cabd612049a995b7ea3b9d3077341 100644 (file)
 cache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="related" id="related">Modules apparentés et directives</a></h2>
-    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sampleconf" id="sampleconf">Exemple de configuration</a></h2>
-    <div class="example"><h3>Extrait de httpd.conf</h3><pre class="prettyprint lang-config">#
-# Exemple de configuration du cache
-#
-LoadModule cache_module modules/mod_cache.so
-&lt;IfModule mod_cache.c&gt;
-    LoadModule cache_disk_module modules/mod_cache_disk.so
-    &lt;IfModule mod_cache_disk.c&gt;
-        CacheRoot c:/cacheroot
-        CacheEnable disk  /
-        CacheDirLevels 5
-        CacheDirLength 3
-    &lt;/IfModule&gt;
-    
-    # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
-# des mises à jour de sécurité
-    CacheDisable http://security.update.server/update-list/
-&lt;/IfModule&gt;</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="thunderingherd" id="thunderingherd">Eviter une tempête de requête</a></h2>
-  <p>Lorsqu'une entrée du cache est périmée, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
-  soumet une requête conditionnelle au processus d'arrière-plan, qui est
-  censé confirmer la validité de l'entrée du cache, ou dans la négative
-  envoyer une entrée mise à jour.</p>
-  <p>Un court mais non négligeable laps de temps existe entre le moment
-  où l'entrée du cache est périmée, et le moment où elle est mise à
-  jour. Sur un serveur fortement chargé, un certain nombre de requêtes
-  peut arriver pendant ce laps de temps, et provoquer une
-  <strong>tempête</strong> de requêtes susceptibles de saturer le
-  processus d'arrière-plan de manière soudaine et imprédictible.</p>
-  <p>Pour contenir cette tempête, on peut utiliser la directive
-  <code class="directive">CacheLock</code> afin de définir un répertoire où
-  seront créés <strong>à la volée</strong> des verrous pour les URLs.
-  Ces verrous sont utilisés comme autant d'<strong>indications</strong>
-  par les autres requêtes, soit pour empêcher une tentative de mise en
-  cache (un autre processus est en train de récupérer l'entité), soit
-  pour indiquer qu'une entrée périmée est en cours de mise à jour
-  (pendant ce temps, c'est le contenu périmé qui sera renvoyé).
-  </p>
-  <h3>Mise en cache initiale d'une entrée</h3>
-    
-    <p>Lorsqu'une entité est mise en cache pour la première fois, un
-    verrou est créé pour cette entité jusqu'à ce que la réponse ait été
-    entièrement mise en cache. Pendant la durée de vie du verrou, le
-    cache va empêcher une seconde tentative de mise en cache de la même
-    entité. Bien que cela ne suffise pas à contenir la tempête de
-    requêtes, toute tentative de mettre en cache la même entité
-    plusieurs fois simultanément est stoppée.
-    </p>
-  
-  <h3>Mise à jour d'une entrée périmée</h3>
-    
-    <p>Lorsqu'une entrée atteint la limite de sa durée de vie, et
-    devient par conséquent périmée, un verrou est créé pour cette entité
-    jusqu'à ce que la réponse ait été soit confirmée comme encore
-    valide, soit remplacée par le processus d'arrière-plan. Pendant la
-    durée de vie du verrou, une seconde requête entrante va provoquer le
-    renvoi de la donnée périmée, et la tempête de requêtes sera
-    contenue.</p>
-  
-  <h3>Verrous et en-tête Cache-Control: no-cache</h3>
-    
-    <p>Les verrous ne sont utilisés <strong>qu'à titre
-    indicatif</strong> pour enjoindre le cache à être plus coopératif
-    avec les serveurs d'arrière-plan, et il est possible de passer outre
-    si nécessaire. Si le client envoie une requête contenant un en-tête
-    Cache-Control imposant un nouveau téléchargement de l'entité, tout
-    verrou éventuel sera ignoré, la requête du client sera honorée
-    immédiatement, et l'entrée du cache mise à jour.</p>
-
-    <p>Comme mécanisme de sécurité supplémentaire, la durée de vie
-    maximale des verrous est configurable. Lorsque cette limite est
-    atteinte, le verrou est supprimé et une autre requête peut alors en
-    créer un nouveau. Cette durée de vie peut être définie via la
-    directive <code class="directive">CacheLockMaxAge</code>, et sa valeur par
-    défaut est de 5 secondes.
-    </p>
-  
-  <h3>Exemple de configuration</h3>
-    
-    <div class="example"><h3>Activation du verrouillage du cache</h3><pre class="prettyprint lang-config">#
-# Active le verrouillage du cache
-#
-&lt;IfModule mod_cache.c&gt;
-    CacheLock on
-    CacheLockPath /tmp/mod_cache-lock
-    CacheLockMaxAge 5
-&lt;/IfModule&gt;</pre>
-</div>
-  
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="finecontrol" id="finecontrol">Contrôle fin via le filtre CACHE</a></h2>
-  <p>Dans son mode de fonctionnement par défaut, le cache s'exécute sous
-  la forme d'un gestionnaire rapide, court-circuitant la majorité des
-  traitements du serveur et fournissant ainsi une mise en cache
-  possédant les plus hautes performances disponibles.</p>
-
-  <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
-  serveur, comme si un mandataire de mise en cache indépendant RFC 2616
-  était placé devant ce dernier.</p>
-
-  <p>Bien que que ce mode offre les meilleures performances, les
-  administrateurs peuvent souhaiter, dans certaines circonstances,
-  effectuer des traitements sur la requête après que cette dernière ait
-  été mise en cache, comme ajouter du contenu personnalisé à la page
-  mise en cache, ou appliquer des restrictions d'autorisations au
-  contenu. Pour y parvenir, l'administrateur sera alors souvent forcé de
-  placer des serveurs mandataires inverses indépendants soit derrière,
-  soit devant le serveur de mise en cache.</p>
-
-  <p>Pour résoudre ce problème, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut être définie à
-  <strong>off</strong>, afin que le serveur traite toutes les phases
-  normalement exécutées par une requête non mise en cache, y compris les
-  phases <strong>d'authentification et d'autorisation</strong>.</p>
-
-  <p>En outre, l'administrateur peut éventuellement spécifier le
-  <strong>point précis dans la chaîne de filtrage</strong> où devra
-  intervenir la mise en cache en ajoutant le filtre
-  <strong>CACHE</strong> à la chaîne de filtrage en sortie.</p>
-
-  <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
-  compression à la réponse, placez le filtre <strong>CACHE</strong>
-  avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
-  :</p>
-
-  <pre class="prettyprint lang-config"># Mise en cache du contenu avant la compression optionnelle
-CacheQuickHandler off
-AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
-
-
-  <p>Une autre possibilité consiste à mettre en cache le contenu avant
-  l'ajout de contenu personnalisé via <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (ou
-  tout autre filtre de traitement de contenu). Dans l'exemple suivant,
-  les modèles contenant des balises comprises par
-  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sont mis en cache avant d'être
-  interprétés :</p>
-
-  <pre class="prettyprint lang-config"># Mise en cache du contenu avant l'intervention de mod_include et
-   # mod_deflate
-CacheQuickHandler off
-AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
-
-
-  <p>Vous pouvez insérer le filtre <strong>CACHE</strong> en tout point
-  de la chaîne de filtrage. Dans l'exemple suivant, le contenu est mis
-  en cache après avoir été interprété par <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>,
-  mais avant d'être traité par <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> :</p>
-
-  <pre class="prettyprint lang-config"># Mise en cache du contenu entre les interventions de mod_include et
-   # mod_deflate
-CacheQuickHandler off
-AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
-
-
-  <div class="warning"><h3>Avertissement :</h3>Si pour une raison
-  ou pour une autre, le point d'insertion du filtre
-  <strong>CACHE</strong> dans la chaîne de filtrage est modifié, vous
-  devez <strong>vider votre cache</strong> pour être sûr que les données
-  servies soient à jour. En effet, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> n'est pas
-  en mesure d'effectuer cette opération à votre place.</div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="status" id="status">Etat du cache et journalisation</a></h2>
-  <p>Lorsque <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> a décidé s'il devait ou non
-  servir une entité depuis le cache, les raisons précises de cette
-  décision sont enregistrées dans l'environnement du sous-processus
-  interne à la requête sous la clé <strong>cache-status</strong>.
-  Cette information peut être journalisée via la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> comme suit :</p>
-
-  <pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
-
-
-  <p>En fonction de la décision prise, l'information est aussi écrite
-  dans l'environnement du sous-processus sous une des quatre clés
-  suivantes :</p>
-
-  <dl>
-    <dt>cache-hit</dt><dd>Le contenu a été servi depuis le cache.</dd>
-    <dt>cache-revalidate</dt><dd>Le contenu du cache était périmé, a été
-    mis à jour avec succès, puis servi depuis le cache.</dd>
-    <dt>cache-miss</dt><dd>Le contenu n'était pas dans le cache et a été
-    servi directement depuis le serveur demandé.</dd>
-    <dt>cache-invalidate</dt><dd>L'entité du cache est devenue invalide
-    suite à une requête d'un type autre que GET ou HEAD.</dd>
-  </dl>
-
-  <p>Il est alors possible d'envisager une journalisation conditionnelle
-  du traitement des requêtes par rapport au cache comme dans l'exemple
-  suivant :</p>
-
-  <pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
-CustomLog uncached-requests.log common env=cache-miss
-CustomLog revalidated-requests.log common env=cache-revalidate
-CustomLog invalidated-requests.log common env=cache-invalidate</pre>
-
-
-  <p>Pour les concepteurs de modules, une accroche (hook) nommée
-  <var>cache_status</var> est disponible et permet aux modules de
-  répondre aux résultats de la vérification du cache ci-dessus de manière
-  personnalisée.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="cachedefaultexpire" id="cachedefaultexpire">Directive</a> <a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>La durée par défaut de mise en cache d'un document
@@ -1159,6 +947,218 @@ marqu
 <li><code class="directive"><a href="#cacheignorecachecontrol">CacheIgnoreCacheControl</a></code></li>
 <li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="related" id="related">Modules apparentés et directives</a></h2>
+    <table class="related"><tr><th>Modules Apparentés</th><th>Directives Apparentées</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocache">CacheSocache</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxtime">CacheSocacheMaxTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemintime">CacheSocacheMinTime</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachemaxsize">CacheSocacheMaxSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadsize">CacheSocacheReadSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_socache.html#cachesocachereadtime">CacheSocacheReadTime</a></code></li></ul></td></tr></table>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="sampleconf" id="sampleconf">Exemple de configuration</a></h2>
+    <div class="example"><h3>Extrait de httpd.conf</h3><pre class="prettyprint lang-config">#
+# Exemple de configuration du cache
+#
+LoadModule cache_module modules/mod_cache.so
+&lt;IfModule mod_cache.c&gt;
+    LoadModule cache_disk_module modules/mod_cache_disk.so
+    &lt;IfModule mod_cache_disk.c&gt;
+        CacheRoot c:/cacheroot
+        CacheEnable disk  /
+        CacheDirLevels 5
+        CacheDirLength 3
+    &lt;/IfModule&gt;
+    
+    # Lorsqu'on sert de mandataire, on ne met pas en cache la liste
+# des mises à jour de sécurité
+    CacheDisable http://security.update.server/update-list/
+&lt;/IfModule&gt;</pre>
+</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="thunderingherd" id="thunderingherd">Eviter une tempête de requête</a></h2>
+  <p>Lorsqu'une entrée du cache est périmée, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>
+  soumet une requête conditionnelle au processus d'arrière-plan, qui est
+  censé confirmer la validité de l'entrée du cache, ou dans la négative
+  envoyer une entrée mise à jour.</p>
+  <p>Un court mais non négligeable laps de temps existe entre le moment
+  où l'entrée du cache est périmée, et le moment où elle est mise à
+  jour. Sur un serveur fortement chargé, un certain nombre de requêtes
+  peut arriver pendant ce laps de temps, et provoquer une
+  <strong>tempête</strong> de requêtes susceptibles de saturer le
+  processus d'arrière-plan de manière soudaine et imprédictible.</p>
+  <p>Pour contenir cette tempête, on peut utiliser la directive
+  <code class="directive">CacheLock</code> afin de définir un répertoire où
+  seront créés <strong>à la volée</strong> des verrous pour les URLs.
+  Ces verrous sont utilisés comme autant d'<strong>indications</strong>
+  par les autres requêtes, soit pour empêcher une tentative de mise en
+  cache (un autre processus est en train de récupérer l'entité), soit
+  pour indiquer qu'une entrée périmée est en cours de mise à jour
+  (pendant ce temps, c'est le contenu périmé qui sera renvoyé).
+  </p>
+  <h3>Mise en cache initiale d'une entrée</h3>
+    
+    <p>Lorsqu'une entité est mise en cache pour la première fois, un
+    verrou est créé pour cette entité jusqu'à ce que la réponse ait été
+    entièrement mise en cache. Pendant la durée de vie du verrou, le
+    cache va empêcher une seconde tentative de mise en cache de la même
+    entité. Bien que cela ne suffise pas à contenir la tempête de
+    requêtes, toute tentative de mettre en cache la même entité
+    plusieurs fois simultanément est stoppée.
+    </p>
+  
+  <h3>Mise à jour d'une entrée périmée</h3>
+    
+    <p>Lorsqu'une entrée atteint la limite de sa durée de vie, et
+    devient par conséquent périmée, un verrou est créé pour cette entité
+    jusqu'à ce que la réponse ait été soit confirmée comme encore
+    valide, soit remplacée par le processus d'arrière-plan. Pendant la
+    durée de vie du verrou, une seconde requête entrante va provoquer le
+    renvoi de la donnée périmée, et la tempête de requêtes sera
+    contenue.</p>
+  
+  <h3>Verrous et en-tête Cache-Control: no-cache</h3>
+    
+    <p>Les verrous ne sont utilisés <strong>qu'à titre
+    indicatif</strong> pour enjoindre le cache à être plus coopératif
+    avec les serveurs d'arrière-plan, et il est possible de passer outre
+    si nécessaire. Si le client envoie une requête contenant un en-tête
+    Cache-Control imposant un nouveau téléchargement de l'entité, tout
+    verrou éventuel sera ignoré, la requête du client sera honorée
+    immédiatement, et l'entrée du cache mise à jour.</p>
+
+    <p>Comme mécanisme de sécurité supplémentaire, la durée de vie
+    maximale des verrous est configurable. Lorsque cette limite est
+    atteinte, le verrou est supprimé et une autre requête peut alors en
+    créer un nouveau. Cette durée de vie peut être définie via la
+    directive <code class="directive">CacheLockMaxAge</code>, et sa valeur par
+    défaut est de 5 secondes.
+    </p>
+  
+  <h3>Exemple de configuration</h3>
+    
+    <div class="example"><h3>Activation du verrouillage du cache</h3><pre class="prettyprint lang-config">#
+# Active le verrouillage du cache
+#
+&lt;IfModule mod_cache.c&gt;
+    CacheLock on
+    CacheLockPath /tmp/mod_cache-lock
+    CacheLockMaxAge 5
+&lt;/IfModule&gt;</pre>
+</div>
+  
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="finecontrol" id="finecontrol">Contrôle fin via le filtre CACHE</a></h2>
+  <p>Dans son mode de fonctionnement par défaut, le cache s'exécute sous
+  la forme d'un gestionnaire rapide, court-circuitant la majorité des
+  traitements du serveur et fournissant ainsi une mise en cache
+  possédant les plus hautes performances disponibles.</p>
+
+  <p>Dans ce mode, le cache <strong>s'incruste</strong> devant le
+  serveur, comme si un mandataire de mise en cache indépendant RFC 2616
+  était placé devant ce dernier.</p>
+
+  <p>Bien que que ce mode offre les meilleures performances, les
+  administrateurs peuvent souhaiter, dans certaines circonstances,
+  effectuer des traitements sur la requête après que cette dernière ait
+  été mise en cache, comme ajouter du contenu personnalisé à la page
+  mise en cache, ou appliquer des restrictions d'autorisations au
+  contenu. Pour y parvenir, l'administrateur sera alors souvent forcé de
+  placer des serveurs mandataires inverses indépendants soit derrière,
+  soit devant le serveur de mise en cache.</p>
+
+  <p>Pour résoudre ce problème, la directive <code class="directive"><a href="#cachequickhandler">CacheQuickHandler</a></code> peut être définie à
+  <strong>off</strong>, afin que le serveur traite toutes les phases
+  normalement exécutées par une requête non mise en cache, y compris les
+  phases <strong>d'authentification et d'autorisation</strong>.</p>
+
+  <p>En outre, l'administrateur peut éventuellement spécifier le
+  <strong>point précis dans la chaîne de filtrage</strong> où devra
+  intervenir la mise en cache en ajoutant le filtre
+  <strong>CACHE</strong> à la chaîne de filtrage en sortie.</p>
+
+  <p>Par exemple, pour mettre en cache le contenu avant d'appliquer une
+  compression à la réponse, placez le filtre <strong>CACHE</strong>
+  avant le filtre <strong>DEFLATE</strong> comme dans l'exemple suivant
+  :</p>
+
+  <pre class="prettyprint lang-config"># Mise en cache du contenu avant la compression optionnelle
+CacheQuickHandler off
+AddOutputFilterByType CACHE;DEFLATE text/plain</pre>
+
+
+  <p>Une autre possibilité consiste à mettre en cache le contenu avant
+  l'ajout de contenu personnalisé via <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> (ou
+  tout autre filtre de traitement de contenu). Dans l'exemple suivant,
+  les modèles contenant des balises comprises par
+  <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sont mis en cache avant d'être
+  interprétés :</p>
+
+  <pre class="prettyprint lang-config"># Mise en cache du contenu avant l'intervention de mod_include et
+   # mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType CACHE;INCLUDES;DEFLATE text/html</pre>
+
+
+  <p>Vous pouvez insérer le filtre <strong>CACHE</strong> en tout point
+  de la chaîne de filtrage. Dans l'exemple suivant, le contenu est mis
+  en cache après avoir été interprété par <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>,
+  mais avant d'être traité par <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> :</p>
+
+  <pre class="prettyprint lang-config"># Mise en cache du contenu entre les interventions de mod_include et
+   # mod_deflate
+CacheQuickHandler off
+AddOutputFilterByType INCLUDES;CACHE;DEFLATE text/html</pre>
+
+
+  <div class="warning"><h3>Avertissement :</h3>Si pour une raison
+  ou pour une autre, le point d'insertion du filtre
+  <strong>CACHE</strong> dans la chaîne de filtrage est modifié, vous
+  devez <strong>vider votre cache</strong> pour être sûr que les données
+  servies soient à jour. En effet, <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> n'est pas
+  en mesure d'effectuer cette opération à votre place.</div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="status" id="status">Etat du cache et journalisation</a></h2>
+  <p>Lorsque <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> a décidé s'il devait ou non
+  servir une entité depuis le cache, les raisons précises de cette
+  décision sont enregistrées dans l'environnement du sous-processus
+  interne à la requête sous la clé <strong>cache-status</strong>.
+  Cette information peut être journalisée via la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> comme suit :</p>
+
+  <pre class="prettyprint lang-config">LogFormat "%{cache-status}e ..."</pre>
+
+
+  <p>En fonction de la décision prise, l'information est aussi écrite
+  dans l'environnement du sous-processus sous une des quatre clés
+  suivantes :</p>
+
+  <dl>
+    <dt>cache-hit</dt><dd>Le contenu a été servi depuis le cache.</dd>
+    <dt>cache-revalidate</dt><dd>Le contenu du cache était périmé, a été
+    mis à jour avec succès, puis servi depuis le cache.</dd>
+    <dt>cache-miss</dt><dd>Le contenu n'était pas dans le cache et a été
+    servi directement depuis le serveur demandé.</dd>
+    <dt>cache-invalidate</dt><dd>L'entité du cache est devenue invalide
+    suite à une requête d'un type autre que GET ou HEAD.</dd>
+  </dl>
+
+  <p>Il est alors possible d'envisager une journalisation conditionnelle
+  du traitement des requêtes par rapport au cache comme dans l'exemple
+  suivant :</p>
+
+  <pre class="prettyprint lang-config">CustomLog cached-requests.log common env=cache-hit
+CustomLog uncached-requests.log common env=cache-miss
+CustomLog revalidated-requests.log common env=cache-revalidate
+CustomLog invalidated-requests.log common env=cache-invalidate</pre>
+
+
+  <p>Pour les concepteurs de modules, une accroche (hook) nommée
+  <var>cache_status</var> est disponible et permet aux modules de
+  répondre aux résultats de la vérification du cache ci-dessus de manière
+  personnalisée.</p>
+
 </div>
 </div>
 <div class="bottomlang">
index 42c2ae8139c696293d7724e9ce445b7669216419..3338ee183a667b3b73bfad7b51d4820ec4934d8e 100644 (file)
 <li><a href="../caching.html">キャッシュ機能</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="related" id="related">関連モジュールとディレクティブ</a></h2>
-    <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_dist.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sampleconf" id="sampleconf">サンプル設定</a></h2>
-    <div class="example"><h3>Sample httpd.conf</h3><p><code>
-      #<br />
-      # Sample Cache Configuration<br />
-      #<br />
-      LoadModule cache_module modules/mod_cache.so<br />
-      <br />
-      &lt;IfModule mod_cache.c&gt;<br />
-      <span class="indent">
-        #LoadModule cache_disk_module modules/mod_cache_disk.so<br />
-        # If you want to use mod_cache_disk instead of mod_mem_cache,<br />
-        # uncomment the line above and comment out the LoadModule line below.<br />
-        &lt;IfModule mod_cache_disk.c&gt;<br />
-        <span class="indent">
-          CacheRoot c:/cacheroot<br />
-          CacheEnable disk  /<br />
-          CacheDirLevels 5<br />
-          CacheDirLength 3<br />
-        </span>
-        &lt;/IfModule&gt; <br />
-        <br />
-        LoadModule mem_cache_module modules/mod_mem_cache.so<br />
-        &lt;IfModule mod_mem_cache.c&gt;<br />
-        <span class="indent">
-          CacheEnable mem  /<br />
-          MCacheSize 4096<br />
-          MCacheMaxObjectCount 100<br />
-          MCacheMinObjectSize 1<br />
-          MCacheMaxObjectSize 2048<br />
-        </span>
-        &lt;/IfModule&gt;<br />
-        <br />
-        # When acting as a proxy, don't cache the list of security updates<br />
-        CacheDisable http://security.update.server/update-list/<br />
-      </span>
-      &lt;/IfModule&gt;
-    </code></p></div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>期日が指定されていないときにドキュメントをキャッシュするデフォルトの期間</td></tr>
 <li><code class="directive"><a href="#cachestorenostore">CacheStoreNoStore</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="related" id="related">関連モジュールとディレクティブ</a></h2>
+    <table class="related"><tr><th>関連モジュール</th><th>関連ディレクティブ</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_dist.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="sampleconf" id="sampleconf">サンプル設定</a></h2>
+    <div class="example"><h3>Sample httpd.conf</h3><p><code>
+      #<br />
+      # Sample Cache Configuration<br />
+      #<br />
+      LoadModule cache_module modules/mod_cache.so<br />
+      <br />
+      &lt;IfModule mod_cache.c&gt;<br />
+      <span class="indent">
+        #LoadModule cache_disk_module modules/mod_cache_disk.so<br />
+        # If you want to use mod_cache_disk instead of mod_mem_cache,<br />
+        # uncomment the line above and comment out the LoadModule line below.<br />
+        &lt;IfModule mod_cache_disk.c&gt;<br />
+        <span class="indent">
+          CacheRoot c:/cacheroot<br />
+          CacheEnable disk  /<br />
+          CacheDirLevels 5<br />
+          CacheDirLength 3<br />
+        </span>
+        &lt;/IfModule&gt; <br />
+        <br />
+        LoadModule mem_cache_module modules/mod_mem_cache.so<br />
+        &lt;IfModule mod_mem_cache.c&gt;<br />
+        <span class="indent">
+          CacheEnable mem  /<br />
+          MCacheSize 4096<br />
+          MCacheMaxObjectCount 100<br />
+          MCacheMinObjectSize 1<br />
+          MCacheMaxObjectSize 2048<br />
+        </span>
+        &lt;/IfModule&gt;<br />
+        <br />
+        # When acting as a proxy, don't cache the list of security updates<br />
+        CacheDisable http://security.update.server/update-list/<br />
+      </span>
+      &lt;/IfModule&gt;
+    </code></p></div>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3c557de164e91a2a997a8b6651ecd994af708c4d..99d77ddea3b687d6de87c26c173ab137a46231af 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">¼³Á¤¿¹</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="related" id="related">°ü·ÃµÈ ¸ðµâ°ú Áö½Ã¾î</a></h2>
-    <table class="related"><tr><th>°ü·ÃµÈ ¸ðµâ</th><th>°ü·ÃµÈ Áö½Ã¾î</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachesize">CacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcinterval">CacheGcInterval</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheexpirycheck">CacheExpiryCheck</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachetimemargin">CacheTimeMargin</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcdaily">CacheGcDaily</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcunused">CacheGcUnused</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcclean">CacheGcClean</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcmemusage">CacheGcMemUsage</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="sampleconf" id="sampleconf">¼³Á¤¿¹</a></h2>
-    <div class="example"><h3>Sample httpd.conf</h3><p><code>
-      #<br />
-      # ¿¹Á¦ Ä³½¬ ¼³Á¤<br />
-      #<br />
-      LoadModule cache_module modules/mod_cache.so<br />
-      <br />
-      &lt;IfModule mod_cache.c&gt;<br />
-      <span class="indent">
-        #LoadModule cache_disk_module modules/mod_cache_disk.so<br />
-        &lt;IfModule mod_cache_disk.c&gt;<br />
-        <span class="indent">
-          CacheRoot c:/cacheroot<br />
-          CacheSize 256<br />
-          CacheEnable disk  /<br />
-          CacheDirLevels 5<br />
-          CacheDirLength 3<br />
-        </span>
-        &lt;/IfModule&gt; <br />
-        <br />
-        LoadModule mem_cache_module modules/mod_mem_cache.so<br />
-        &lt;IfModule mod_mem_cache.c&gt;<br />
-        <span class="indent">
-          CacheEnable mem  /<br />
-          MCacheSize 4096<br />
-          MCacheMaxObjectCount 100<br />
-          MCacheMinObjectSize 1<br />
-          MCacheMaxObjectSize 2048<br />
-        </span>
-        &lt;/IfModule&gt;<br />
-      </span>
-      &lt;/IfModule&gt;
-    </code></p></div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheDefaultExpire" id="CacheDefaultExpire">CacheDefaultExpire</a> <a name="cachedefaultexpire" id="cachedefaultexpire">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¸¸±â½Ã°£À» ÁöÁ¤ÇÏÁö¾ÊÀº ¹®¼­¸¦ Ä³½¬ÇÒ ±âº» ±â°£.</td></tr>
 <tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_cache</td></tr>
 </table><p>Documentation not yet translated. Please see English version of document.</p>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="related" id="related">°ü·ÃµÈ ¸ðµâ°ú Áö½Ã¾î</a></h2>
+    <table class="related"><tr><th>°ü·ÃµÈ ¸ðµâ</th><th>°ü·ÃµÈ Áö½Ã¾î</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li><li><code class="module"><a href="../mod/mod_mem_cache.html">mod_mem_cache</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheroot">CacheRoot</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachesize">CacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcinterval">CacheGcInterval</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlevels">CacheDirLevels</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachedirlength">CacheDirLength</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheexpirycheck">CacheExpiryCheck</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cacheminfilesize">CacheMinFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachemaxfilesize">CacheMaxFileSize</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachetimemargin">CacheTimeMargin</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcdaily">CacheGcDaily</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcunused">CacheGcUnused</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcclean">CacheGcClean</a></code></li><li><code class="directive"><a href="../mod/mod_cache_disk.html#cachegcmemusage">CacheGcMemUsage</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachesize">MCacheSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectcount">MCacheMaxObjectCount</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheminobjectsize">MCacheMinObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxobjectsize">MCacheMaxObjectSize</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcacheremovalalgorithm">MCacheRemovalAlgorithm</a></code></li><li><code class="directive"><a href="../mod/mod_mem_cache.html#mcachemaxstreamingbuffer">MCacheMaxStreamingBuffer</a></code></li></ul></td></tr></table>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="sampleconf" id="sampleconf">¼³Á¤¿¹</a></h2>
+    <div class="example"><h3>Sample httpd.conf</h3><p><code>
+      #<br />
+      # ¿¹Á¦ Ä³½¬ ¼³Á¤<br />
+      #<br />
+      LoadModule cache_module modules/mod_cache.so<br />
+      <br />
+      &lt;IfModule mod_cache.c&gt;<br />
+      <span class="indent">
+        #LoadModule cache_disk_module modules/mod_cache_disk.so<br />
+        &lt;IfModule mod_cache_disk.c&gt;<br />
+        <span class="indent">
+          CacheRoot c:/cacheroot<br />
+          CacheSize 256<br />
+          CacheEnable disk  /<br />
+          CacheDirLevels 5<br />
+          CacheDirLength 3<br />
+        </span>
+        &lt;/IfModule&gt; <br />
+        <br />
+        LoadModule mem_cache_module modules/mod_mem_cache.so<br />
+        &lt;IfModule mod_mem_cache.c&gt;<br />
+        <span class="indent">
+          CacheEnable mem  /<br />
+          MCacheSize 4096<br />
+          MCacheMaxObjectCount 100<br />
+          MCacheMinObjectSize 1<br />
+          MCacheMaxObjectSize 2048<br />
+        </span>
+        &lt;/IfModule&gt;<br />
+      </span>
+      &lt;/IfModule&gt;
+    </code></p></div>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f5741bdf18ddf336b02921d348f3c306d001704d..1c9d640ee94e6135dfbc36f121d5a791c0e94fd1 100644 (file)
@@ -88,7 +88,6 @@
 <li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li>
 <li><a href="../caching.html">Caching Guide</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">Directive</a></h2>
 <table class="directive">
@@ -257,6 +256,7 @@ stored</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_cache_disk.html" title="English">&nbsp;en&nbsp;</a> |
index 3dbd9d711014e83e74bc22b1ebbf3c32560ba463..e9de7ee2b72a9daaf79bf8be0eb4d5aac612a5b3 100644 (file)
@@ -92,7 +92,6 @@ cache HTTP.</td></tr>
 <li><code class="module"><a href="../mod/mod_cache_socache.html">mod_cache_socache</a></code></li>
 <li><a href="../caching.html">Guide de la mise en cache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="cachedirlength" id="cachedirlength">Directive</a> <a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a></h2>
 <table class="directive">
@@ -275,6 +274,7 @@ seront stock
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index d3b934db84f3c0c3f3700d4d0437ff7ad3df1494..330ccdeddedd353c9a21480983de25e844c3cefa 100644 (file)
@@ -65,7 +65,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">ディレクティブ</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 1288ec29495305530712849fa53605abc727501b..11eac3a2929663fa1a95b7df6fea1e14e674de2c 100644 (file)
@@ -64,7 +64,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#cacheroot">CacheRoot</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheDirLength" id="CacheDirLength">CacheDirLength</a> <a name="cachedirlength" id="cachedirlength">Áö½Ã¾î</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_cache_disk.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index e4840e36ee0525263b16cfdde20b9917491053d4..f9a394169839e89c06363f6eabd3f994aa03e787 100644 (file)
@@ -83,7 +83,6 @@ CacheSocacheMaxSize 102400
 <li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
 <li><a href="../caching.html">Caching Guide</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheSocache" id="CacheSocache">CacheSocache</a> <a name="cachesocache" id="cachesocache">Directive</a></h2>
 <table class="directive">
@@ -233,6 +232,7 @@ cache</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_cache_socache.html" title="English">&nbsp;en&nbsp;</a> |
index 501ccf70be5e2eb3f66660cf8aea46f7f0f290d5..68177ebaa2c738b9a22d386d221bfb80ddac5588 100644 (file)
@@ -84,7 +84,6 @@ CacheSocacheMaxSize 102400
 <li><code class="module"><a href="../mod/mod_cache_disk.html">mod_cache_disk</a></code></li>
 <li><a href="../caching.html">Guide de la mise en cache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="cachesocache" id="cachesocache">Directive</a> <a name="CacheSocache" id="CacheSocache">CacheSocache</a></h2>
 <table class="directive">
@@ -246,6 +245,7 @@ Apache</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cache_socache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 255ac6322e999bca88dce008b76f5300847c68a5..779c61e7f67682217e3d249a5cbea1d938f0ab42 100644 (file)
@@ -56,7 +56,6 @@
 <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
 <li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir">Directive</a></h2>
 <table class="directive">
@@ -123,6 +122,7 @@ meta information</td></tr>
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_cern_meta.html" title="English">&nbsp;en&nbsp;</a> |
index fedaebb27c3e283d99fc522ec27ee40a21db0091..1aea5c6d177d606df6f3b1d4c8d6aad2952f3ea8 100644 (file)
@@ -58,7 +58,6 @@ CERN</td></tr>
 <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
 <li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="metadir" id="metadir">Directive</a> <a name="MetaDir" id="MetaDir">MetaDir</a></h2>
 <table class="directive">
@@ -128,6 +127,7 @@ style du CERN</td></tr>
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cern_meta.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 15ac58049c965a063c1e78a321543f3d5e218be4..feb49a1ce3b40c5d488ec6755fea37958bf674e9 100644 (file)
@@ -56,7 +56,6 @@
 <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
 <li><code class="module"><a href="../mod/mod_asis.html">mod_asis</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MetaDir" id="MetaDir">MetaDir</a> <a name="metadir" id="metadir">Áö½Ã¾î</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_cern_meta.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 10f8548cf5912687f37d3e717d0f5e64d65dd2d2..b7e88eec7509cbc06713bcb9100efcc12c796a64 100644 (file)
 <li><a href="http://www.ietf.org/rfc/rfc3875">CGI Specification</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Location of the CGI script error logfile</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>The <code class="directive">ScriptLog</code> directive sets the CGI
+    script error logfile. If no <code class="directive">ScriptLog</code> is given,
+    no error log is created. If given, any CGI errors are logged into the
+    filename given as argument. If this is a relative file or path it is
+    taken relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
+    </p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
+</div>
+
+    <p>This log will be opened as the user the child processes run
+    as, <em>i.e.</em> the user specified in the main <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> directive. This means that
+    either the directory the script log is in needs to be writable
+    by that user or the file needs to be manually created and set
+    to be writable by that user. If you place the script log in
+    your main logs directory, do <strong>NOT</strong> change the
+    directory permissions to make it writable by the user the child
+    processes run as.</p>
+
+    <p>Note that script logging is meant to be a debugging feature
+    when writing CGI scripts, and is not meant to be activated
+    continuously on running servers. It is not optimized for speed
+    or efficiency, and may have security problems if used in a
+    manner other than that for which it was designed.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum amount of PUT or POST requests that will be recorded
+in the scriptlog</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>The size of any PUT or POST entity body that is logged to
+    the file is limited, to prevent the log file growing too big
+    too quickly if large bodies are being received. By default, up
+    to 1024 bytes are logged, but this can be changed with this
+    directive.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size limit of the CGI script logfile</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p><code class="directive">ScriptLogLength</code> can be used to limit the
+    size of the CGI script logfile. Since the logfile logs a lot of
+    information per CGI error (all request headers, all script output)
+    it can grow to be a big file. To prevent problems due to unbounded
+    growth, this directive can be used to set an maximum file-size for
+    the CGI logfile. If the file exceeds this size, no more
+    information will be written to it.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="env" id="env">CGI Environment variables</a></h2>
     <p>The server will set the CGI environment variables as described
       <p>(The %stdout and %stderr parts may be missing if the script did
       not output anything on standard output or standard error).</p>
     
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Location of the CGI script error logfile</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>The <code class="directive">ScriptLog</code> directive sets the CGI
-    script error logfile. If no <code class="directive">ScriptLog</code> is given,
-    no error log is created. If given, any CGI errors are logged into the
-    filename given as argument. If this is a relative file or path it is
-    taken relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
-    </p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
-</div>
-
-    <p>This log will be opened as the user the child processes run
-    as, <em>i.e.</em> the user specified in the main <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> directive. This means that
-    either the directory the script log is in needs to be writable
-    by that user or the file needs to be manually created and set
-    to be writable by that user. If you place the script log in
-    your main logs directory, do <strong>NOT</strong> change the
-    directory permissions to make it writable by the user the child
-    processes run as.</p>
-
-    <p>Note that script logging is meant to be a debugging feature
-    when writing CGI scripts, and is not meant to be activated
-    continuously on running servers. It is not optimized for speed
-    or efficiency, and may have security problems if used in a
-    manner other than that for which it was designed.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum amount of PUT or POST requests that will be recorded
-in the scriptlog</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>The size of any PUT or POST entity body that is logged to
-    the file is limited, to prevent the log file growing too big
-    too quickly if large bodies are being received. By default, up
-    to 1024 bytes are logged, but this can be changed with this
-    directive.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size limit of the CGI script logfile</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p><code class="directive">ScriptLogLength</code> can be used to limit the
-    size of the CGI script logfile. Since the logfile logs a lot of
-    information per CGI error (all request headers, all script output)
-    it can grow to be a big file. To prevent problems due to unbounded
-    growth, this directive can be used to set an maximum file-size for
-    the CGI logfile. If the file exceeds this size, no more
-    information will be written to it.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index af193e82265c2a17371ede2ad2a62228a60ac6f0..8fbeb925f992b8622a3481084cef49287b38af6d 100644 (file)
@@ -78,6 +78,88 @@ utilisateurs diff
 CGI</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="scriptlog" id="scriptlog">Directive</a> <a name="ScriptLog" id="ScriptLog">ScriptLog</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier journal des erreurs du script
+CGI</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLog <var>chemin fichier</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>La directive <code class="directive">ScriptLog</code> permet de définir
+    le chemin du fichier journal des erreurs du script CGI. Si cette
+    directive n'est pas définie, aucune journalisation des erreurs n'est
+    effectuée. Si elle est définie, toute erreur CGI sera enregistrée
+    dans le fichier dont le nom est fourni en argument. S'il s'agit d'un
+    chemin de fichier relatif, il est considéré par rapport au
+    répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
+    </p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
+</div>
+
+    <p>Ce journal sera ouvert par l'utilisateur sous lequel les
+    processus enfants s'exécutent, c'est à dire l'utilisateur spécifié
+    par la directive du serveur <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>. Ceci implique que le
+    répertoire dans lequel se trouve le journal doit être accessible en
+    écriture pour cet utilisateur, ou bien que le fichier est créé
+    manuellement et accessible en écriture pour cet utilisateur. Si vous
+    placez le journal du script dans votre répertoire principal des
+    journaux, ne modifiez <strong>JAMAIS</strong> les permissions de ce
+    dernier afin de le le rendre accessible en écriture par
+    l'utilisateur sous lequel les processus enfants s'exécutent.</p>
+
+    <p>Notez que l'on ne doit activer la journalisation des scripts
+    qu'à des fins de débogage lors de l'écriture de scripts CGI, et non
+    de manière permanente sur un serveur en production. Elle n'est pas
+    optimisée en terme de performances et d'efficacité, et peut
+    présenter des problèmes de sécurité si on l'utilise dans un cadre
+    autre que celui pour lequel elle a été conçue.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a> <a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale des requêtes PUT ou POST qui seront
+enregistrées dans le journal du script</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogBuffer <var>octets</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>Cette directive permet de limiter la taille du corps de toute
+    entité PUT ou POST qui sera enregistrée dans le journal, afin
+    de prévenir une croissance trop importante et trop rapide du fichier
+    journal due à la réception de corps de requête de grandes tailles.
+    Cette directive permet de modifier cette taille maximale, dont la
+    valeur par défaut est de 1024 octets.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="scriptloglength" id="scriptloglength">Directive</a> <a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale du fichier journal des scripts
+CGI</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogLength <var>octets</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>La directive <code class="directive">ScriptLogLength</code> permet de
+    définir la taille maximale du fichier journal des scripts CGI. Comme
+    le fichier journal accumule une grande quantité d'informations par
+    erreur CGI (tous les en-têtes de la requête, toutes les sorties du
+    script), il peut vite atteindre une grande taille. En limitant la
+    taille du fichier, cette directive permet d'éviter les problèmes que
+    causerait sa croissance sans limites. Lorsque le fichier a atteint
+    cette taille maximale, plus aucune information n'y est
+    enregistrée.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="env" id="env">Les variables d'environnement CGI</a></h2>
     <p>Le serveur va définir les variables d'environnement CGI comme
@@ -170,88 +252,6 @@ CGI</a></li>
       n'a rien envoyé sur la sortie standard ou la sortie
       d'erreurs).</p>
     
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="scriptlog" id="scriptlog">Directive</a> <a name="ScriptLog" id="ScriptLog">ScriptLog</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier journal des erreurs du script
-CGI</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLog <var>chemin fichier</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>La directive <code class="directive">ScriptLog</code> permet de définir
-    le chemin du fichier journal des erreurs du script CGI. Si cette
-    directive n'est pas définie, aucune journalisation des erreurs n'est
-    effectuée. Si elle est définie, toute erreur CGI sera enregistrée
-    dans le fichier dont le nom est fourni en argument. S'il s'agit d'un
-    chemin de fichier relatif, il est considéré par rapport au
-    répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
-    </p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
-</div>
-
-    <p>Ce journal sera ouvert par l'utilisateur sous lequel les
-    processus enfants s'exécutent, c'est à dire l'utilisateur spécifié
-    par la directive du serveur <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code>. Ceci implique que le
-    répertoire dans lequel se trouve le journal doit être accessible en
-    écriture pour cet utilisateur, ou bien que le fichier est créé
-    manuellement et accessible en écriture pour cet utilisateur. Si vous
-    placez le journal du script dans votre répertoire principal des
-    journaux, ne modifiez <strong>JAMAIS</strong> les permissions de ce
-    dernier afin de le le rendre accessible en écriture par
-    l'utilisateur sous lequel les processus enfants s'exécutent.</p>
-
-    <p>Notez que l'on ne doit activer la journalisation des scripts
-    qu'à des fins de débogage lors de l'écriture de scripts CGI, et non
-    de manière permanente sur un serveur en production. Elle n'est pas
-    optimisée en terme de performances et d'efficacité, et peut
-    présenter des problèmes de sécurité si on l'utilise dans un cadre
-    autre que celui pour lequel elle a été conçue.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="scriptlogbuffer" id="scriptlogbuffer">Directive</a> <a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale des requêtes PUT ou POST qui seront
-enregistrées dans le journal du script</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogBuffer <var>octets</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>Cette directive permet de limiter la taille du corps de toute
-    entité PUT ou POST qui sera enregistrée dans le journal, afin
-    de prévenir une croissance trop importante et trop rapide du fichier
-    journal due à la réception de corps de requête de grandes tailles.
-    Cette directive permet de modifier cette taille maximale, dont la
-    valeur par défaut est de 1024 octets.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="scriptloglength" id="scriptloglength">Directive</a> <a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille maximale du fichier journal des scripts
-CGI</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ScriptLogLength <var>octets</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>La directive <code class="directive">ScriptLogLength</code> permet de
-    définir la taille maximale du fichier journal des scripts CGI. Comme
-    le fichier journal accumule une grande quantité d'informations par
-    erreur CGI (tous les en-têtes de la requête, toutes les sorties du
-    script), il peut vite atteindre une grande taille. En limitant la
-    taille du fichier, cette directive permet d'éviter les problèmes que
-    causerait sa croissance sans limites. Lorsque le fichier a atteint
-    cette taille maximale, plus aucune information n'y est
-    enregistrée.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index b5b26e07cc1026a95d5b90c4dc6d7b7069993126..65b41c3b1b6a9c1a476afac7d76e95a2377fa1f4 100644 (file)
 <li><a href="http://www.ietf.org/rfc/rfc3875">CGI 規格書</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのエラーログファイルの場所</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p><code class="directive">ScriptLog</code> ディレクティブは CGI スクリプトの
+    エラーログファイルを設定します。<code class="directive">ScriptLog</code> が
+    設定されていないときは、
+    エラーログは作成されません。設定されているときは、CGI
+    のエラーはすべて引数として与えられているファイル名にログされます。
+    相対パスで指定されているときは、
+    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>からの相対パスとして
+    扱われます。</p>
+
+    <div class="example"><h3>例</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
+</div>
+
+    <p>このログは子プロセスが実行されているユーザとしてオープンされます。
+    <em>すなわち</em>、<code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> ディレクティブで指定された
+    ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで
+    書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで
+    書き込み可能になっている必要があるということです。スクリプトログを
+    アクセスログなどのためのログディレクトリに書かれるようにしたときは、
+    そのディレクトリを子プロセスを実行しているユーザの権限で
+    書き込み可能には<strong>しない</strong>ようにしてください。</p>
+
+    <p>スクリプトのログ収集は CGI スクリプトを書くときの
+    デバッグ用の機能として意図されていて、通常のサーバで
+    常に使用されるようには意図されていないということに注意してください。
+    速度や効率は最適化されておらず、設計された以外の方法で使用されると
+    セキュリティの問題があるかもしれません。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>スクリプトログに記録される PUT や POST リクエストの内容の上限</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogBuffer <em>bytes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる
+    問題を避けるために、ファイルにログ収集される PUT と POST
+    の本体の大きさは制限されています。デフォルトでは、1024
+    バイトまでがログ収集されますが、
+    このディレクティブはそれを変更することができます。 
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのログファイルの大きさの上限</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p><code class="directive">ScriptLogLength</code> は CGI スクリプトのログファイル
+    の大きさを制限するために使用することができます。ログファイルは
+    CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、
+    すべての出力)をログしますので、すぐに大きなファイルになります。
+    この大きさの制限がないことによる問題を防ぐために、
+    このディレクティブを使って CGI のログファイルの
+    最大のファイルサイズを設定することができます。
+    ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="env" id="env">CGI 環境変数</a></h2>
     <p>サーバは <a href="http://www.ietf.org/rfc/rfc3875">CGI
     <p>(スクリプトが標準出力や標準エラーに何も出力しなかった場合は、
     %stdout や %stderr はありません)。</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのエラーログファイルの場所</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p><code class="directive">ScriptLog</code> ディレクティブは CGI スクリプトの
-    エラーログファイルを設定します。<code class="directive">ScriptLog</code> が
-    設定されていないときは、
-    エラーログは作成されません。設定されているときは、CGI
-    のエラーはすべて引数として与えられているファイル名にログされます。
-    相対パスで指定されているときは、
-    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>からの相対パスとして
-    扱われます。</p>
-
-    <div class="example"><h3>例</h3><pre class="prettyprint lang-config">ScriptLog logs/cgi_log</pre>
-</div>
-
-    <p>このログは子プロセスが実行されているユーザとしてオープンされます。
-    <em>すなわち</em>、<code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> ディレクティブで指定された
-    ユーザです。これは、スクリプトログが書かれるディレクトリがそのユーザで
-    書き込み可能か、スクリプトファイルが手動で作成され、そのユーザで
-    書き込み可能になっている必要があるということです。スクリプトログを
-    アクセスログなどのためのログディレクトリに書かれるようにしたときは、
-    そのディレクトリを子プロセスを実行しているユーザの権限で
-    書き込み可能には<strong>しない</strong>ようにしてください。</p>
-
-    <p>スクリプトのログ収集は CGI スクリプトを書くときの
-    デバッグ用の機能として意図されていて、通常のサーバで
-    常に使用されるようには意図されていないということに注意してください。
-    速度や効率は最適化されておらず、設計された以外の方法で使用されると
-    セキュリティの問題があるかもしれません。</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>スクリプトログに記録される PUT や POST リクエストの内容の上限</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogBuffer <em>bytes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>大きな本体を受け取ったときにログファイルがすぐに大きくなりすぎる
-    問題を避けるために、ファイルにログ収集される PUT と POST
-    の本体の大きさは制限されています。デフォルトでは、1024
-    バイトまでがログ収集されますが、
-    このディレクティブはそれを変更することができます。 
-    </p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>CGI スクリプトのログファイルの大きさの上限</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p><code class="directive">ScriptLogLength</code> は CGI スクリプトのログファイル
-    の大きさを制限するために使用することができます。ログファイルは
-    CGI のエラー毎に大量の情報 (リクエストのすべてのヘッダ、
-    すべての出力)をログしますので、すぐに大きなファイルになります。
-    この大きさの制限がないことによる問題を防ぐために、
-    このディレクティブを使って CGI のログファイルの
-    最大のファイルサイズを設定することができます。
-    ファイルがこの大きさを超えた場合は、それ以上は書き込まれません。</p>
-
 </div>
 </div>
 <div class="bottomlang">
index f1283ef7b5c3afa1d8025c62ea8ead980ce76734..a274ebfaadfe10f2f88d0b4f4ebaee4a5264c84c 100644 (file)
 <li><a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI Ç¥ÁØ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>CGI ½ºÅ©¸³Æ® ¿À·ù·Î±×ÆÄÀÏÀÇ À§Ä¡</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p><code class="directive">ScriptLog</code> Áö½Ã¾î´Â CGI ½ºÅ©¸³Æ®
+    ¿À·ù·Î±×ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù. <code class="directive">ScriptLog</code>¸¦
+    »ç¿ëÇÏÁö¾ÊÀ¸¸é ¿À·ù·Î±×¸¦ ¸¸µéÁö ¾Ê´Â´Ù. »ç¿ëÇÏ¸é ¾Æ±Ô¸ÕÆ®·Î
+    ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ CGI ¿À·ù¸¦ ±â·ÏÇÑ´Ù. »ó´ë°æ·Î¸¦ ÁöÁ¤Çϸé
+    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>¿¡ »ó´ë°æ·Î·Î
+    ¹Þ¾ÆµéÀδÙ.
+    </p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      ScriptLog logs/cgi_log
+    </code></p></div>
+
+    <p>ÀڽĠÇÁ·Î¼¼½º¸¦ ½ÇÇàÇϴ »ç¿ëÀÚ, <em>Áï</em> <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> Áö½Ã¾î·Î ÁöÁ¤ÇÑ »ç¿ëÀÚ
+    ±ÇÇÑÀ¸·Î ·Î±×¸¦ ¿¬´Ù. ±×·¡¼­ ±× »ç¿ëÀÚ°¡ ½ºÅ©¸³Æ® ·Î±×°¡
+    Àִ µð·ºÅ丮¿¡ ¾²±â±ÇÇÑÀÌ ÀÖ´øÁö, Á÷Á¢ ¹Ì¸® ÆÄÀÏÀ» ¸¸µé¾î¼­
+    ±× »ç¿ëÀÚ¿¡°Ô ¾²±â±ÇÇÑÀ» Áà¾ß ÇÑ´Ù. ½ºÅ©¸³Æ® ·Î±×¸¦ ÁÖ ·Î±×
+    µð·ºÅ丮¿¡ µÐ´Ù¸é ÀڽĠÇÁ·Î¼¼½º¸¦ ½ÇÇàÇϴ »ç¿ëÀÚ¿¡°Ô ¾²±â±ÇÇÑÀ»
+    ÁÖ±âÀ§ÇØ µð·ºÅ丮 ±ÇÇÑÀ» º¯°æÇÏÁö <strong>¸¶¶ó</strong>.</p>
+
+    <p>½ºÅ©¸³Æ® ·Î±×´Â CGI ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ¶§ µð¹ö±ëÀ» À§ÇÑ
+    ¿ëµµÀÌÁö ¼­¹ö¸¦ ½ÇÇàÇϴ µ¿¾È °è¼Ó »ç¿ëÇϱâÀ§ÇÔÀÌ ¾Æ´ÔÀ»
+    ÁÖÀÇÇ϶ó. ¼Óµµ¿Í È¿À²¼º¸é¿¡¼­ ÃÖÀûÈ­°¡ ¾ÈµÇÀÖ°í, ¼³°èÇÑ
+    ¸ñÀûÀÌ¿ÜÀÇ ¹æ¹ýÀ¸·Î »ç¿ëÇϸ頺¸¾È»ó ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>½ºÅ©¸³Æ® ·Î±×¿¡ ±â·ÏÇÒ PUT È¤Àº POST ¿äûÀÇ ÃÖ´ë·®</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p>Å« ³»¿ëÀ» ¹Þ¾Æ¼­ ·Î±×ÆÄÀÏÀÌ ³Ê¹« »¡¸® Ä¿Áö´Â Çö»óÀ» ¸·±âÀ§ÇØ
+    ÆÄÀÏ¿¡ ±â·ÏÇÒ PUT È¤Àº POST ³»¿ëÀÇ Å©±â¸¦ Á¦ÇÑÇÑ´Ù. ±âº»ÀûÀ¸·Î
+    1024 ¹ÙÀÌÆ®±îÁö ·Î±×¿¡ ±â·ÏÇÏÁö¸¸, ÀÌ Áö½Ã¾î¸¦ »ç¿ëÇÏ¿©
+    ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>CGI ½ºÅ©¸³Æ® ·Î±×ÆÄÀÏÀÇ Å©±â Á¦ÇÑ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
+</table>
+    <p><code class="directive">ScriptLogLength</code>´Â CGI ½ºÅ©¸³Æ®
+    ·Î±×ÆÄÀÏÀÇ Å©±â¸¦ Á¦ÇÑÇÑ´Ù. CGI ¿À·ù°¡ ¹ß»ýÇÒ¶§¸¶´Ù (¸ðµç
+    ¿äû Çì´õ, ¸ðµç ½ºÅ©¸³Æ® Ãâ·Â µî) ¸¹Àº Á¤º¸°¡ ·Î±×¿¡
+    ±â·ÏµÇ±â¶§¹®¿¡ ÆÄÀÏÀÌ ¸Å¿ì Ä¿Áú ¼ö ÀÖ´Ù. ÆÄÀÏÀÌ ¹«ÇÑÈ÷ Ä¿Áö´Â
+    ¹®Á¦¸¦ ¸·±âÀ§ÇØ ÀÌ Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© CGI ·Î±×ÆÄÀÏÀÇ ÃÖ´ë
+    ÆÄÀÏÅ©±â¸¦ ¼³Á¤ÇÑ´Ù. ÆÄÀÏÀÇ Å©±â°¡ ¼³Á¤ÇÑ °ªÀ» ³ÑÀ¸¸é ´õ
+    ÀÌ»ó Á¤º¸¸¦ ±â·ÏÇÏÁö¾Ê´Â´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="env" id="env">CGI È¯°æº¯¼ö</a></h2>
     <p>¼­¹ö´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î <a href="http://hoohoo.ncsa.uiuc.edu/cgi/">CGI Ç¥ÁØ</a>ÀÌ ¼³¸íÇÏ´Â
       <p>(½ºÅ©¸³Æ®°¡ Ç¥ÁØÃâ·ÂÀ̳ª Ç¥ÁØ¿À·ù¿¡ ¾Æ¹« ³»¿ëµµ Ãâ·ÂÇÏÁö
       ¾Ê¾Ò´Ù¸é %stdout°ú %stderr ºÎºÐÀº »ý·«µÉ ¼ö ÀÖ´Ù).</p>
     
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLog" id="ScriptLog">ScriptLog</a> <a name="scriptlog" id="scriptlog">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>CGI ½ºÅ©¸³Æ® ¿À·ù·Î±×ÆÄÀÏÀÇ À§Ä¡</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ScriptLog <var>file-path</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p><code class="directive">ScriptLog</code> Áö½Ã¾î´Â CGI ½ºÅ©¸³Æ®
-    ¿À·ù·Î±×ÆÄÀÏÀ» ÁöÁ¤ÇÑ´Ù. <code class="directive">ScriptLog</code>¸¦
-    »ç¿ëÇÏÁö¾ÊÀ¸¸é ¿À·ù·Î±×¸¦ ¸¸µéÁö ¾Ê´Â´Ù. »ç¿ëÇÏ¸é ¾Æ±Ô¸ÕÆ®·Î
-    ÁöÁ¤ÇÑ ÆÄÀÏ¿¡ CGI ¿À·ù¸¦ ±â·ÏÇÑ´Ù. »ó´ë°æ·Î¸¦ ÁöÁ¤Çϸé
-    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>¿¡ »ó´ë°æ·Î·Î
-    ¹Þ¾ÆµéÀδÙ.
-    </p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      ScriptLog logs/cgi_log
-    </code></p></div>
-
-    <p>ÀڽĠÇÁ·Î¼¼½º¸¦ ½ÇÇàÇϴ »ç¿ëÀÚ, <em>Áï</em> <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> Áö½Ã¾î·Î ÁöÁ¤ÇÑ »ç¿ëÀÚ
-    ±ÇÇÑÀ¸·Î ·Î±×¸¦ ¿¬´Ù. ±×·¡¼­ ±× »ç¿ëÀÚ°¡ ½ºÅ©¸³Æ® ·Î±×°¡
-    Àִ µð·ºÅ丮¿¡ ¾²±â±ÇÇÑÀÌ ÀÖ´øÁö, Á÷Á¢ ¹Ì¸® ÆÄÀÏÀ» ¸¸µé¾î¼­
-    ±× »ç¿ëÀÚ¿¡°Ô ¾²±â±ÇÇÑÀ» Áà¾ß ÇÑ´Ù. ½ºÅ©¸³Æ® ·Î±×¸¦ ÁÖ ·Î±×
-    µð·ºÅ丮¿¡ µÐ´Ù¸é ÀڽĠÇÁ·Î¼¼½º¸¦ ½ÇÇàÇϴ »ç¿ëÀÚ¿¡°Ô ¾²±â±ÇÇÑÀ»
-    ÁÖ±âÀ§ÇØ µð·ºÅ丮 ±ÇÇÑÀ» º¯°æÇÏÁö <strong>¸¶¶ó</strong>.</p>
-
-    <p>½ºÅ©¸³Æ® ·Î±×´Â CGI ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ¶§ µð¹ö±ëÀ» À§ÇÑ
-    ¿ëµµÀÌÁö ¼­¹ö¸¦ ½ÇÇàÇϴ µ¿¾È °è¼Ó »ç¿ëÇϱâÀ§ÇÔÀÌ ¾Æ´ÔÀ»
-    ÁÖÀÇÇ϶ó. ¼Óµµ¿Í È¿À²¼º¸é¿¡¼­ ÃÖÀûÈ­°¡ ¾ÈµÇÀÖ°í, ¼³°èÇÑ
-    ¸ñÀûÀÌ¿ÜÀÇ ¹æ¹ýÀ¸·Î »ç¿ëÇϸ頺¸¾È»ó ¹®Á¦°¡ µÉ ¼ö ÀÖ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLogBuffer" id="ScriptLogBuffer">ScriptLogBuffer</a> <a name="scriptlogbuffer" id="scriptlogbuffer">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>½ºÅ©¸³Æ® ·Î±×¿¡ ±â·ÏÇÒ PUT È¤Àº POST ¿äûÀÇ ÃÖ´ë·®</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ScriptLogBuffer <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ScriptLogBuffer 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p>Å« ³»¿ëÀ» ¹Þ¾Æ¼­ ·Î±×ÆÄÀÏÀÌ ³Ê¹« »¡¸® Ä¿Áö´Â Çö»óÀ» ¸·±âÀ§ÇØ
-    ÆÄÀÏ¿¡ ±â·ÏÇÒ PUT È¤Àº POST ³»¿ëÀÇ Å©±â¸¦ Á¦ÇÑÇÑ´Ù. ±âº»ÀûÀ¸·Î
-    1024 ¹ÙÀÌÆ®±îÁö ·Î±×¿¡ ±â·ÏÇÏÁö¸¸, ÀÌ Áö½Ã¾î¸¦ »ç¿ëÇÏ¿©
-    ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ScriptLogLength" id="ScriptLogLength">ScriptLogLength</a> <a name="scriptloglength" id="scriptloglength">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>CGI ½ºÅ©¸³Æ® ·Î±×ÆÄÀÏÀÇ Å©±â Á¦ÇÑ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ScriptLogLength <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ScriptLogLength 10385760</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code></td></tr>
-</table>
-    <p><code class="directive">ScriptLogLength</code>´Â CGI ½ºÅ©¸³Æ®
-    ·Î±×ÆÄÀÏÀÇ Å©±â¸¦ Á¦ÇÑÇÑ´Ù. CGI ¿À·ù°¡ ¹ß»ýÇÒ¶§¸¶´Ù (¸ðµç
-    ¿äû Çì´õ, ¸ðµç ½ºÅ©¸³Æ® Ãâ·Â µî) ¸¹Àº Á¤º¸°¡ ·Î±×¿¡
-    ±â·ÏµÇ±â¶§¹®¿¡ ÆÄÀÏÀÌ ¸Å¿ì Ä¿Áú ¼ö ÀÖ´Ù. ÆÄÀÏÀÌ ¹«ÇÑÈ÷ Ä¿Áö´Â
-    ¹®Á¦¸¦ ¸·±âÀ§ÇØ ÀÌ Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© CGI ·Î±×ÆÄÀÏÀÇ ÃÖ´ë
-    ÆÄÀÏÅ©±â¸¦ ¼³Á¤ÇÑ´Ù. ÆÄÀÏÀÇ Å©±â°¡ ¼³Á¤ÇÑ °ªÀ» ³ÑÀ¸¸é ´õ
-    ÀÌ»ó Á¤º¸¸¦ ±â·ÏÇÏÁö¾Ê´Â´Ù.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index 7d683ebf39f4075f5d540e86349cf57b39afdbaa..134d4b70e1881fc66935197047a760d6e8e7f152 100644 (file)
@@ -74,7 +74,6 @@
 <li><a href="../suexec.html">Running CGI programs under different
     user IDs</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a></h2>
 <table class="directive">
@@ -126,6 +125,7 @@ the cgi daemon</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_cgid.html" title="English">&nbsp;en&nbsp;</a> |
index 177297b3966e701dd75291bd906991a37cbd7cb9..97b5674935d73f84a3d5868d6d0f15c6293bcda8 100644 (file)
@@ -78,7 +78,6 @@ thread
 <li><a href="../suexec.html">Exécution de programmes CGI sous des
 utilisateurs différents</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="cgidscripttimeout" id="cgidscripttimeout">Directive</a> <a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a></h2>
 <table class="directive">
@@ -130,6 +129,7 @@ communiquer avec le d
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f989689d95a4a781fc0cc935e96a5da1b0f34a59..ad143a50b6eb827c21cdf57ffd0db7b6746d87c3 100644 (file)
@@ -73,7 +73,6 @@
 <li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li>
 <li><a href="../suexec.html">CGI プログラムを違うユーザ ID で実行する</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">ディレクティブ</a></h2>
 <table class="directive">
@@ -113,6 +112,7 @@ unset</code></td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 189bda11435fdd8d0d85528db9c83c16f7aa1c7f..2eaed876d0b7f76007224a36d7ac8043611d3c2e 100644 (file)
@@ -71,7 +71,6 @@
 <li><a href="../suexec.html">´Ù¸¥ »ç¿ëÀÚ ID·Î CGI ÇÁ·Î±×·¥
 ½ÇÇàÇϱâ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CGIDScriptTimeout" id="CGIDScriptTimeout">CGIDScriptTimeout</a> <a name="cgidscripttimeout" id="cgidscripttimeout">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -109,6 +108,7 @@ unset</code></td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_cgid.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3d2b75eb4f8e45888dd83cfe3c711264d370f2b4..cf88e52c6ef540c9782e2eafb0dcd67be568741b 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#problems">Common Problems</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="problems" id="problems">Common Problems</a></h2>
-
-    <h3>Invalid character set names</h3>
-
-      <p>The character set name parameters of <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> and
-      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
-      must be acceptable to the translation mechanism used by
-      <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> on the system where
-      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> is deployed.  These character
-      set names are not standardized and are usually not the same as
-      the corresponding values used in http headers.  Currently, APR
-      can only use iconv(3), so you can easily test your character set
-      names using the iconv(1) program, as follows:</p>
-
-      <div class="example"><p><code>
-        iconv -f charsetsourceenc-value -t charsetdefault-value
-      </code></p></div>
-    
-
-    <h3>Mismatch between character set of content and translation
-    rules</h3>
-
-      <p>If the translation rules don't make sense for the content,
-      translation can fail in various ways, including:</p>
-
-      <ul>
-      <li>The translation mechanism may return a bad return code,
-      and the connection will be aborted.</li>
-
-      <li>The translation mechanism may silently place special
-      characters (e.g., question marks) in the output buffer when
-      it cannot translate the input buffer.</li>
-      </ul>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a> <a name="charsetdefault" id="charsetdefault">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Charset to translate into</td></tr>
      </div>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="problems" id="problems">Common Problems</a></h2>
+
+    <h3>Invalid character set names</h3>
+
+      <p>The character set name parameters of <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> and
+      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
+      must be acceptable to the translation mechanism used by
+      <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> on the system where
+      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> is deployed.  These character
+      set names are not standardized and are usually not the same as
+      the corresponding values used in http headers.  Currently, APR
+      can only use iconv(3), so you can easily test your character set
+      names using the iconv(1) program, as follows:</p>
+
+      <div class="example"><p><code>
+        iconv -f charsetsourceenc-value -t charsetdefault-value
+      </code></p></div>
+    
+
+    <h3>Mismatch between character set of content and translation
+    rules</h3>
+
+      <p>If the translation rules don't make sense for the content,
+      translation can fail in various ways, including:</p>
+
+      <ul>
+      <li>The translation mechanism may return a bad return code,
+      and the connection will be aborted.</li>
+
+      <li>The translation mechanism may silently place special
+      characters (e.g., question marks) in the output buffer when
+      it cannot translate the input buffer.</li>
+      </ul>
+    
 </div>
 </div>
 <div class="bottomlang">
index 9ff6662532dd3d51162a305e299911406bfbd8ba..709f162c61e5c22079a09099e6bcbe91c74bdcba 100644 (file)
@@ -64,47 +64,6 @@ traductions ou les r
 <li><img alt="" src="../images/down.gif" /> <a href="#problems">Problèmes courants</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="problems" id="problems">Problèmes courants</a></h2>
-
-    <h3>Noms de jeux de caractères non valides</h3>
-
-      <p>Les noms des jeux de caractères passés en paramètres aux
-      directives  <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> et
-      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
-      doivent être reconnus par le mécanisme de traduction utilisé par
-      <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le système où
-      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> est utilisé. Ces noms de jeux de
-      caractères ne sont pas standardisés, et sont en général différents
-      des valeurs qui leur correspondent dans les en-têtes HTTP.
-      Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc
-      tester facilement vos noms de jeux de caractères en utilisant le
-      programme iconv(1), de la manière suivante :</p>
-
-      <div class="example"><p><code>
-        iconv -f valeur-charsetsourceenc -t valeur-charsetdefault
-      </code></p></div>
-    
-
-    <h3>Incompatibilité entre le jeu de caractères du
-    contenu et les règles de traduction</h3>
-
-      <p>Si les règles de traduction ne peuvent s'appliquer au contenu,
-      la traduction peut échouer avec des conséquences diverses, comme
-      :</p>
-
-      <ul>
-      <li>Le mécanisme de traduction peut renvoyer un mauvais code de
-      retour, et la connexion sera interrompue.</li>
-
-      <li>Le mécanisme de traduction peut insérer silencieusement des
-      caractères spéciaux (par exemple des points d'interrogation) dans
-      le tampon de sortie lorsqu'il n'est pas en mesure de traduire le
-      tampon d'entrée.</li>
-      </ul>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="charsetdefault" id="charsetdefault">Directive</a> <a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Jeu de caractère vers lequel la traduction doit
@@ -217,6 +176,47 @@ caract
      valide du point de vue du système.
      </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="problems" id="problems">Problèmes courants</a></h2>
+
+    <h3>Noms de jeux de caractères non valides</h3>
+
+      <p>Les noms des jeux de caractères passés en paramètres aux
+      directives  <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code> et
+      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>
+      doivent être reconnus par le mécanisme de traduction utilisé par
+      <a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a> sur le système où
+      <code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code> est utilisé. Ces noms de jeux de
+      caractères ne sont pas standardisés, et sont en général différents
+      des valeurs qui leur correspondent dans les en-têtes HTTP.
+      Actuellement, APR ne peut utiliser que iconv(3) ; vous pouvez donc
+      tester facilement vos noms de jeux de caractères en utilisant le
+      programme iconv(1), de la manière suivante :</p>
+
+      <div class="example"><p><code>
+        iconv -f valeur-charsetsourceenc -t valeur-charsetdefault
+      </code></p></div>
+    
+
+    <h3>Incompatibilité entre le jeu de caractères du
+    contenu et les règles de traduction</h3>
+
+      <p>Si les règles de traduction ne peuvent s'appliquer au contenu,
+      la traduction peut échouer avec des conséquences diverses, comme
+      :</p>
+
+      <ul>
+      <li>Le mécanisme de traduction peut renvoyer un mauvais code de
+      retour, et la connexion sera interrompue.</li>
+
+      <li>Le mécanisme de traduction peut insérer silencieusement des
+      caractères spéciaux (par exemple des points d'interrogation) dans
+      le tampon de sortie lorsqu'il n'est pas en mesure de traduire le
+      tampon d'entrée.</li>
+      </ul>
+    
 </div>
 </div>
 <div class="bottomlang">
index 30a8064eeee827db108badfaf810ba75ffba4b62..554accd2e11de68105938a4c93d810e8b9eaa762 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#problems">ÀϹÝÀûÀΠ¹®Á¦Á¡</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="problems" id="problems">ÀϹÝÀûÀΠ¹®Á¦Á¡</a></h2>
-
-    <h3>À߸øµÈ ¹®ÀÚÁýÇÕ À̸§</h3>
-
-      <p><code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code>¸¦ »ç¿ëÇϴ ½Ã½ºÅÛÀÇ
-      ARP ¹ø¿ª±â´ÉÀÌ <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code>¿Í
-      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>ÀÇ
-      ÆÄ¶ó¹ÌÅÍÀΠ¹®ÀÚÁýÇÕ À̸§À» Ã³¸®ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¹®ÀÚÁýÇÕ
-      À̸§Àº Ç¥ÁØÈ­µÇÁö ¾Ê¾Ò°í, http Çì´õ¿¡ »ç¿ëÇϴ °ª°ú Ç×»ó
-      °°Áö´Â ¾Ê´Ù. ÇöÀç APRÀº iconv(3)¸¸À» »ç¿ëÇϱ⶧¹®¿¡,
-      ´ÙÀ½°ú °°ÀÌ iconv(1) ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© Æ¯Á¤ ¹®ÀÚÁýÇÕ
-      À̸§À» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ½±°Ô ¾Ë ¼ö ÀÖ´Ù:</p>
-
-      <div class="example"><p><code>
-        iconv -f charsetsourceenc-value -t charsetdefault-value
-      </code></p></div>
-    
-
-    <h3>³»¿ë°ú º¯È¯±ÔÄ¢ÀÇ ¹®ÀÚÁýÇÕÀÌ ¼­·Î ´Ù¸§</h3>
-
-      <p>º¯È¯±ÔÄ¢ÀÌ »óȲ¿¡ ¸ÂÁö¾ÊÀ¸¸é ´ÙÀ½°ú °°Àº ¿©·¯ ¹æ½ÄÀ¸·Î
-      º¯È¯ÀÌ ½ÇÆÐÇÒ ¼ö ÀÖ´Ù:</p>
-
-      <ul>
-      <li>º¯È¯±â´ÉÀÌ ½ÇÆÐ ¹ÝȯÄڵ带 ¹ÝȯÇÏ°í ¿¬°áÀÌ ²÷¾îÁú
-      ¼ö ÀÖ´Ù.</li>
-
-      <li>ÀԷ¹öÆÛ¸¦ º¯È¯ÇÏÁö ¸øÇÒ¶§ Ãâ·Â¹öÆÛ¿¡ ´ë½Å Æ¯º°ÇÑ
-      ¹®ÀÚ¸¦ (¿¹, ¹°À½Ç¥) ÀûÀ» ¼ö ÀÖ´Ù.</li>
-      </ul>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CharsetDefault" id="CharsetDefault">CharsetDefault</a> <a name="charsetdefault" id="charsetdefault">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>º¯È¯ÇÒ ¹®ÀÚÁýÇÕ</td></tr>
 
     <p>Solaris 8ÀÇ iconv°¡ ÀÌ ¿¹Á¦ÀÇ ¹®ÀÚÁýÇÕÀ» Áö¿øÇÑ´Ù.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="problems" id="problems">ÀϹÝÀûÀΠ¹®Á¦Á¡</a></h2>
+
+    <h3>À߸øµÈ ¹®ÀÚÁýÇÕ À̸§</h3>
+
+      <p><code class="module"><a href="../mod/mod_charset_lite.html">mod_charset_lite</a></code>¸¦ »ç¿ëÇϴ ½Ã½ºÅÛÀÇ
+      ARP ¹ø¿ª±â´ÉÀÌ <code class="directive"><a href="#charsetsourceenc">CharsetSourceEnc</a></code>¿Í
+      <code class="directive"><a href="#charsetdefault">CharsetDefault</a></code>ÀÇ
+      ÆÄ¶ó¹ÌÅÍÀΠ¹®ÀÚÁýÇÕ À̸§À» Ã³¸®ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¹®ÀÚÁýÇÕ
+      À̸§Àº Ç¥ÁØÈ­µÇÁö ¾Ê¾Ò°í, http Çì´õ¿¡ »ç¿ëÇϴ °ª°ú Ç×»ó
+      °°Áö´Â ¾Ê´Ù. ÇöÀç APRÀº iconv(3)¸¸À» »ç¿ëÇϱ⶧¹®¿¡,
+      ´ÙÀ½°ú °°ÀÌ iconv(1) ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© Æ¯Á¤ ¹®ÀÚÁýÇÕ
+      À̸§À» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ½±°Ô ¾Ë ¼ö ÀÖ´Ù:</p>
+
+      <div class="example"><p><code>
+        iconv -f charsetsourceenc-value -t charsetdefault-value
+      </code></p></div>
+    
+
+    <h3>³»¿ë°ú º¯È¯±ÔÄ¢ÀÇ ¹®ÀÚÁýÇÕÀÌ ¼­·Î ´Ù¸§</h3>
+
+      <p>º¯È¯±ÔÄ¢ÀÌ »óȲ¿¡ ¸ÂÁö¾ÊÀ¸¸é ´ÙÀ½°ú °°Àº ¿©·¯ ¹æ½ÄÀ¸·Î
+      º¯È¯ÀÌ ½ÇÆÐÇÒ ¼ö ÀÖ´Ù:</p>
+
+      <ul>
+      <li>º¯È¯±â´ÉÀÌ ½ÇÆÐ ¹ÝȯÄڵ带 ¹ÝȯÇÏ°í ¿¬°áÀÌ ²÷¾îÁú
+      ¼ö ÀÖ´Ù.</li>
+
+      <li>ÀԷ¹öÆÛ¸¦ º¯È¯ÇÏÁö ¸øÇÒ¶§ Ãâ·Â¹öÆÛ¿¡ ´ë½Å Æ¯º°ÇÑ
+      ¹®ÀÚ¸¦ (¿¹, ¹°À½Ç¥) ÀûÀ» ¼ö ÀÖ´Ù.</li>
+      </ul>
+    
 </div>
 </div>
 <div class="bottomlang">
index abbe7c859c8300a7cd9e45e56cc8860e5893e3d4..8a464b2819e538d3427e02e35ddc12b3542baa55 100644 (file)
 <li><a href="http://www.webdav.org">WebDAV Resources</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable WebDAV HTTP methods</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Dav Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>Use the <code class="directive">Dav</code> directive to enable the
+    WebDAV HTTP methods for the given container:</p>
+
+    <pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
+    Dav On
+&lt;/Location&gt;</pre>
+
+
+    <p>The value <code>On</code> is actually an alias for the default
+    provider <code>filesystem</code> which is served by the <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> module. Note, that once you have DAV enabled
+    for some location, it <em>cannot</em> be disabled for sublocations.
+    For a complete configuration example have a look at the <a href="#example">section above</a>.</p>
+
+    <div class="warning">
+      Do not enable WebDAV until you have secured your server. Otherwise
+      everyone will be able to distribute files on your system.
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow PROPFIND, Depth: Infinity requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavDepthInfinity off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>Use the <code class="directive">DavDepthInfinity</code> directive to
+    allow the processing of <code>PROPFIND</code> requests containing the
+    header 'Depth: Infinity'. Because this type of request could constitute
+    a denial-of-service attack, by default it is not allowed.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum amount of time the server holds a lock on
+a DAV resource</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavMinTimeout 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>When a client requests a DAV resource lock, it can also
+    specify a time when the lock will be automatically removed by
+    the server. This value is only a request, and the server can
+    ignore it or inform the client of an arbitrary value.</p>
+
+    <p>Use the <code class="directive">DavMinTimeout</code> directive to specify, in
+    seconds, the minimum lock timeout to return to a client.
+    Microsoft Web Folders defaults to a timeout of 120 seconds; the
+    <code class="directive">DavMinTimeout</code> can override this to a higher value
+    (like 600 seconds) to reduce the chance of the client losing
+    the lock due to network latency.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/MSWord"&gt;
+    DavMinTimeout 600
+&lt;/Location&gt;</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="example" id="example">Enabling WebDAV</a></h2>
     <p>To enable <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, add the following to a
@@ -171,80 +245,6 @@ Alias "/php-source" "/home/gstein/php_files"
     used to access the output of the PHP scripts, and
     <code>http://example.com/php-source</code> can be used with a DAV
     client to manipulate them.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable WebDAV HTTP methods</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Dav Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>Use the <code class="directive">Dav</code> directive to enable the
-    WebDAV HTTP methods for the given container:</p>
-
-    <pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
-    Dav On
-&lt;/Location&gt;</pre>
-
-
-    <p>The value <code>On</code> is actually an alias for the default
-    provider <code>filesystem</code> which is served by the <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code> module. Note, that once you have DAV enabled
-    for some location, it <em>cannot</em> be disabled for sublocations.
-    For a complete configuration example have a look at the <a href="#example">section above</a>.</p>
-
-    <div class="warning">
-      Do not enable WebDAV until you have secured your server. Otherwise
-      everyone will be able to distribute files on your system.
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allow PROPFIND, Depth: Infinity requests</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavDepthInfinity off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>Use the <code class="directive">DavDepthInfinity</code> directive to
-    allow the processing of <code>PROPFIND</code> requests containing the
-    header 'Depth: Infinity'. Because this type of request could constitute
-    a denial-of-service attack, by default it is not allowed.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Minimum amount of time the server holds a lock on
-a DAV resource</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>DavMinTimeout 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>When a client requests a DAV resource lock, it can also
-    specify a time when the lock will be automatically removed by
-    the server. This value is only a request, and the server can
-    ignore it or inform the client of an arbitrary value.</p>
-
-    <p>Use the <code class="directive">DavMinTimeout</code> directive to specify, in
-    seconds, the minimum lock timeout to return to a client.
-    Microsoft Web Folders defaults to a timeout of 120 seconds; the
-    <code class="directive">DavMinTimeout</code> can override this to a higher value
-    (like 600 seconds) to reduce the chance of the client losing
-    the lock due to network latency.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/MSWord"&gt;
-    DavMinTimeout 600
-&lt;/Location&gt;</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 5c8888b707120c041d2ed9cffd4db995b5014373..d274d67908f9db87a2ea55392750502c08f25faf 100644 (file)
@@ -63,6 +63,88 @@ documents via le web (<a href="http://www.webdav.org/">WebDAV</a>)</td></tr>
 <li><a href="http://www.webdav.org">Ressources WebDAV</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="dav" id="dav">Directive</a> <a name="Dav" id="Dav">Dav</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les méthodes HTTP WebDAV</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Dav On|Off|<var>nom fournisseur</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Dav Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>La directive <code class="directive">Dav</code> permet d'activer les
+    méthodes HTTP WebDAV pour le conteneur condidéré :</p>
+
+    <pre class="prettyprint lang-config">&lt;Location /foo&gt;
+    Dav On
+&lt;/Location&gt;</pre>
+
+
+    <p>La valeur <code>On</code> est en fait un alias vers le
+    fournisseur par défaut <code>filesystem</code> implémenté par le
+    module <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>. Notez que lorsque DAV est activé
+    pour un conteneur, on <em>ne peut pas</em> le désactiver pour ses
+    sous-conteneurs. Pour un exemple de configuration complet,
+    reportez-vous à la <a href="#example">section précédente</a>.</p>
+
+    <div class="warning">
+      N'activez pas WebDAV tant que votre serveur n'est pas sécurisé. Si
+      vous passez outre cette recommandation, tout le monde pourra
+      enregistrer des fichiers sur votre système.
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="davdepthinfinity" id="davdepthinfinity">Directive</a> <a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Autorise les requêtes PROPFIND avec en-tête Depth:
+Infinity</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DavDepthInfinity off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>La directive <code class="directive">DavDepthInfinity</code> permet
+    d'autoriser le traitement des requêtes <code>PROPFIND</code>
+    contenant l'en-tête Depth: Infinity. Par défaut, ce type de requête
+    n'est pas autorisé, car il peut favoriser les attaques de type Déni
+    de service.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="davmintimeout" id="davmintimeout">Directive</a> <a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée minimale pendant laquelle le serveur maintient un
+verrou sur une ressource DAV</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavMinTimeout <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DavMinTimeout 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>Lorsqu'un client demande le verrouillage d'une ressource DAV, il
+    peut aussi spécifier une durée au bout de laquelle le verrou sera
+    automatiquement supprimé par le serveur. Cette valeur ne constitue
+    qu'une demande, et le serveur peut l'ignorer ou informer le client
+    qu'il va utiliser une valeur arbitraire.</p>
+
+    <p>La directive <code class="directive">DavMinTimeout</code> permet de
+    spécifier, en secondes, la durée minimale de verrouillage à renvoyer
+    au client. Les Répertoires Web de Microsoft présentent une durée par
+    défaut de 120 secondes ; la directive
+    <code class="directive">DavMinTimeout</code> permet de définir une valeur
+    supérieure (par exemple 600 secondes), afin de réduire les risques
+    de perte du verrou par le client suite à une surcharge du
+    réseau.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
+    DavMinTimeout 600
+&lt;/Location&gt;</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="example" id="example">Activation de WebDAV</a></h2>
     <p>Pour activer le module <code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>, ajoutez la ligne
@@ -186,88 +268,6 @@ ForceType text/plain
     l'exécution des scripts PHP, et
     <code>http://example.com/php-source</code> pour les manipuler avec
     DAV.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="dav" id="dav">Directive</a> <a name="Dav" id="Dav">Dav</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active les méthodes HTTP WebDAV</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Dav On|Off|<var>nom fournisseur</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Dav Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>La directive <code class="directive">Dav</code> permet d'activer les
-    méthodes HTTP WebDAV pour le conteneur condidéré :</p>
-
-    <pre class="prettyprint lang-config">&lt;Location /foo&gt;
-    Dav On
-&lt;/Location&gt;</pre>
-
-
-    <p>La valeur <code>On</code> est en fait un alias vers le
-    fournisseur par défaut <code>filesystem</code> implémenté par le
-    module <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>. Notez que lorsque DAV est activé
-    pour un conteneur, on <em>ne peut pas</em> le désactiver pour ses
-    sous-conteneurs. Pour un exemple de configuration complet,
-    reportez-vous à la <a href="#example">section précédente</a>.</p>
-
-    <div class="warning">
-      N'activez pas WebDAV tant que votre serveur n'est pas sécurisé. Si
-      vous passez outre cette recommandation, tout le monde pourra
-      enregistrer des fichiers sur votre système.
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="davdepthinfinity" id="davdepthinfinity">Directive</a> <a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Autorise les requêtes PROPFIND avec en-tête Depth:
-Infinity</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DavDepthInfinity off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>La directive <code class="directive">DavDepthInfinity</code> permet
-    d'autoriser le traitement des requêtes <code>PROPFIND</code>
-    contenant l'en-tête Depth: Infinity. Par défaut, ce type de requête
-    n'est pas autorisé, car il peut favoriser les attaques de type Déni
-    de service.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="davmintimeout" id="davmintimeout">Directive</a> <a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée minimale pendant laquelle le serveur maintient un
-verrou sur une ressource DAV</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>DavMinTimeout <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>DavMinTimeout 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>Lorsqu'un client demande le verrouillage d'une ressource DAV, il
-    peut aussi spécifier une durée au bout de laquelle le verrou sera
-    automatiquement supprimé par le serveur. Cette valeur ne constitue
-    qu'une demande, et le serveur peut l'ignorer ou informer le client
-    qu'il va utiliser une valeur arbitraire.</p>
-
-    <p>La directive <code class="directive">DavMinTimeout</code> permet de
-    spécifier, en secondes, la durée minimale de verrouillage à renvoyer
-    au client. Les Répertoires Web de Microsoft présentent une durée par
-    défaut de 120 secondes ; la directive
-    <code class="directive">DavMinTimeout</code> permet de définir une valeur
-    supérieure (par exemple 600 secondes), afin de réduire les risques
-    de perte du verrou par le client suite à une surcharge du
-    réseau.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
-    DavMinTimeout 600
-&lt;/Location&gt;</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 174fdba6ae3e1beb9def34f3b8acf1e701a297e0..ac9c002ae5c529661d190b843a1d8cd52192eb1f 100644 (file)
 <li><a href="http://www.webdav.org">WebDAV Resources</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>WebDAV HTTP メソッドを有効にします</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Dav Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
+    次のようにします。</p>
+
+    <pre class="prettyprint lang-config">&lt;Location /foo&gt;
+    Dav On
+&lt;/Location&gt;</pre>
+
+
+    <p><code>On</code> という指定は実際には <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
+    で提供されているデフォルトのプロバイダ、<code>filesystem</code>
+    へのエイリアスになっています。一度あるロケーションで DAV 
+    を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
+    ということに注意してください。完全な設定例は<a href="#example">上記のセクション</a> をご覧下さい。</p>
+
+    <div class="warning">
+      サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
+      そうしなければ誰でもそのサーバでファイルを配布することができるように
+      なってしまいます。
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>'Depth: Infinity' を含んでいる
+    <code>PROPFIND</code> リクエストを処理できるようにするには、
+    <code class="directive">DavDepthInfinity</code>
+    ディレクティブを使います。このタイプのリクエストは
+    denial-of-service アタックとなりうるので、
+    デフォルトでは許可されていません。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>クライアントが DAV リソースロックを要求した場合、
+    ロックがサーバによって自動的に解除されるまでの時間を
+    同時に指定することができます。この値は単なるリクエストであって、
+    サーバはこれを無視することもできますし、
+    任意の値をクライアントに通知することもできます。</p>
+
+    <p>クライアントに戻すロックタイムアウトの最小時間を、
+    秒で、指定するために <code class="directive">DavMinTimeout</code>
+    ディレクティブを使います。
+    マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
+    ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
+    <code class="directive">DavMinTimeout</code> を使って
+    これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
+
+    <div class="example"><h3>例</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
+    DavMinTimeout 600
+&lt;/Location&gt;</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="example" id="example">Enabling WebDAV</a></h2>
     <p>mod_dav を有効にするには、<code>httpd.conf</code>
@@ -175,86 +255,6 @@ Alias /php-source /home/gstein/php_files
     出力をアクセスするために使うことができ、
     <code>http://example.com/php-source</code> を DAV クライアントによる
     が操作のために使うことができます。</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>WebDAV HTTP メソッドを有効にします</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Dav Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>与えられたコンテナで WebDAV HTTP メソッドが使えるようにするには
-    次のようにします。</p>
-
-    <pre class="prettyprint lang-config">&lt;Location /foo&gt;
-    Dav On
-&lt;/Location&gt;</pre>
-
-
-    <p><code>On</code> という指定は実際には <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
-    で提供されているデフォルトのプロバイダ、<code>filesystem</code>
-    へのエイリアスになっています。一度あるロケーションで DAV 
-    を有効にした後は、そのサブロケーションで<em>無効化することはできない</em>
-    ということに注意してください。完全な設定例は<a href="#example">上記のセクション</a> をご覧下さい。</p>
-
-    <div class="warning">
-      サーバのセキュリティが確保できるまで WebDAV を有効にしないでください。
-      そうしなければ誰でもそのサーバでファイルを配布することができるように
-      なってしまいます。
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>PROPFIND, Depth: Infinity リクエストを許可します</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavDepthInfinity off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>'Depth: Infinity' を含んでいる
-    <code>PROPFIND</code> リクエストを処理できるようにするには、
-    <code class="directive">DavDepthInfinity</code>
-    ディレクティブを使います。このタイプのリクエストは
-    denial-of-service アタックとなりうるので、
-    デフォルトでは許可されていません。</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>サーバが DAV リソースのロックを維持する最小時間です。
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DavMinTimeout 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>クライアントが DAV リソースロックを要求した場合、
-    ロックがサーバによって自動的に解除されるまでの時間を
-    同時に指定することができます。この値は単なるリクエストであって、
-    サーバはこれを無視することもできますし、
-    任意の値をクライアントに通知することもできます。</p>
-
-    <p>クライアントに戻すロックタイムアウトの最小時間を、
-    秒で、指定するために <code class="directive">DavMinTimeout</code>
-    ディレクティブを使います。
-    マイクロソフトのウェブフォルダのデフォルトでは 120 秒ですが;
-    ネットワークの遅延のせいでクライアントがロックを失うのを減らすために、
-    <code class="directive">DavMinTimeout</code> を使って
-    これをもっと大きな値 (例えば 600 秒) に上書きできます。</p>
-
-    <div class="example"><h3>例</h3><pre class="prettyprint lang-config">&lt;Location /MSWord&gt;
-    DavMinTimeout 600
-&lt;/Location&gt;</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 1e7d0fa4b221e32cc95514bbaca745b95e75a0c7..ea2171e8479c32ed7ac91002cab7242ff0752091 100644 (file)
 <li><a href="http://www.webdav.org">WebDAV Á¤º¸</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>WebDAV HTTP ¸Þ½áµå¸¦ ½ÃÀÛÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>Dav Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>ÁöÁ¤ÇÑ À§Ä¡¿¡¼­ WebDAV HTTP ¸Þ½áµå¸¦ »ç¿ëÇÏ·Á¸é
+    <code class="directive">Dav</code> Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù:</p>
+
+    <div class="example"><p><code>
+      &lt;Location /foo&gt;<br />
+      <span class="indent">
+        Dav On<br />
+      </span>
+      &lt;/Location&gt;
+    </code></p></div>
+
+    <p><code>On</code> °ªÀº ½ÇÁ¦·Î <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
+    ¸ðµâÀÌ Á¦°øÇϴ ±âº» Á¦°øÀÚÀΠ<code>filesystem</code>ÀÇ
+    º°ÄªÀÌ´Ù. ¾î¶² À§Ä¡¿¡¼­ DAV¸¦ ½ÃÀÛÇϸé ÇÏÀ§°ø°£¿¡¼­ DAV¸¦
+    »ç¿ë¾ÈÇϵµ·Ï ¼³Á¤ÇÒ ¼ö <em>¾øÀ½À»</em> ÁÖÀÇÇ϶ó. ¿ÏÀüÇÑ
+    ¼³Á¤¿¹´Â <a href="#example">À§ÀÇ Àý</a>À» Âü°íÇ϶ó.</p>
+
+    <div class="warning">
+      ¼­¹ö¸¦ ¾ÈÀüÇϰԠ±¸¼ºÇÒ¶§±îÁö WebDAVÀ» »ç¿ëÇÏÁö ¸¶¶ó. ±×·¸Áö
+      ¾ÊÀ¸¸é ´©±¸¶óµµ ¼­¹ö¸¦ ÅëÇØ ÆÄÀÏÀ» ºÐ¹èÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>PROPFINDÀÇ Depth: Infinity ¿äûÀ» Çã°¡ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DavDepthInfinity off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dav</td></tr>
+</table>
+    <p><code class="directive">DavDepthInfinity</code> Áö½Ã¾î¸¦ »ç¿ëÇϸé
+    'Depth: Infinity' Çì´õ¸¦ °¡Áø <code>PROPFIND</code> ¿äûÀ»
+    Çã°¡ÇÑ´Ù. ÀÌ·± ¿äûÀ» »ç¿ëÇÏ¿© ¼­ºñ½º°ÅºÎ °ø°ÝÀÌ °¡´ÉÇϱâ
+    ¶§¹®¿¡ ±âº»ÀûÀ¸·Î Çã¿ëÇÏÁö ¾Ê´Â´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¼­¹ö°¡ DAV ÀÚ¿ø¿¡ ´ëÇØ À¯ÁöÇÒ Àá±ÝÀÇ Ãּҽð£</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DavMinTimeout 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dav</td></tr>
+</table>
+    <p>Ŭ¶óÀÌ¾ðÆ®°¡ DAV ÀÚ¿ø¿¡ Àá±Ý(lock)À» ¿äûÇÒ¶§ ¼­¹ö°¡
+    ¾Ë¾Æ¼­ Àá±ÝÀ» Á¦°ÅÇÒ ¼ö Àִ ½Ã°£À» °°ÀÌ ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ÀÌ °ªÀº
+    ´ÜÁö ¿äûÀÏ»ÓÀ̸ç, ¼­¹ö´Â Å¬¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ °ªÀ» ¹«½ÃÇϰí
+    Å¬¶óÀÌ¾ðÆ®¿¡°Ô ÀÓÀÇÀÇ ½Ã°£À» ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.</p>
+
+    <p><code class="directive">DavMinTimeout</code> Áö½Ã¾î´Â Å¬¶óÀÌ¾ðÆ®¿¡°Ô
+    º¸³¾ ÃÖ¼Ò Àá±Ý ½Ã°£À» (ÃÊ´ÜÀ§) ÁöÁ¤ÇÑ´Ù. Microsoft Web Folders´Â
+    ±âº»°ªÀ¸·Î 120 Ãʸ¦ »ç¿ëÇÑ´Ù. <code class="directive">DavMinTimeout</code>¿¡
+    (600 Ãʿ͠°°ÀÌ) ´õ ³ôÀº °ªÀ» »ç¿ëÇϸé Å¬¶óÀÌ¾ðÆ®°¡ ³×Æ®¿÷
+    Áö¿¬¶§¹®¿¡ Àá±ÝÀ» ÀҰԵǴ °æ¿ì¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.</p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      &lt;Location /MSWord&gt;<br />
+      <span class="indent">
+        DavMinTimeout 600<br />
+      </span>
+      &lt;/Location&gt;
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="example" id="example">WebDAV »ç¿ëÇϱâ</a></h2>
     <p><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code>¸¦ »ç¿ëÇÏ·Á¸é <code>httpd.conf</code>
@@ -179,85 +258,6 @@ Alias /php-source /home/gstein/php_files<br />
     <code>http://example.com/php-source</code>·Î´Â DAV Å¬¶óÀÌ¾ðÆ®¿¡¼­
     ½ºÅ©¸³Æ®¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Dav" id="Dav">Dav</a> <a name="dav" id="dav">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>WebDAV HTTP ¸Þ½áµå¸¦ ½ÃÀÛÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>Dav On|Off|<var>provider-name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>Dav Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>ÁöÁ¤ÇÑ À§Ä¡¿¡¼­ WebDAV HTTP ¸Þ½áµå¸¦ »ç¿ëÇÏ·Á¸é
-    <code class="directive">Dav</code> Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù:</p>
-
-    <div class="example"><p><code>
-      &lt;Location /foo&gt;<br />
-      <span class="indent">
-        Dav On<br />
-      </span>
-      &lt;/Location&gt;
-    </code></p></div>
-
-    <p><code>On</code> °ªÀº ½ÇÁ¦·Î <code class="module"><a href="../mod/mod_dav_fs.html">mod_dav_fs</a></code>
-    ¸ðµâÀÌ Á¦°øÇϴ ±âº» Á¦°øÀÚÀΠ<code>filesystem</code>ÀÇ
-    º°ÄªÀÌ´Ù. ¾î¶² À§Ä¡¿¡¼­ DAV¸¦ ½ÃÀÛÇϸé ÇÏÀ§°ø°£¿¡¼­ DAV¸¦
-    »ç¿ë¾ÈÇϵµ·Ï ¼³Á¤ÇÒ ¼ö <em>¾øÀ½À»</em> ÁÖÀÇÇ϶ó. ¿ÏÀüÇÑ
-    ¼³Á¤¿¹´Â <a href="#example">À§ÀÇ Àý</a>À» Âü°íÇ϶ó.</p>
-
-    <div class="warning">
-      ¼­¹ö¸¦ ¾ÈÀüÇϰԠ±¸¼ºÇÒ¶§±îÁö WebDAVÀ» »ç¿ëÇÏÁö ¸¶¶ó. ±×·¸Áö
-      ¾ÊÀ¸¸é ´©±¸¶óµµ ¼­¹ö¸¦ ÅëÇØ ÆÄÀÏÀ» ºÐ¹èÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DavDepthInfinity" id="DavDepthInfinity">DavDepthInfinity</a> <a name="davdepthinfinity" id="davdepthinfinity">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>PROPFINDÀÇ Depth: Infinity ¿äûÀ» Çã°¡ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DavDepthInfinity on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DavDepthInfinity off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dav</td></tr>
-</table>
-    <p><code class="directive">DavDepthInfinity</code> Áö½Ã¾î¸¦ »ç¿ëÇϸé
-    'Depth: Infinity' Çì´õ¸¦ °¡Áø <code>PROPFIND</code> ¿äûÀ»
-    Çã°¡ÇÑ´Ù. ÀÌ·± ¿äûÀ» »ç¿ëÇÏ¿© ¼­ºñ½º°ÅºÎ °ø°ÝÀÌ °¡´ÉÇϱâ
-    ¶§¹®¿¡ ±âº»ÀûÀ¸·Î Çã¿ëÇÏÁö ¾Ê´Â´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DavMinTimeout" id="DavMinTimeout">DavMinTimeout</a> <a name="davmintimeout" id="davmintimeout">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¼­¹ö°¡ DAV ÀÚ¿ø¿¡ ´ëÇØ À¯ÁöÇÒ Àá±ÝÀÇ Ãּҽð£</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DavMinTimeout <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DavMinTimeout 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dav</td></tr>
-</table>
-    <p>Ŭ¶óÀÌ¾ðÆ®°¡ DAV ÀÚ¿ø¿¡ Àá±Ý(lock)À» ¿äûÇÒ¶§ ¼­¹ö°¡
-    ¾Ë¾Æ¼­ Àá±ÝÀ» Á¦°ÅÇÒ ¼ö Àִ ½Ã°£À» °°ÀÌ ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. ÀÌ °ªÀº
-    ´ÜÁö ¿äûÀÏ»ÓÀ̸ç, ¼­¹ö´Â Å¬¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ °ªÀ» ¹«½ÃÇϰí
-    Å¬¶óÀÌ¾ðÆ®¿¡°Ô ÀÓÀÇÀÇ ½Ã°£À» ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.</p>
-
-    <p><code class="directive">DavMinTimeout</code> Áö½Ã¾î´Â Å¬¶óÀÌ¾ðÆ®¿¡°Ô
-    º¸³¾ ÃÖ¼Ò Àá±Ý ½Ã°£À» (ÃÊ´ÜÀ§) ÁöÁ¤ÇÑ´Ù. Microsoft Web Folders´Â
-    ±âº»°ªÀ¸·Î 120 Ãʸ¦ »ç¿ëÇÑ´Ù. <code class="directive">DavMinTimeout</code>¿¡
-    (600 Ãʿ͠°°ÀÌ) ´õ ³ôÀº °ªÀ» »ç¿ëÇϸé Å¬¶óÀÌ¾ðÆ®°¡ ³×Æ®¿÷
-    Áö¿¬¶§¹®¿¡ Àá±ÝÀ» ÀҰԵǴ °æ¿ì¸¦ ÁÙÀÏ ¼ö ÀÖ´Ù.</p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      &lt;Location /MSWord&gt;<br />
-      <span class="indent">
-        DavMinTimeout 600<br />
-      </span>
-      &lt;/Location&gt;
-    </code></p></div>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_dav.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 4e0e0280bc7e49a04e27b7d6c7e21540e3440655..4f252369c2fb073848e910bba6a4e27ba0b561ff 100644 (file)
@@ -56,7 +56,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DavLockDB" id="DavLockDB">DavLockDB</a> <a name="davlockdb" id="davlockdb">Directive</a></h2>
 <table class="directive">
@@ -88,6 +87,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dav_fs.html" title="English">&nbsp;en&nbsp;</a> |
index f538ffff0624d31a97036b49ad86638dfde59ec7..339370cd7d69e57d77e1024e36215f2a6f1c63d2 100644 (file)
@@ -60,7 +60,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="davlockdb" id="davlockdb">Directive</a> <a name="DavLockDB" id="DavLockDB">DavLockDB</a></h2>
 <table class="directive">
@@ -96,6 +95,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav_fs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 30094c040c6c17c1a8626f837d1a065edd78c0a9..6eaae0b14408dd5c496af8f402d1e6e743b0e446 100644 (file)
@@ -63,7 +63,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DavLockDB" id="DavLockDB">DavLockDB</a> <a name="davlockdb" id="davlockdb">ディレクティブ</a></h2>
 <table class="directive">
@@ -86,6 +85,7 @@
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dav_fs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 7b04d47b9c485d64b2c40e3842a7f88e4b6dc5f2..babdf635bda837f50efae53684c7a76490be87cb 100644 (file)
@@ -58,7 +58,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DavLockDB" id="DavLockDB">DavLockDB</a> <a name="davlockdb" id="davlockdb">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -91,6 +90,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_dav_fs.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index a0a99db81b166d6d8cd3dd74bddaf434cf9c8651..7014c28ae4f0b02c085497d30255e45f0811f108 100644 (file)
@@ -64,7 +64,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DavGenericLockDB" id="DavGenericLockDB">DavGenericLockDB</a> <a name="davgenericlockdb" id="davgenericlockdb">Directive</a></h2>
 <table class="directive">
@@ -94,6 +93,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dav_lock.html" title="English">&nbsp;en&nbsp;</a> |
index bfa2192d71cdff6c1692667ac21b0e04e74e559e..08a554cae052268db7fe3d045faf95fc7f94aa96 100644 (file)
@@ -69,7 +69,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="davgenericlockdb" id="davgenericlockdb">Directive</a> <a name="DavGenericLockDB" id="DavGenericLockDB">DavGenericLockDB</a></h2>
 <table class="directive">
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dav_lock.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f6775347ce64c77b4f630dbcccdaeb02c4f18b73..bf07de0d9d3b2c85a7278f020e2f0ef7d14b19f9 100644 (file)
@@ -67,7 +67,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_dav.html">mod_dav</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DavGenericLockDB" id="DavGenericLockDB">DavGenericLockDB</a> <a name="davgenericlockdb" id="davgenericlockdb">ディレクティブ</a></h2>
 <table class="directive">
@@ -98,6 +97,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dav_lock.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 158a00038f9b29c26c20b078005634826b83de27..edd3585bb062b4a85ac031c96d94d5c2d45eaf2f 100644 (file)
 <li><a href="../misc/password_encryptions.html">Password Formats</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="pooling" id="pooling">Connection Pooling</a></h2>
-    <p>This module manages database connections, in a manner
-    optimised for the platform.  On non-threaded platforms,
-    it provides a persistent connection in the manner of
-    classic LAMP (Linux, Apache, Mysql, Perl/PHP/Python).
-    On threaded platform, it provides an altogether more
-    scalable and efficient <em>connection pool</em>, as
-    described in <a href="http://www.apachetutor.org/dev/reslist">this
-    article at ApacheTutor</a>.  Note that <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>
-    supersedes the modules presented in that article.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="API" id="API">Apache DBD API</a></h2>
-    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exports five functions for other modules
-    to use. The API is as follows:</p>
-
-<pre class="prettyprint lang-c">typedef struct {
-    apr_dbd_t *handle;
-    apr_dbd_driver_t *driver;
-    apr_hash_t *prepared;
-} ap_dbd_t;
-
-/* Export functions to access the database */
-
-/* acquire a connection that MUST be explicitly closed.
- * Returns NULL on error
- */
-AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);
-
-/* release a connection acquired with ap_dbd_open */
-AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);
-
-/* acquire a connection that will have the lifetime of a request
- * and MUST NOT be explicitly closed.  Return NULL on error.
- * This is the preferred function for most applications.
- */
-AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);
-
-/* acquire a connection that will have the lifetime of a connection
- * and MUST NOT be explicitly closed.  Return NULL on error.
- */
-AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);
-
-/* Prepare a statement for use by a client module */
-AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);
-
-/* Also export them as optional functions for modules that prefer it */
-APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
-APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
-APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
-APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
-APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="prepared" id="prepared">SQL Prepared Statements</a></h2>
-    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supports SQL prepared statements on behalf
-    of modules that may wish to use them.  Each prepared statement
-    must be assigned a name (label), and they are stored in a hash:
-    the <code>prepared</code> field of an <code>ap_dbd_t</code>.
-    Hash entries are of type <code>apr_dbd_prepared_t</code>
-    and can be used in any of the apr_dbd prepared statement
-    SQL query or select commands.</p>
-
-    <p>It is up to dbd user modules to use the prepared statements
-    and document what statements can be specified in httpd.conf,
-    or to provide their own directives and use <code>ap_dbd_prepare</code>.</p>
-       
-       <div class="warning"><h3>Caveat</h3>
-       When using prepared statements with a MySQL database, it is preferred to set
-       <code>reconnect</code> to 0 in the connection string as to avoid errors that
-       arise from the MySQL client reconnecting without properly resetting the
-       prepared statements. If set to 1, any broken connections will be attempted
-       fixed, but as mod_dbd is not informed, the prepared statements will be invalidated.
-       </div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="security" id="security">SECURITY WARNING</a></h2>
-
-    <p>Any web/database application needs to secure itself against SQL
-    injection attacks.  In most cases, Apache DBD is safe, because
-    applications use prepared statements, and untrusted inputs are
-    only ever used as data.  Of course, if you use it via third-party
-    modules, you should ascertain what precautions they may require.</p>
-    <p>However, the <var>FreeTDS</var> driver is inherently
-    <strong>unsafe</strong>.  The underlying library doesn't support
-    prepared statements, so the driver emulates them, and the
-    untrusted input is merged into the SQL statement.</p>
-    <p>It can be made safe by <em>untainting</em> all inputs:
-    a process inspired by Perl's taint checking.  Each input
-    is matched against a regexp, and only the match is used,
-    according to the Perl idiom:</p>
-    <div class="example"><pre><code>  $untrusted =~ /([a-z]+)/;
-  $trusted = $1;</code></pre></div>
-    <p>To use this, the untainting regexps must be included in the
-    prepared statements configured.  The regexp follows immediately
-    after the % in the prepared statement, and is enclosed in
-    curly brackets {}.  For example, if your application expects
-    alphanumeric input, you can use:</p>
-    <div class="example"><p><code>
-       <code>"SELECT foo FROM bar WHERE input = %s"</code>
-    </code></p></div>
-    <p>with other drivers, and suffer nothing worse than a failed query.
-    But with FreeTDS you'd need:</p>
-    <div class="example"><p><code>
-       <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code>
-    </code></p></div>
-    <p>Now anything that doesn't match the regexp's $1 match is
-    discarded, so the statement is safe.</p>
-    <p>An alternative to this may be the third-party ODBC driver,
-    which offers the security of genuine prepared statements.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DBDExptime" id="DBDExptime">DBDExptime</a> <a name="dbdexptime" id="dbdexptime">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Keepalive time for idle connections</td></tr>
@@ -338,6 +224,120 @@ APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const c
     driver in apr_dbd_mysql.so.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="pooling" id="pooling">Connection Pooling</a></h2>
+    <p>This module manages database connections, in a manner
+    optimised for the platform.  On non-threaded platforms,
+    it provides a persistent connection in the manner of
+    classic LAMP (Linux, Apache, Mysql, Perl/PHP/Python).
+    On threaded platform, it provides an altogether more
+    scalable and efficient <em>connection pool</em>, as
+    described in <a href="http://www.apachetutor.org/dev/reslist">this
+    article at ApacheTutor</a>.  Note that <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>
+    supersedes the modules presented in that article.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="API" id="API">Apache DBD API</a></h2>
+    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exports five functions for other modules
+    to use. The API is as follows:</p>
+
+<pre class="prettyprint lang-c">typedef struct {
+    apr_dbd_t *handle;
+    apr_dbd_driver_t *driver;
+    apr_hash_t *prepared;
+} ap_dbd_t;
+
+/* Export functions to access the database */
+
+/* acquire a connection that MUST be explicitly closed.
+ * Returns NULL on error
+ */
+AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);
+
+/* release a connection acquired with ap_dbd_open */
+AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);
+
+/* acquire a connection that will have the lifetime of a request
+ * and MUST NOT be explicitly closed.  Return NULL on error.
+ * This is the preferred function for most applications.
+ */
+AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);
+
+/* acquire a connection that will have the lifetime of a connection
+ * and MUST NOT be explicitly closed.  Return NULL on error.
+ */
+AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);
+
+/* Prepare a statement for use by a client module */
+AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);
+
+/* Also export them as optional functions for modules that prefer it */
+APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
+APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
+APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
+APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
+APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="prepared" id="prepared">SQL Prepared Statements</a></h2>
+    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supports SQL prepared statements on behalf
+    of modules that may wish to use them.  Each prepared statement
+    must be assigned a name (label), and they are stored in a hash:
+    the <code>prepared</code> field of an <code>ap_dbd_t</code>.
+    Hash entries are of type <code>apr_dbd_prepared_t</code>
+    and can be used in any of the apr_dbd prepared statement
+    SQL query or select commands.</p>
+
+    <p>It is up to dbd user modules to use the prepared statements
+    and document what statements can be specified in httpd.conf,
+    or to provide their own directives and use <code>ap_dbd_prepare</code>.</p>
+       
+       <div class="warning"><h3>Caveat</h3>
+       When using prepared statements with a MySQL database, it is preferred to set
+       <code>reconnect</code> to 0 in the connection string as to avoid errors that
+       arise from the MySQL client reconnecting without properly resetting the
+       prepared statements. If set to 1, any broken connections will be attempted
+       fixed, but as mod_dbd is not informed, the prepared statements will be invalidated.
+       </div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="security" id="security">SECURITY WARNING</a></h2>
+
+    <p>Any web/database application needs to secure itself against SQL
+    injection attacks.  In most cases, Apache DBD is safe, because
+    applications use prepared statements, and untrusted inputs are
+    only ever used as data.  Of course, if you use it via third-party
+    modules, you should ascertain what precautions they may require.</p>
+    <p>However, the <var>FreeTDS</var> driver is inherently
+    <strong>unsafe</strong>.  The underlying library doesn't support
+    prepared statements, so the driver emulates them, and the
+    untrusted input is merged into the SQL statement.</p>
+    <p>It can be made safe by <em>untainting</em> all inputs:
+    a process inspired by Perl's taint checking.  Each input
+    is matched against a regexp, and only the match is used,
+    according to the Perl idiom:</p>
+    <div class="example"><pre><code>  $untrusted =~ /([a-z]+)/;
+  $trusted = $1;</code></pre></div>
+    <p>To use this, the untainting regexps must be included in the
+    prepared statements configured.  The regexp follows immediately
+    after the % in the prepared statement, and is enclosed in
+    curly brackets {}.  For example, if your application expects
+    alphanumeric input, you can use:</p>
+    <div class="example"><p><code>
+       <code>"SELECT foo FROM bar WHERE input = %s"</code>
+    </code></p></div>
+    <p>with other drivers, and suffer nothing worse than a failed query.
+    But with FreeTDS you'd need:</p>
+    <div class="example"><p><code>
+       <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code>
+    </code></p></div>
+    <p>Now anything that doesn't match the regexp's $1 match is
+    discarded, so the statement is safe.</p>
+    <p>An alternative to this may be the third-party ODBC driver,
+    which offers the security of genuine prepared statements.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dbd.html" title="English">&nbsp;en&nbsp;</a> |
index cdc08466d2cbbec9f8c98d6bfdbc39794f1ea4fa..584370f6da897270d26fb7ab5e1a4600e56079c9 100644 (file)
 passe</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="pooling" id="pooling">Regroupement des connexions</a></h2>
-    <p>Ce module gère de manière optimisée en fonction de la plate-forme
-    les connexions aux bases de données. Sur les plates-formes non
-    threadées, il maintient une connexion persistente à la manière d'un
-    LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les
-    plates-formes threadées, il maintient un <em>groupe de
-    connexions</em> à la fois plus évolutif et plus efficace, comme
-    décrit dans <a href="http://www.apachetutor.org/dev/reslist">cet
-    article d'ApacheTutor</a>. Notez que <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>
-    remplace les modules présentés dans cet article.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="API" id="API">API DBD d'Apache</a></h2>
-    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exporte cinq fonctions que d'autres
-    modules pourront utiliser. L'API se présente comme suit :</p>
-
-    <pre class="prettyprint lang-c">typedef struct {
-    apr_dbd_t *handle;
-    apr_dbd_driver_t *driver;
-    apr_hash_t *prepared;
-} ap_dbd_t;
-
-/* Fonctions exportées pour accéder à la base de données */
-
-/* ouvre une connexion qui DOIT avoir été explicitement fermée.
- * Renvoie NULL en cas d'erreur
- */
-AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);
-
-/* ferme une connexion ouverte avec ap_dbd_open */
-AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);
-
-/* acquiert une connexion qui aura la durée de vie de la requête et qui
- * NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas
- * d'erreur. C'est la fonction recommandée pour la plupart des
- * applications.
- */
-AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);
-
-/* acquiert une connexion qui aura la durée de vie d'une connexion et
- * qui NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas
- * d'erreur.
- */
-AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);
-
-/* Prépare une requête qu'un module client pourra utiliser */
-AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);
-
-/* Exporte aussi ces fonctions à titre optionnel mour les modules qui
- * péfèreraient les utiliser */
-APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
-APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
-APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
-APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
-APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="prepared" id="prepared">Requêtes SQL préparées</a></h2>
-    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supporte les requêtes SQL préparées à
-    destination des modules qui pourraient les utiliser. Chaque requête
-    préparée doit posséder un nom (étiquette), et est stockée dans un
-    condensé (hash) : les condensés sont du type
-    <code>apr_dbd_prepared_t</code> et s'utilisent dans toute requête
-    SQL ou commande select préparée par apr_dbd.</p>
-
-    <p>Il est du ressort des modules utilisateurs de dbd d'utiliser les
-    requêtes préparées et de préciser quelles requêtes doivent être
-    spécifiées dans httpd.conf, ou de fournir leurs propres directives
-    et d'utiliser <code>ap_dbd_prepare</code>.</p>
-
-    <div class="warning"><h3>Avertissement</h3>
-       Lorsqu'on utilise des requêtes préparées avec des bases de
-       données MySQL, il est préférable de définir
-       <code>reconnect</code> à 0 dans la chaîne de connexion, afin
-       d'éviter des erreurs provoquées par un client MySQL qui se
-       reconnecterait sans réinitialiser correctement les requêtes
-       préparées. Si <code>reconnect</code> est défini à 1, toute
-       connexion défectueuse sera sensée être réparée, mais comme
-       mod_dbd n'en est pas informé, les requêtes préparées seront
-       invalidées.
-       </div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="security" id="security">AVERTISSEMENT DE SECURITE</a></h2>
-
-    <p>Toute application web impliquant une base de données doit se
-    protéger elle-même contre les attaques de type injection SQL. Dans
-    la plupart des cas Apache DBD est sûr, car les applications
-    utilisent des requêtes préparées, et les entrées non sures ne seront
-    utilisées qu'à titre de données. Bien entendu, si vous l'utilisez
-    via un module tiers, vous devez être au fait des précautions à
-    prendre.</p>
-    <p>Cependant, le pilote <var>FreeTDS</var> est <strong>non
-    sûr</strong> de par sa nature-même. Comme la bibliothèque
-    sous-jacente ne supporte pas les requêtes préparées, le pilote en
-    effectue une émulation, et les entrées non sûres sont fusionnées
-    avec la requête SQL.</p>
-    <p>Il peut être sécurisé en <em>décontaminant</em> toutes les
-    entrées : un processus inspiré de la recherche de contaminations
-    (<strong>taint mode</strong>) de
-    Perl. Chaque entrée est comparée à une expression rationnelle, et
-    seules les entrées qui correspondent sont utilisées, en accord avec
-    le langage Perl :</p>
-    <div class="example"><pre><code>  $untrusted =~ /([a-z]+)/;
-  $trusted = $1;</code></pre></div>
-    <p>Pour utiliser ceci, les expressions rationnelles de
-    décontamination doivent être incluses dans les requêtes préparées.
-    L'expression rationnelle doit se situer immédiatement après le
-    caractère % dans la requête préparée, et doit être entourée
-    d'accolades {}. Par exemple, si votre application attend une entrée
-    alphanumérique, vous pouvez utiliser :</p>
-    <div class="example"><p><code>
-       <code>"SELECT foo FROM bar WHERE input = %s"</code>
-    </code></p></div>
-    <p>avec d'autres pilotes, et ne risquer au pire qu'une requête
-    échouée. Mais avec FreeTDS, vous devez utiliser :</p>
-    <div class="example"><p><code>
-       <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code>
-    </code></p></div>
-    <p>tout ce qui ne correspond pas à l'expression rationnelle est
-    alors rejeté, et la requête est maintenant sûre.</p>
-    <p>Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui
-    offre la sécurité des requêtes préparées authentiques.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="dbdexptime" id="dbdexptime">Directive</a> <a name="DBDExptime" id="DBDExptime">DBDExptime</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie des connexions inactives</td></tr>
@@ -365,6 +238,133 @@ donn
     dans la bibliothèque apr_dbd_mysql.so.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="pooling" id="pooling">Regroupement des connexions</a></h2>
+    <p>Ce module gère de manière optimisée en fonction de la plate-forme
+    les connexions aux bases de données. Sur les plates-formes non
+    threadées, il maintient une connexion persistente à la manière d'un
+    LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les
+    plates-formes threadées, il maintient un <em>groupe de
+    connexions</em> à la fois plus évolutif et plus efficace, comme
+    décrit dans <a href="http://www.apachetutor.org/dev/reslist">cet
+    article d'ApacheTutor</a>. Notez que <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>
+    remplace les modules présentés dans cet article.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="API" id="API">API DBD d'Apache</a></h2>
+    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> exporte cinq fonctions que d'autres
+    modules pourront utiliser. L'API se présente comme suit :</p>
+
+    <pre class="prettyprint lang-c">typedef struct {
+    apr_dbd_t *handle;
+    apr_dbd_driver_t *driver;
+    apr_hash_t *prepared;
+} ap_dbd_t;
+
+/* Fonctions exportées pour accéder à la base de données */
+
+/* ouvre une connexion qui DOIT avoir été explicitement fermée.
+ * Renvoie NULL en cas d'erreur
+ */
+AP_DECLARE(ap_dbd_t*) ap_dbd_open(apr_pool_t*, server_rec*);
+
+/* ferme une connexion ouverte avec ap_dbd_open */
+AP_DECLARE(void) ap_dbd_close(server_rec*, ap_dbd_t*);
+
+/* acquiert une connexion qui aura la durée de vie de la requête et qui
+ * NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas
+ * d'erreur. C'est la fonction recommandée pour la plupart des
+ * applications.
+ */
+AP_DECLARE(ap_dbd_t*) ap_dbd_acquire(request_rec*);
+
+/* acquiert une connexion qui aura la durée de vie d'une connexion et
+ * qui NE DOIT PAS avoir été explicitement fermée. Renvoie NULL en cas
+ * d'erreur.
+ */
+AP_DECLARE(ap_dbd_t*) ap_dbd_cacquire(conn_rec*);
+
+/* Prépare une requête qu'un module client pourra utiliser */
+AP_DECLARE(void) ap_dbd_prepare(server_rec*, const char*, const char*);
+
+/* Exporte aussi ces fonctions à titre optionnel mour les modules qui
+ * péfèreraient les utiliser */
+APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_open, (apr_pool_t*, server_rec*));
+APR_DECLARE_OPTIONAL_FN(void, ap_dbd_close, (server_rec*, ap_dbd_t*));
+APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_acquire, (request_rec*));
+APR_DECLARE_OPTIONAL_FN(ap_dbd_t*, ap_dbd_cacquire, (conn_rec*));
+APR_DECLARE_OPTIONAL_FN(void, ap_dbd_prepare, (server_rec*, const char*, const char*));</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="prepared" id="prepared">Requêtes SQL préparées</a></h2>
+    <p><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> supporte les requêtes SQL préparées à
+    destination des modules qui pourraient les utiliser. Chaque requête
+    préparée doit posséder un nom (étiquette), et est stockée dans un
+    condensé (hash) : les condensés sont du type
+    <code>apr_dbd_prepared_t</code> et s'utilisent dans toute requête
+    SQL ou commande select préparée par apr_dbd.</p>
+
+    <p>Il est du ressort des modules utilisateurs de dbd d'utiliser les
+    requêtes préparées et de préciser quelles requêtes doivent être
+    spécifiées dans httpd.conf, ou de fournir leurs propres directives
+    et d'utiliser <code>ap_dbd_prepare</code>.</p>
+
+    <div class="warning"><h3>Avertissement</h3>
+       Lorsqu'on utilise des requêtes préparées avec des bases de
+       données MySQL, il est préférable de définir
+       <code>reconnect</code> à 0 dans la chaîne de connexion, afin
+       d'éviter des erreurs provoquées par un client MySQL qui se
+       reconnecterait sans réinitialiser correctement les requêtes
+       préparées. Si <code>reconnect</code> est défini à 1, toute
+       connexion défectueuse sera sensée être réparée, mais comme
+       mod_dbd n'en est pas informé, les requêtes préparées seront
+       invalidées.
+       </div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="security" id="security">AVERTISSEMENT DE SECURITE</a></h2>
+
+    <p>Toute application web impliquant une base de données doit se
+    protéger elle-même contre les attaques de type injection SQL. Dans
+    la plupart des cas Apache DBD est sûr, car les applications
+    utilisent des requêtes préparées, et les entrées non sures ne seront
+    utilisées qu'à titre de données. Bien entendu, si vous l'utilisez
+    via un module tiers, vous devez être au fait des précautions à
+    prendre.</p>
+    <p>Cependant, le pilote <var>FreeTDS</var> est <strong>non
+    sûr</strong> de par sa nature-même. Comme la bibliothèque
+    sous-jacente ne supporte pas les requêtes préparées, le pilote en
+    effectue une émulation, et les entrées non sûres sont fusionnées
+    avec la requête SQL.</p>
+    <p>Il peut être sécurisé en <em>décontaminant</em> toutes les
+    entrées : un processus inspiré de la recherche de contaminations
+    (<strong>taint mode</strong>) de
+    Perl. Chaque entrée est comparée à une expression rationnelle, et
+    seules les entrées qui correspondent sont utilisées, en accord avec
+    le langage Perl :</p>
+    <div class="example"><pre><code>  $untrusted =~ /([a-z]+)/;
+  $trusted = $1;</code></pre></div>
+    <p>Pour utiliser ceci, les expressions rationnelles de
+    décontamination doivent être incluses dans les requêtes préparées.
+    L'expression rationnelle doit se situer immédiatement après le
+    caractère % dans la requête préparée, et doit être entourée
+    d'accolades {}. Par exemple, si votre application attend une entrée
+    alphanumérique, vous pouvez utiliser :</p>
+    <div class="example"><p><code>
+       <code>"SELECT foo FROM bar WHERE input = %s"</code>
+    </code></p></div>
+    <p>avec d'autres pilotes, et ne risquer au pire qu'une requête
+    échouée. Mais avec FreeTDS, vous devez utiliser :</p>
+    <div class="example"><p><code>
+       <code>"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"</code>
+    </code></p></div>
+    <p>tout ce qui ne correspond pas à l'expression rationnelle est
+    alors rejeté, et la requête est maintenant sûre.</p>
+    <p>Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui
+    offre la sécurité des requêtes préparées authentiques.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index ec74a5f2aca3588ac17c9d9be43507f905564977..41852d194be21b3f8c9b284e6417492080b79e81 100644 (file)
@@ -64,172 +64,6 @@ content</a></li>
 <li><a href="../filter.html">Filters</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="recommended" id="recommended">Sample Configurations</a></h2>
-    <div class="warning"><h3>Compression and TLS</h3>
-        <p>Some web applications are vulnerable to an information disclosure
-        attack when a TLS connection carries deflate compressed data. For more
-        information, review the details of the "BREACH" family of attacks.</p>
-    </div>
-    <p>This is a simple configuration that compresses common text-based content types.</p>
-
-    <div class="example"><h3>Compress only a few types</h3><pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript</pre>
-</div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enable" id="enable">Enabling Compression</a></h2>
-    <div class="warning"><h3>Compression and TLS</h3>
-        <p>Some web applications are vulnerable to an information disclosure
-        attack when a TLS connection carries deflate compressed data. For more
-        information, review the details of the "BREACH" family of attacks.</p>
-    </div>
-
-    <h3><a name="output" id="output">Output Compression</a></h3>
-      <p>Compression is implemented by the <code>DEFLATE</code>
-      <a href="../filter.html">filter</a>. The following directive
-      will enable compression for documents in the container where it
-      is placed:</p>
-
-      <pre class="prettyprint lang-config">SetOutputFilter DEFLATE
-SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip</pre>
-
-
-      <p>If you want to restrict the compression to particular MIME types
-      in general, you may use the <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code> directive. Here is an example of
-      enabling compression only for the html files of the Apache
-      documentation:</p>
-
-      <pre class="prettyprint lang-config">&lt;Directory "/your-server-root/manual"&gt;
-    AddOutputFilterByType DEFLATE text/html
-&lt;/Directory&gt;</pre>
-
-
-      <div class="note"><h3>Note</h3>
-        The <code>DEFLATE</code> filter is always inserted after RESOURCE
-        filters like PHP or SSI. It never touches internal subrequests.
-      </div>
-      <div class="note"><h3>Note</h3>
-        There is an environment variable <code>force-gzip</code>,
-        set via <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, which
-        will ignore the accept-encoding setting of your browser and will
-        send compressed output.
-      </div>
-
-    
-    <h3><a name="inflate" id="inflate">Output Decompression</a></h3>
-      <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
-      inflating/uncompressing a gzip compressed response body. In order to activate
-      this feature you have to insert the <code>INFLATE</code> filter into
-      the output filter chain using <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code> or <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, for example:</p>
-
-      <pre class="prettyprint lang-config">&lt;Location "/dav-area"&gt;
-    ProxyPass "http://example.com/"
-    SetOutputFilter INFLATE
-&lt;/Location&gt;</pre>
-
-
-      <p>This Example will uncompress gzip'ed output from example.com, so other
-      filters can do further processing with it.
-      </p>
-
-    
-    <h3><a name="input" id="input">Input Decompression</a></h3>
-      <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
-      decompressing a gzip compressed request body . In order to activate
-      this feature you have to insert the <code>DEFLATE</code> filter into
-      the input filter chain using <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code> or <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, for example:</p>
-
-      <pre class="prettyprint lang-config">&lt;Location "/dav-area"&gt;
-    SetInputFilter DEFLATE
-&lt;/Location&gt;</pre>
-
-
-      <p>Now if a request contains a <code>Content-Encoding:
-      gzip</code> header, the body will be automatically decompressed.
-      Few browsers have the ability to gzip request bodies. However,
-      some special applications actually do support request
-      compression, for instance some <a href="http://www.webdav.org">WebDAV</a> clients.</p>
-
-      <div class="warning"><h3>Note on Content-Length</h3>
-        <p>If you evaluate the request body yourself, <em>don't trust
-        the <code>Content-Length</code> header!</em>
-        The Content-Length header reflects the length of the
-        incoming data from the client and <em>not</em> the byte count of
-        the decompressed data stream.</p>
-      </div>
-    
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="proxies" id="proxies">Dealing with proxy servers</a></h2>
-
-    <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module sends a <code>Vary:
-    Accept-Encoding</code> HTTP response header to alert proxies that
-    a cached response should be sent only to clients that send the
-    appropriate <code>Accept-Encoding</code> request header.  This
-    prevents compressed content from being sent to a client that will
-    not understand it.</p>
-
-    <p>If you use some special exclusions dependent
-    on, for example, the <code>User-Agent</code> header, you must
-    manually configure an addition to the <code>Vary</code> header
-    to alert proxies of the additional restrictions.  For example,
-    in a typical configuration where the addition of the <code>DEFLATE</code>
-    filter depends on the <code>User-Agent</code>, you should add:</p>
-
-    <pre class="prettyprint lang-config">Header append Vary User-Agent</pre>
-
-
-    <p>If your decision about compression depends on other information
-    than request headers (<em>e.g.</em> HTTP version), you have to set the
-    <code>Vary</code> header to the value <code>*</code>. This prevents
-    compliant proxies from caching entirely.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">Header set Vary *</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="precompressed" id="precompressed">Serving pre-compressed
-content</a></h2>
-
-    <p>Since <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> re-compresses content each 
-    time a request is made, some performance benefit can be derived by
-    pre-compressing the content and telling mod_deflate to serve them
-    without re-compressing them. This may be accomplished using a
-    configuration like the following:</p>
-
-    <pre class="prettyprint lang-config">&lt;IfModule mod_headers.c&gt;
-    # Serve gzip compressed CSS files if they exist 
-    # and the client accepts gzip.
-    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
-    RewriteCond "%{REQUEST_FILENAME}\.gz" -s
-    RewriteRule "^(.*)\.css" "$1\.css\.gz" [QSA]
-
-    # Serve gzip compressed JS files if they exist 
-    # and the client accepts gzip.
-    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
-    RewriteCond "%{REQUEST_FILENAME}\.gz" -s
-    RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA]
-
-
-    # Serve correct content types, and prevent mod_deflate double gzip.
-    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1]
-    RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1]
-
-
-    &lt;FilesMatch "(\.js\.gz|\.css\.gz)$"&gt;
-      # Serve correct encoding type.
-      Header append Content-Encoding gzip
-
-      # Force proxies to cache gzipped &amp; 
-      # non-gzipped css/js files separately.
-      Header append Vary Accept-Encoding
-    &lt;/FilesMatch&gt;
-&lt;/IfModule&gt;</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fragment size to be compressed at one time by zlib</td></tr>
@@ -397,6 +231,172 @@ CustomLog "logs/deflate_log" deflate</pre>
     zlib compression window size (a value between 1 and 15). Generally, the
     higher the window size, the higher can the compression ratio be expected.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="recommended" id="recommended">Sample Configurations</a></h2>
+    <div class="warning"><h3>Compression and TLS</h3>
+        <p>Some web applications are vulnerable to an information disclosure
+        attack when a TLS connection carries deflate compressed data. For more
+        information, review the details of the "BREACH" family of attacks.</p>
+    </div>
+    <p>This is a simple configuration that compresses common text-based content types.</p>
+
+    <div class="example"><h3>Compress only a few types</h3><pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript</pre>
+</div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enable" id="enable">Enabling Compression</a></h2>
+    <div class="warning"><h3>Compression and TLS</h3>
+        <p>Some web applications are vulnerable to an information disclosure
+        attack when a TLS connection carries deflate compressed data. For more
+        information, review the details of the "BREACH" family of attacks.</p>
+    </div>
+
+    <h3><a name="output" id="output">Output Compression</a></h3>
+      <p>Compression is implemented by the <code>DEFLATE</code>
+      <a href="../filter.html">filter</a>. The following directive
+      will enable compression for documents in the container where it
+      is placed:</p>
+
+      <pre class="prettyprint lang-config">SetOutputFilter DEFLATE
+SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip</pre>
+
+
+      <p>If you want to restrict the compression to particular MIME types
+      in general, you may use the <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code> directive. Here is an example of
+      enabling compression only for the html files of the Apache
+      documentation:</p>
+
+      <pre class="prettyprint lang-config">&lt;Directory "/your-server-root/manual"&gt;
+    AddOutputFilterByType DEFLATE text/html
+&lt;/Directory&gt;</pre>
+
+
+      <div class="note"><h3>Note</h3>
+        The <code>DEFLATE</code> filter is always inserted after RESOURCE
+        filters like PHP or SSI. It never touches internal subrequests.
+      </div>
+      <div class="note"><h3>Note</h3>
+        There is an environment variable <code>force-gzip</code>,
+        set via <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, which
+        will ignore the accept-encoding setting of your browser and will
+        send compressed output.
+      </div>
+
+    
+    <h3><a name="inflate" id="inflate">Output Decompression</a></h3>
+      <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
+      inflating/uncompressing a gzip compressed response body. In order to activate
+      this feature you have to insert the <code>INFLATE</code> filter into
+      the output filter chain using <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code> or <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, for example:</p>
+
+      <pre class="prettyprint lang-config">&lt;Location "/dav-area"&gt;
+    ProxyPass "http://example.com/"
+    SetOutputFilter INFLATE
+&lt;/Location&gt;</pre>
+
+
+      <p>This Example will uncompress gzip'ed output from example.com, so other
+      filters can do further processing with it.
+      </p>
+
+    
+    <h3><a name="input" id="input">Input Decompression</a></h3>
+      <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module also provides a filter for
+      decompressing a gzip compressed request body . In order to activate
+      this feature you have to insert the <code>DEFLATE</code> filter into
+      the input filter chain using <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code> or <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, for example:</p>
+
+      <pre class="prettyprint lang-config">&lt;Location "/dav-area"&gt;
+    SetInputFilter DEFLATE
+&lt;/Location&gt;</pre>
+
+
+      <p>Now if a request contains a <code>Content-Encoding:
+      gzip</code> header, the body will be automatically decompressed.
+      Few browsers have the ability to gzip request bodies. However,
+      some special applications actually do support request
+      compression, for instance some <a href="http://www.webdav.org">WebDAV</a> clients.</p>
+
+      <div class="warning"><h3>Note on Content-Length</h3>
+        <p>If you evaluate the request body yourself, <em>don't trust
+        the <code>Content-Length</code> header!</em>
+        The Content-Length header reflects the length of the
+        incoming data from the client and <em>not</em> the byte count of
+        the decompressed data stream.</p>
+      </div>
+    
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="proxies" id="proxies">Dealing with proxy servers</a></h2>
+
+    <p>The <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> module sends a <code>Vary:
+    Accept-Encoding</code> HTTP response header to alert proxies that
+    a cached response should be sent only to clients that send the
+    appropriate <code>Accept-Encoding</code> request header.  This
+    prevents compressed content from being sent to a client that will
+    not understand it.</p>
+
+    <p>If you use some special exclusions dependent
+    on, for example, the <code>User-Agent</code> header, you must
+    manually configure an addition to the <code>Vary</code> header
+    to alert proxies of the additional restrictions.  For example,
+    in a typical configuration where the addition of the <code>DEFLATE</code>
+    filter depends on the <code>User-Agent</code>, you should add:</p>
+
+    <pre class="prettyprint lang-config">Header append Vary User-Agent</pre>
+
+
+    <p>If your decision about compression depends on other information
+    than request headers (<em>e.g.</em> HTTP version), you have to set the
+    <code>Vary</code> header to the value <code>*</code>. This prevents
+    compliant proxies from caching entirely.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">Header set Vary *</pre>
+</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="precompressed" id="precompressed">Serving pre-compressed
+content</a></h2>
+
+    <p>Since <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> re-compresses content each 
+    time a request is made, some performance benefit can be derived by
+    pre-compressing the content and telling mod_deflate to serve them
+    without re-compressing them. This may be accomplished using a
+    configuration like the following:</p>
+
+    <pre class="prettyprint lang-config">&lt;IfModule mod_headers.c&gt;
+    # Serve gzip compressed CSS files if they exist 
+    # and the client accepts gzip.
+    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
+    RewriteCond "%{REQUEST_FILENAME}\.gz" -s
+    RewriteRule "^(.*)\.css" "$1\.css\.gz" [QSA]
+
+    # Serve gzip compressed JS files if they exist 
+    # and the client accepts gzip.
+    RewriteCond "%{HTTP:Accept-encoding}" "gzip"
+    RewriteCond "%{REQUEST_FILENAME}\.gz" -s
+    RewriteRule "^(.*)\.js" "$1\.js\.gz" [QSA]
+
+
+    # Serve correct content types, and prevent mod_deflate double gzip.
+    RewriteRule "\.css\.gz$" "-" [T=text/css,E=no-gzip:1]
+    RewriteRule "\.js\.gz$" "-" [T=text/javascript,E=no-gzip:1]
+
+
+    &lt;FilesMatch "(\.js\.gz|\.css\.gz)$"&gt;
+      # Serve correct encoding type.
+      Header append Content-Encoding gzip
+
+      # Force proxies to cache gzipped &amp; 
+      # non-gzipped css/js files separately.
+      Header append Vary Accept-Encoding
+    &lt;/FilesMatch&gt;
+&lt;/IfModule&gt;</pre>
+
+
 </div>
 </div>
 <div class="bottomlang">
index 1397ca481d4602847b37898d9f02d84f9b7ba7d0..7e543341115495f2e09a0e83d5b38fc0bd5b3d48 100644 (file)
@@ -63,148 +63,6 @@ client</td></tr>
 <li><a href="../filter.html">Les filtres</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="recommended" id="recommended">Exemples de configurations</a></h2>
-    <div class="warning"><h3>Compression et TLS</h3>
-        <p>Certaines applications web sont vulnérables aux attaques
-       visant le vol d'information lorsqu'une connexion TLS transmet
-       des données compressées par deflate. Pour plus de détails,
-       étudiez les attaques de la famille "BREACH".</p>
-    </div>
-    <p>Voici une configuration simple qui comprime les contenus à base
-    de texte courants.</p>
-
-    <div class="example"><h3>Ne comprime que certains types de documents</h3><pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript</pre>
-</div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enable" id="enable">Activation de la compression</a></h2>
-
-    <div class="warning"><h3>Compression et TLS</h3>
-        <p>Certaines applications web sont vulnérables aux attaques pour
-       vol d'information lorsque la connexion TLS transmet des données
-       compressées par deflate. Pour plus d'informations, voir en
-       détails la famille d'attaques de type "BREACH".</p>
-    </div>
-
-    <h3><a name="output" id="output">Compression de la sortie</a></h3>
-      <p>La compression est implémentée par le <a href="../filter.html">filtre</a> <code>DEFLATE</code>. La
-      directive suivante active la compression des documents dans le
-      conteneur où elle est placée :</p>
-
-      <pre class="prettyprint lang-config">SetOutputFilter DEFLATE
-SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip</pre>
-
-
-      <p>Si vous voulez limiter la compression à certains types MIME
-      particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Voici un exemple
-      où la compression n'est activée que pour les fichiers html de la
-      documentation d'Apache :</p>
-
-      <pre class="prettyprint lang-config">&lt;Directory "/your-server-root/manual"&gt;
-    AddOutputFilterByType DEFLATE text/html
-&lt;/Directory&gt;</pre>
-
-
-      <div class="note"><h3>Note</h3>
-        Le filtre <code>DEFLATE</code> est toujours inséré après les
-       filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les
-       sous-requêtes internes.
-      </div>
-      <div class="note"><h3>Note</h3>
-        La variable d'environnement <code>force-gzip</code>, définie à
-       l'aide de la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, permet d'ignorer la
-       configuration de votre navigateur quant aux codages acceptés, et
-       d'envoyer sans condition une sortie comprimée.
-      </div>
-
-    
-    <h3><a name="inflate" id="inflate">Décompression de la sortie</a></h3>
-      <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit aussi un filtre
-      permettant de décomprimer un corps de réponse comprimé par gzip.
-      Pour activer cette fonctionnalité, vous devez insérer le filtre
-      <code>INFLATE</code> dans la chaîne de filtrage en sortie via la
-      directive <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code> ou
-      <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, comme
-      dans l'exemple suivant :</p>
-
-      <pre class="prettyprint lang-config">&lt;Location /dav-area&gt;
-    ProxyPass http://example.com/
-    SetOutputFilter INFLATE
-&lt;/Location&gt;</pre>
-
-
-      <p>Dans cet exemple, les sorties comprimées par gzip en
-      provenance de example.com seront décomprimées afin de pouvoir
-      être éventuellement traitées par d'autres filtres.
-      </p>
-
-    
-    <h3><a name="input" id="input">Décompression de l'entrée</a></h3>
-      <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit également un filtre
-      permettant de décomprimer un corps de requête comprimé par gzip.
-      Pour activer cette fonctionnalité, vous devez insérer le filtre
-      <code>DEFLATE</code> dans la chaîne de filtrage en entrée via la
-      directive <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code> ou
-      <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, comme
-      dans l'exemple suivant :</p>
-
-      <pre class="prettyprint lang-config">&lt;Location /dav-area&gt;
-    SetInputFilter DEFLATE
-&lt;/Location&gt;</pre>
-
-
-      <p>Désormais, si une requête contient un en-tête
-      <code>Content-Encoding: gzip</code>, son corps sera
-      automatiquement décomprimé. Peu de navigateurs sont actuellement
-      en mesure de comprimer les corps de requêtes. Cependant,
-      certaines applications spécialisées supportent les requêtes
-      comprimées, comme par exemple certains clients <a href="http://www.webdav.org">WebDAV</a>.</p>
-
-      <div class="warning"><h3>Note à propos de l'en-tête
-      <code>Content-Length</code></h3>
-        <p>Si vous évaluez vous-même la taille du corps de requête,
-       <em>ne faites pas confiance à l'en-tête
-       <code>Content-Length</code>!</em> L'en-tête
-       Content-Length indique la longueur des données en provenance du
-       client, et <em>non</em> la quantité d'octets que représente le
-       flux de données décompressé.</p>
-      </div>
-    
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="proxies" id="proxies">Prise en compte des serveurs mandataires</a></h2>
-
-    <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> envoie un en-tête de
-    réponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les
-    mandataires qu'une réponse enregistrée dans le cache ne doit être
-    envoyée qu'aux clients qui ont envoyé l'en-tête de requête
-    <code>Accept-Encoding</code> approprié. Ceci permet d'éviter l'envoi
-    d'un contenu comprimé à un client qui ne sera pas en mesure
-    de l'interpréter.</p>
-
-    <p>Si vous avez défini des exclusions spécifiques dépendant, par
-    exemple, de l'en-tête <code>User-Agent</code>, vous devez
-    ajouter manuellement des données à l'en-tête <code>Vary</code> afin
-    d'informer les mandataires des restrictions supplémentaires. Par
-    exemple, dans la configuration classique où l'addition du filtre
-    <code>DEFLATE</code> dépend du contenu de l'en-tête
-    <code>User-Agent</code>, vous devez spécifier :</p>
-
-    <pre class="prettyprint lang-config">Header append Vary User-Agent</pre>
-
-
-    <p>Si votre décision de comprimer le contenu dépend d'autres
-    informations que celles contenues dans les en-têtes de la requête
-    (par exemple la version HTTP), vous devez attribuer à l'en-tête
-    <code>Vary</code> la valeur <code>*</code>, ce qui permet d'empêcher
-    les mandataires compatibles de tout mettre en cache.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">Header set Vary *</pre>
-</div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="deflatebuffersize" id="deflatebuffersize">Directive</a> <a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du fragment que zlib devra comprimer en une seule
@@ -389,6 +247,148 @@ compression</td></tr>
     1 et 15). En général, plus grande sera la taille de la fenêtre, plus
     grand sera le taux de compression auquel on pourra s'attendre.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="recommended" id="recommended">Exemples de configurations</a></h2>
+    <div class="warning"><h3>Compression et TLS</h3>
+        <p>Certaines applications web sont vulnérables aux attaques
+       visant le vol d'information lorsqu'une connexion TLS transmet
+       des données compressées par deflate. Pour plus de détails,
+       étudiez les attaques de la famille "BREACH".</p>
+    </div>
+    <p>Voici une configuration simple qui comprime les contenus à base
+    de texte courants.</p>
+
+    <div class="example"><h3>Ne comprime que certains types de documents</h3><pre class="prettyprint lang-config">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript</pre>
+</div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enable" id="enable">Activation de la compression</a></h2>
+
+    <div class="warning"><h3>Compression et TLS</h3>
+        <p>Certaines applications web sont vulnérables aux attaques pour
+       vol d'information lorsque la connexion TLS transmet des données
+       compressées par deflate. Pour plus d'informations, voir en
+       détails la famille d'attaques de type "BREACH".</p>
+    </div>
+
+    <h3><a name="output" id="output">Compression de la sortie</a></h3>
+      <p>La compression est implémentée par le <a href="../filter.html">filtre</a> <code>DEFLATE</code>. La
+      directive suivante active la compression des documents dans le
+      conteneur où elle est placée :</p>
+
+      <pre class="prettyprint lang-config">SetOutputFilter DEFLATE
+SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip</pre>
+
+
+      <p>Si vous voulez limiter la compression à certains types MIME
+      particuliers, vous pouvez utiliser la directive <code class="directive"><a href="../mod/mod_filter.html#addoutputfilterbytype">AddOutputFilterByType</a></code>. Voici un exemple
+      où la compression n'est activée que pour les fichiers html de la
+      documentation d'Apache :</p>
+
+      <pre class="prettyprint lang-config">&lt;Directory "/your-server-root/manual"&gt;
+    AddOutputFilterByType DEFLATE text/html
+&lt;/Directory&gt;</pre>
+
+
+      <div class="note"><h3>Note</h3>
+        Le filtre <code>DEFLATE</code> est toujours inséré après les
+       filtres RESOURCE comme PHP ou SSI. Il n'affecte jamais les
+       sous-requêtes internes.
+      </div>
+      <div class="note"><h3>Note</h3>
+        La variable d'environnement <code>force-gzip</code>, définie à
+       l'aide de la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>, permet d'ignorer la
+       configuration de votre navigateur quant aux codages acceptés, et
+       d'envoyer sans condition une sortie comprimée.
+      </div>
+
+    
+    <h3><a name="inflate" id="inflate">Décompression de la sortie</a></h3>
+      <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit aussi un filtre
+      permettant de décomprimer un corps de réponse comprimé par gzip.
+      Pour activer cette fonctionnalité, vous devez insérer le filtre
+      <code>INFLATE</code> dans la chaîne de filtrage en sortie via la
+      directive <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code> ou
+      <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code>, comme
+      dans l'exemple suivant :</p>
+
+      <pre class="prettyprint lang-config">&lt;Location /dav-area&gt;
+    ProxyPass http://example.com/
+    SetOutputFilter INFLATE
+&lt;/Location&gt;</pre>
+
+
+      <p>Dans cet exemple, les sorties comprimées par gzip en
+      provenance de example.com seront décomprimées afin de pouvoir
+      être éventuellement traitées par d'autres filtres.
+      </p>
+
+    
+    <h3><a name="input" id="input">Décompression de l'entrée</a></h3>
+      <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> fournit également un filtre
+      permettant de décomprimer un corps de requête comprimé par gzip.
+      Pour activer cette fonctionnalité, vous devez insérer le filtre
+      <code>DEFLATE</code> dans la chaîne de filtrage en entrée via la
+      directive <code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code> ou
+      <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code>, comme
+      dans l'exemple suivant :</p>
+
+      <pre class="prettyprint lang-config">&lt;Location /dav-area&gt;
+    SetInputFilter DEFLATE
+&lt;/Location&gt;</pre>
+
+
+      <p>Désormais, si une requête contient un en-tête
+      <code>Content-Encoding: gzip</code>, son corps sera
+      automatiquement décomprimé. Peu de navigateurs sont actuellement
+      en mesure de comprimer les corps de requêtes. Cependant,
+      certaines applications spécialisées supportent les requêtes
+      comprimées, comme par exemple certains clients <a href="http://www.webdav.org">WebDAV</a>.</p>
+
+      <div class="warning"><h3>Note à propos de l'en-tête
+      <code>Content-Length</code></h3>
+        <p>Si vous évaluez vous-même la taille du corps de requête,
+       <em>ne faites pas confiance à l'en-tête
+       <code>Content-Length</code>!</em> L'en-tête
+       Content-Length indique la longueur des données en provenance du
+       client, et <em>non</em> la quantité d'octets que représente le
+       flux de données décompressé.</p>
+      </div>
+    
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="proxies" id="proxies">Prise en compte des serveurs mandataires</a></h2>
+
+    <p>Le module <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> envoie un en-tête de
+    réponse HTTP <code>Vary: Accept-Encoding</code> pour avertir les
+    mandataires qu'une réponse enregistrée dans le cache ne doit être
+    envoyée qu'aux clients qui ont envoyé l'en-tête de requête
+    <code>Accept-Encoding</code> approprié. Ceci permet d'éviter l'envoi
+    d'un contenu comprimé à un client qui ne sera pas en mesure
+    de l'interpréter.</p>
+
+    <p>Si vous avez défini des exclusions spécifiques dépendant, par
+    exemple, de l'en-tête <code>User-Agent</code>, vous devez
+    ajouter manuellement des données à l'en-tête <code>Vary</code> afin
+    d'informer les mandataires des restrictions supplémentaires. Par
+    exemple, dans la configuration classique où l'addition du filtre
+    <code>DEFLATE</code> dépend du contenu de l'en-tête
+    <code>User-Agent</code>, vous devez spécifier :</p>
+
+    <pre class="prettyprint lang-config">Header append Vary User-Agent</pre>
+
+
+    <p>Si votre décision de comprimer le contenu dépend d'autres
+    informations que celles contenues dans les en-têtes de la requête
+    (par exemple la version HTTP), vous devez attribuer à l'en-tête
+    <code>Vary</code> la valeur <code>*</code>, ce qui permet d'empêcher
+    les mandataires compatibles de tout mettre en cache.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">Header set Vary *</pre>
+</div>
 </div>
 </div>
 <div class="bottomlang">
index 481f835015012d8dd289883fd9f8b4b33c0cc1fa..ef35210b7af9ad0e806d01121c83b0d6c150f0f4 100644 (file)
 <li><a href="../filter.html">Filters</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>zlib が一度に圧縮する塊の大きさ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+</table>
+    <p><code class="directive">DeflateBufferSize</code> ディレクティブは
+    zlib が一度に圧縮する塊の大きさをバイト単位で指定します。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>出力に対して行なう圧縮の程度</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Zlib のデフォルト</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>This directive is available since Apache 2.0.45</td></tr>
+</table>
+     <p><code class="directive">DeflateCompressionLevel</code> ディレクティブは
+         圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、
+         CPU 資源を消費します。</p>
+    <p>値は 1 (低圧縮) から 9 (高圧縮) です。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ロギング用に圧縮比をメモに追加</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td><var>type</var> is available since Apache 2.0.45</td></tr>
+</table>
+    <p><code class="directive">DeflateFilterNote</code> ディレクティブは
+    圧縮比に関するメモがリクエストに付加されることを指定します。
+    メモ (note) の名前はディレクティブに指定された値です。
+    メモは<a href="../logs.html#accesslog">アクセスログ</a>に
+    値を記録し、統計を取る目的にも使えます。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      DeflateFilterNote ratio<br />
+      <br />
+      LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
+      CustomLog logs/deflate_log deflate
+    </code></p></div>
+
+    <p>ログからもっと精密な値を抽出したい場合は、<var>type</var>
+    引数を使用して、データタイプをログのメモとして残すように指定できます。
+    <var>type</var> は次のうちの一つです。</p>
+
+    <dl>
+      <dt><code>Input</code></dt>
+      <dd>フィルタの入力ストリームのバイトカウントをメモに保存する。</dd>
+
+      <dt><code>Output</code></dt>
+      <dd>フィルタの出力ストリームのバイトカウントをメモに保存する。</dd>
+
+      <dt><code>Ratio</code></dt>
+      <dd>圧縮率 (<code>出力 / 入力 * 100</code>) をメモに保存する。
+      <var>type</var> 引数を省略した場合は、これがデフォルトとなります。</dd>
+    </dl>
+
+    <p>まとめると、次のようにログを取ることになるでしょう。</p>
+
+    <div class="example"><h3>精密なログ採取</h3><p><code>
+      DeflateFilterNote Input instream<br />
+      DeflateFilterNote Output outstream<br />
+      DeflateFilterNote Ratio ratio<br />
+      <br />
+      LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
+      CustomLog logs/deflate_log deflate
+    </code></p></div>
+
+<h3>参照</h3>
+<ul>
+<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateInflateLimitRequestBody" id="DeflateInflateLimitRequestBody">DeflateInflateLimitRequestBody</a> <a name="deflateinflatelimitrequestbody" id="deflateinflatelimitrequestbody">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum size of inflated request bodies</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateLimitRequestBody<var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>None, but LimitRequestBody applies after deflation</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.4.10 and later</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum number of times the inflation ratio for request bodies 
+             can be crossed</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>3</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.4.10 and later</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateInflateRatioLimit" id="DeflateInflateRatioLimit">DeflateInflateRatioLimit</a> <a name="deflateinflateratiolimit" id="deflateinflateratiolimit">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum inflation ratio for request bodies</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateRatioLimit <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>200</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.4.10 and later</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>zlib が圧縮に使うメモリのレベルを指定</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+</table>
+    <p><code class="directive">DeflateMemLevel</code> ディレクティブは
+    zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
+    (訳注: 2 を底とする対数の値になります。
+    8 程度が良いでしょう。)</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Zlib の圧縮用ウィンドウの大きさ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
+</table>
+    <p><code class="directive">DeflateWindowSize</code> ディレクティブは
+    zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) 
+    の大きさを指定します (1 から 15 の間の値)。
+    一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
+    (訳注: 2 を底とする対数の値になります。
+    8 から 15 にするのが良いでしょう。)</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="recommended" id="recommended">サンプル設定</a></h2>
     <p>下にせっかちな人向けの簡単な設定例を示します。</p>
       Header set Vary *
     </code></p></div>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>zlib が一度に圧縮する塊の大きさ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-</table>
-    <p><code class="directive">DeflateBufferSize</code> ディレクティブは
-    zlib が一度に圧縮する塊の大きさをバイト単位で指定します。</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>出力に対して行なう圧縮の程度</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Zlib のデフォルト</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>This directive is available since Apache 2.0.45</td></tr>
-</table>
-     <p><code class="directive">DeflateCompressionLevel</code> ディレクティブは
-         圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、
-         CPU 資源を消費します。</p>
-    <p>値は 1 (低圧縮) から 9 (高圧縮) です。</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ロギング用に圧縮比をメモに追加</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td><var>type</var> is available since Apache 2.0.45</td></tr>
-</table>
-    <p><code class="directive">DeflateFilterNote</code> ディレクティブは
-    圧縮比に関するメモがリクエストに付加されることを指定します。
-    メモ (note) の名前はディレクティブに指定された値です。
-    メモは<a href="../logs.html#accesslog">アクセスログ</a>に
-    値を記録し、統計を取る目的にも使えます。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      DeflateFilterNote ratio<br />
-      <br />
-      LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
-      CustomLog logs/deflate_log deflate
-    </code></p></div>
-
-    <p>ログからもっと精密な値を抽出したい場合は、<var>type</var>
-    引数を使用して、データタイプをログのメモとして残すように指定できます。
-    <var>type</var> は次のうちの一つです。</p>
-
-    <dl>
-      <dt><code>Input</code></dt>
-      <dd>フィルタの入力ストリームのバイトカウントをメモに保存する。</dd>
-
-      <dt><code>Output</code></dt>
-      <dd>フィルタの出力ストリームのバイトカウントをメモに保存する。</dd>
-
-      <dt><code>Ratio</code></dt>
-      <dd>圧縮率 (<code>出力 / 入力 * 100</code>) をメモに保存する。
-      <var>type</var> 引数を省略した場合は、これがデフォルトとなります。</dd>
-    </dl>
-
-    <p>まとめると、次のようにログを取ることになるでしょう。</p>
-
-    <div class="example"><h3>精密なログ採取</h3><p><code>
-      DeflateFilterNote Input instream<br />
-      DeflateFilterNote Output outstream<br />
-      DeflateFilterNote Ratio ratio<br />
-      <br />
-      LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
-      CustomLog logs/deflate_log deflate
-    </code></p></div>
-
-<h3>参照</h3>
-<ul>
-<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateInflateLimitRequestBody" id="DeflateInflateLimitRequestBody">DeflateInflateLimitRequestBody</a> <a name="deflateinflatelimitrequestbody" id="deflateinflatelimitrequestbody">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum size of inflated request bodies</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateLimitRequestBody<var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>None, but LimitRequestBody applies after deflation</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.4.10 and later</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum number of times the inflation ratio for request bodies 
-             can be crossed</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>3</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.4.10 and later</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateInflateRatioLimit" id="DeflateInflateRatioLimit">DeflateInflateRatioLimit</a> <a name="deflateinflateratiolimit" id="deflateinflateratiolimit">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Maximum inflation ratio for request bodies</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateInflateRatioLimit <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>200</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.4.10 and later</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>zlib が圧縮に使うメモリのレベルを指定</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-</table>
-    <p><code class="directive">DeflateMemLevel</code> ディレクティブは
-    zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
-    (訳注: 2 を底とする対数の値になります。
-    8 程度が良いでしょう。)</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Zlib の圧縮用ウィンドウの大きさ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
-</table>
-    <p><code class="directive">DeflateWindowSize</code> ディレクティブは
-    zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) 
-    の大きさを指定します (1 から 15 の間の値)。
-    一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
-    (訳注: 2 を底とする対数の値になります。
-    8 から 15 にするのが良いでしょう。)</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index bcf266f318a79fc8d75202f8cb7716d868966c1f..5529f23fe0f2e08a7dd87e70d90dffdf23959754 100644 (file)
 <li><a href="../filter.html">ÇÊÅÍ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>zlibÀÌ Çѹø¿¡ ¾ÐÃàÇÒ Å©±â</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+</table>
+    <p><code class="directive">DeflateBufferSize</code> Áö½Ã¾î´Â zlibÀÌ
+    Çѹø¿¡ ¾ÐÃàÇÒ ¹ÙÀÌÆ®¼ö¸¦ ÁöÁ¤ÇÑ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Ãâ·ÂÀ» ¾î´ÀÁ¤µµ ¾ÐÃàÇϴ°¡</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>Zlib's default</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>¾ÆÆÄÄ¡ 2.0.45 ºÎÅÍ</td></tr>
+</table>
+    <p><code class="directive">DeflateCompressionLevel</code> Áö½Ã¾î´Â
+        »ç¿ëÇÒ ¾ÐÃà¼öÁØÀ» ¼±ÅÃÇÑ´Ù. °ªÀ̠Ŭ¼ö·Ï ¾ÐÃà·üÀÌ Áõ°¡ÇÏÁö¸¸,
+        CPU¸¦ ´õ ¸¹ÀÌ »ç¿ëÇÑ´Ù.</p>
+    <p>(°¡Àå ´ú ¾ÐÃà) 1°ú (°¡Àå ¸¹ÀÌ ¾ÐÃà) 9 »çÀÌÀÇ °ªÀ» ÁöÁ¤ÇÑ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¾ÐÃà·üÀ» ·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td><var>type</var>Àº ¾ÆÆÄÄ¡ 2.0.4 ºÎÅÍ</td></tr>
+</table>
+    <p><code class="directive">DeflateFilterNote</code> Áö½Ã¾î´Â ¿äûÀÇ
+    ¾ÐÃà·üÀ» ·Î±×¿¡ ±â·ÏÇϴ ±âÈ£¸¦ ÁöÁ¤ÇÑ´Ù. ±âÈ£ À̸§Àº Áö½Ã¾î·Î
+    ÁöÁ¤ÇÑ °ªÀÌ´Ù. Åë°è¸¦ À§ÇØ <a href="../logs.html#accesslog">Á¢±Ù
+    ·Î±×</a>¿¡¼­ ±âÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      DeflateFilterNote ratio<br />
+      <br />
+      LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
+      CustomLog logs/deflate_log deflate
+    </code></p></div>
+
+    <p>·Î±×¿¡¼­ ´õ Á¤È®ÇÑ °ªÀ» ÃßÃâÇÏ·Á¸é <var>type</var> ¾Æ±Ô¸ÕÆ®·Î
+    ±â·ÏÇÒ ÀڷḦ ¼±ÅÃÇÑ´Ù. <var>type</var>´Â ´ÙÀ½Áß ÇϳªÀÌ´Ù:</p>
+
+    <dl>
+      <dt><code>Input</code></dt>
+      <dd>ÇÊÅÍ ÀԷ½ºÆ®¸²ÀÇ ¹ÙÀÌÆ®¼ö¸¦ ÀúÀåÇÑ´Ù.</dd>
+
+      <dt><code>Output</code></dt>
+      <dd>ÇÊÅÍ Ãâ·Â½ºÆ®¸²ÀÇ ¹ÙÀÌÆ®¼ö¸¦ ÀúÀåÇÑ´Ù..</dd>
+
+      <dt><code>Ratio</code></dt>
+      <dd>¾ÐÃà·üÀ» (<code>output/input * 100</code>) ÀúÀåÇÑ´Ù.
+       <var>type</var> ¾Æ±Ô¸ÕÆ®¸¦ »ý·«Çϸ頻ç¿ëÇϴ ±âº»°ªÀÌ´Ù.</dd>
+    </dl>
+
+    <p>±×·¡¼­ ÀÌ·¸°Ô ·Î±×¿¡ ±â·ÏÇÒ ¼ö ÀÖ´Ù:</p>
+
+    <div class="example"><h3>Á¤¹ÐÇÑ ·Î±×</h3><p><code>
+      DeflateFilterNote Input instream<br />
+      DeflateFilterNote Output outstream<br />
+      DeflateFilterNote Ratio ratio<br />
+      <br />
+      LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
+      CustomLog logs/deflate_log deflate
+    </code></p></div>
+
+<h3>Âü°í</h3>
+<ul>
+<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateInflateLimitRequestBody" id="DeflateInflateLimitRequestBody">DeflateInflateLimitRequestBody</a> <a name="deflateinflatelimitrequestbody" id="deflateinflatelimitrequestbody">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum size of inflated request bodies</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateLimitRequestBody<var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>None, but LimitRequestBody applies after deflation</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>2.4.10 and later</td></tr>
+</table><p>The documentation for this directive has
+            not been translated yet. Please have a look at the English
+            version.</p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum number of times the inflation ratio for request bodies 
+             can be crossed</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>3</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>2.4.10 and later</td></tr>
+</table><p>The documentation for this directive has
+            not been translated yet. Please have a look at the English
+            version.</p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateInflateRatioLimit" id="DeflateInflateRatioLimit">DeflateInflateRatioLimit</a> <a name="deflateinflateratiolimit" id="deflateinflateratiolimit">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum inflation ratio for request bodies</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateRatioLimit <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>200</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>2.4.10 and later</td></tr>
+</table><p>The documentation for this directive has
+            not been translated yet. Please have a look at the English
+            version.</p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>zlibÀÌ ¾ÐÃàÇÒ¶§ »ç¿ëÇϴ ¸Þ¸ð¸®·®</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+</table>
+    <p><code class="directive">DeflateMemLevel</code> Áö½Ã¾î´Â zlibÀÌ
+    ¾ÐÃàÇÒ¶§ ¾ó¸¶¸¸Å­ ¸Þ¸ð¸®¸¦ »ç¿ëÇÒÁö °áÁ¤ÇÑ´Ù. (1°ú 9 »çÀÌÀÇ
+    °ª)</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Zlib ¾ÐÃà window size</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
+</table>
+    <p><code class="directive">DeflateWindowSize</code> Áö½Ã¾î´Â zlib
+    ¾ÐÃà window size¸¦ (1°ú 15 »çÀÌÀÇ °ª) ÁöÁ¤ÇÑ´Ù. ÀϹÝÀûÀ¸·Î
+    window size°¡ Å¬¼ö·Ï ¾ÐÃà·üÀÌ Áõ°¡ÇÑ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="recommended" id="recommended">°ßº» ¼³Á¤</a></h2>
     <p>±ÞÇÑ »ç¶÷À» À§ÇÑ °ßº» ¼³Á¤ÀÌ´Ù.</p>
       Header set Vary *
     </code></p></div>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>zlibÀÌ Çѹø¿¡ ¾ÐÃàÇÒ Å©±â</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-</table>
-    <p><code class="directive">DeflateBufferSize</code> Áö½Ã¾î´Â zlibÀÌ
-    Çѹø¿¡ ¾ÐÃàÇÒ ¹ÙÀÌÆ®¼ö¸¦ ÁöÁ¤ÇÑ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Ãâ·ÂÀ» ¾î´ÀÁ¤µµ ¾ÐÃàÇϴ°¡</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>Zlib's default</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>¾ÆÆÄÄ¡ 2.0.45 ºÎÅÍ</td></tr>
-</table>
-    <p><code class="directive">DeflateCompressionLevel</code> Áö½Ã¾î´Â
-        »ç¿ëÇÒ ¾ÐÃà¼öÁØÀ» ¼±ÅÃÇÑ´Ù. °ªÀ̠Ŭ¼ö·Ï ¾ÐÃà·üÀÌ Áõ°¡ÇÏÁö¸¸,
-        CPU¸¦ ´õ ¸¹ÀÌ »ç¿ëÇÑ´Ù.</p>
-    <p>(°¡Àå ´ú ¾ÐÃà) 1°ú (°¡Àå ¸¹ÀÌ ¾ÐÃà) 9 »çÀÌÀÇ °ªÀ» ÁöÁ¤ÇÑ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¾ÐÃà·üÀ» ·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td><var>type</var>Àº ¾ÆÆÄÄ¡ 2.0.4 ºÎÅÍ</td></tr>
-</table>
-    <p><code class="directive">DeflateFilterNote</code> Áö½Ã¾î´Â ¿äûÀÇ
-    ¾ÐÃà·üÀ» ·Î±×¿¡ ±â·ÏÇϴ ±âÈ£¸¦ ÁöÁ¤ÇÑ´Ù. ±âÈ£ À̸§Àº Áö½Ã¾î·Î
-    ÁöÁ¤ÇÑ °ªÀÌ´Ù. Åë°è¸¦ À§ÇØ <a href="../logs.html#accesslog">Á¢±Ù
-    ·Î±×</a>¿¡¼­ ±âÈ£¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      DeflateFilterNote ratio<br />
-      <br />
-      LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
-      CustomLog logs/deflate_log deflate
-    </code></p></div>
-
-    <p>·Î±×¿¡¼­ ´õ Á¤È®ÇÑ °ªÀ» ÃßÃâÇÏ·Á¸é <var>type</var> ¾Æ±Ô¸ÕÆ®·Î
-    ±â·ÏÇÒ ÀڷḦ ¼±ÅÃÇÑ´Ù. <var>type</var>´Â ´ÙÀ½Áß ÇϳªÀÌ´Ù:</p>
-
-    <dl>
-      <dt><code>Input</code></dt>
-      <dd>ÇÊÅÍ ÀԷ½ºÆ®¸²ÀÇ ¹ÙÀÌÆ®¼ö¸¦ ÀúÀåÇÑ´Ù.</dd>
-
-      <dt><code>Output</code></dt>
-      <dd>ÇÊÅÍ Ãâ·Â½ºÆ®¸²ÀÇ ¹ÙÀÌÆ®¼ö¸¦ ÀúÀåÇÑ´Ù..</dd>
-
-      <dt><code>Ratio</code></dt>
-      <dd>¾ÐÃà·üÀ» (<code>output/input * 100</code>) ÀúÀåÇÑ´Ù.
-       <var>type</var> ¾Æ±Ô¸ÕÆ®¸¦ »ý·«Çϸ頻ç¿ëÇϴ ±âº»°ªÀÌ´Ù.</dd>
-    </dl>
-
-    <p>±×·¡¼­ ÀÌ·¸°Ô ·Î±×¿¡ ±â·ÏÇÒ ¼ö ÀÖ´Ù:</p>
-
-    <div class="example"><h3>Á¤¹ÐÇÑ ·Î±×</h3><p><code>
-      DeflateFilterNote Input instream<br />
-      DeflateFilterNote Output outstream<br />
-      DeflateFilterNote Ratio ratio<br />
-      <br />
-      LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
-      CustomLog logs/deflate_log deflate
-    </code></p></div>
-
-<h3>Âü°í</h3>
-<ul>
-<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateInflateLimitRequestBody" id="DeflateInflateLimitRequestBody">DeflateInflateLimitRequestBody</a> <a name="deflateinflatelimitrequestbody" id="deflateinflatelimitrequestbody">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum size of inflated request bodies</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateLimitRequestBody<var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>None, but LimitRequestBody applies after deflation</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>2.4.10 and later</td></tr>
-</table><p>The documentation for this directive has
-            not been translated yet. Please have a look at the English
-            version.</p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateInflateRatioBurst" id="DeflateInflateRatioBurst">DeflateInflateRatioBurst</a> <a name="deflateinflateratioburst" id="deflateinflateratioburst">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum number of times the inflation ratio for request bodies 
-             can be crossed</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateRatioBurst <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>3</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>2.4.10 and later</td></tr>
-</table><p>The documentation for this directive has
-            not been translated yet. Please have a look at the English
-            version.</p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateInflateRatioLimit" id="DeflateInflateRatioLimit">DeflateInflateRatioLimit</a> <a name="deflateinflateratiolimit" id="deflateinflateratiolimit">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Maximum inflation ratio for request bodies</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateInflateRatioLimit <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>200</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>2.4.10 and later</td></tr>
-</table><p>The documentation for this directive has
-            not been translated yet. Please have a look at the English
-            version.</p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>zlibÀÌ ¾ÐÃàÇÒ¶§ »ç¿ëÇϴ ¸Þ¸ð¸®·®</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-</table>
-    <p><code class="directive">DeflateMemLevel</code> Áö½Ã¾î´Â zlibÀÌ
-    ¾ÐÃàÇÒ¶§ ¾ó¸¶¸¸Å­ ¸Þ¸ð¸®¸¦ »ç¿ëÇÒÁö °áÁ¤ÇÑ´Ù. (1°ú 9 »çÀÌÀÇ
-    °ª)</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Zlib ¾ÐÃà window size</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_deflate</td></tr>
-</table>
-    <p><code class="directive">DeflateWindowSize</code> Áö½Ã¾î´Â zlib
-    ¾ÐÃà window size¸¦ (1°ú 15 »çÀÌÀÇ °ª) ÁöÁ¤ÇÑ´Ù. ÀϹÝÀûÀ¸·Î
-    window size°¡ Å¬¼ö·Ï ¾ÐÃà·üÀÌ Áõ°¡ÇÑ´Ù.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index c08fca1d8703807413f056b5fb4110df0fe1ce2b..16524cd712246b86702643111855dab007069696 100644 (file)
@@ -53,7 +53,6 @@ once the timer hits.  From there the handler can continue to send data to the cl
 <li><img alt="" src="../images/down.gif" /> <a href="#modemstandard">ModemStandard</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ModemStandard" id="ModemStandard">ModemStandard</a> <a name="modemstandard" id="modemstandard">Directive</a></h2>
 <table class="directive">
@@ -72,6 +71,7 @@ once the timer hits.  From there the handler can continue to send data to the cl
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dialup.html" title="English">&nbsp;en&nbsp;</a> |
index 0af133314e0078b7284ac79a504d89b9147fa10e..c83ad00f37d94ebc988d0e5945f51c60ebcdef59 100644 (file)
@@ -60,7 +60,6 @@ client.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#modemstandard">ModemStandard</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="modemstandard" id="modemstandard">Directive</a> <a name="ModemStandard" id="ModemStandard">ModemStandard</a></h2>
 <table class="directive">
@@ -80,6 +79,7 @@ souhaitez simuler.</p>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dialup.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 59bfc3faf632745fcce6385a32289b86f2e65d99..7139b54edce57b5f88f25bda1aedce8856c9830d 100644 (file)
@@ -68,7 +68,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">Directive</a></h2>
 <table class="directive">
@@ -307,6 +306,7 @@ later</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dir.html" title="English">&nbsp;en&nbsp;</a> |
index a4d8702af5c2d63256fb211d35732ec9ca593cfe..d138285bc16e0e8edfa60184602aa3f515487acb 100644 (file)
@@ -71,7 +71,6 @@ de r
 <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="directorycheckhandler" id="directorycheckhandler">Directive</a> <a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a></h2>
 <table class="directive">
@@ -342,6 +341,7 @@ de la version 2.4.4 du serveur HTTP Apache.</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 94fc0639471c5eb262d4aab5acad58df77433e50..926633865096ca68e1126ba31bb475ec857b140a 100644 (file)
@@ -76,7 +76,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">ディレクティブ</a></h2>
 <table class="directive">
@@ -223,6 +222,7 @@ act as if "DirectoryCheckHandler ON" was specified.</td></tr>
 <tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_dir</td></tr>
 </table><p>Documentation not yet translated. Please see English version of document.</p>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3fc808935373d9d267ee4eb7042071cbf5c1a027..4485d25c4b6664cd2cb16d2471b5398dd72de400 100644 (file)
@@ -69,7 +69,6 @@ index 
 <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -208,6 +207,7 @@ act as if "DirectoryCheckHandler ON" was specified.</td></tr>
 <tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_dir</td></tr>
 </table><p>Documentation not yet translated. Please see English version of document.</p>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 10e412dead0a542a74d4ddfec9355d4a12a628b8..65d68a215daaaec016d340fcfb6dad2c2a56f556 100644 (file)
@@ -67,7 +67,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#fallbackresource">FallbackResource</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DirectoryCheckHandler" id="DirectoryCheckHandler">DirectoryCheckHandler</a> <a name="directorycheckhandler" id="directorycheckhandler">Yönergesi</a></h2>
 <table class="directive">
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_dir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 245b587ddd9b164279f1f7c4c56f4541e9254470..8b608cf29ef33d9305a6d57d50bf0357e7332b89 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Enabling dumpio Support</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enable" id="enable">Enabling dumpio Support</a></h2>
-    
-
-    <p>To enable the module, it should be compiled and loaded
-    in to your running Apache configuration. Logging can then
-    be enabled or disabled separately for input and output via
-    the below directives.  Additionally, <code class="module"><a href="../mod/mod_dumpio.html">mod_dumpio</a></code>
-    needs to be configured to <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code>:
-    </p>
-    <pre class="prettyprint lang-config">LogLevel dumpio:trace7</pre>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DumpIOInput" id="DumpIOInput">DumpIOInput</a> <a name="dumpioinput" id="dumpioinput">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dump all input data to the error log</td></tr>
@@ -102,6 +88,20 @@ later.</td></tr>
     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">DumpIOOutput On</pre>
 </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enable" id="enable">Enabling dumpio Support</a></h2>
+    
+
+    <p>To enable the module, it should be compiled and loaded
+    in to your running Apache configuration. Logging can then
+    be enabled or disabled separately for input and output via
+    the below directives.  Additionally, <code class="module"><a href="../mod/mod_dumpio.html">mod_dumpio</a></code>
+    needs to be configured to <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code>:
+    </p>
+    <pre class="prettyprint lang-config">LogLevel dumpio:trace7</pre>
+
 </div>
 </div>
 <div class="bottomlang">
index 7d6a0f9ff8fb307206e134fec2d0320752391922..224f51fda23c613a253cc7fbb748520d675cab76 100644 (file)
@@ -56,19 +56,6 @@ erreurs de la mani
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation du support dumpio</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enable" id="enable">Activation du support dumpio</a></h2>
-    
-
-    <p>Pour activer le module, ce dernier doit être compilé et chargé
-    par l'intermédiaire de la configuration de votre instance d'Apache.
-    La journalisation peut ensuite être activée ou désactivée séparément
-    pour les entrées et sorties à l'aide des directives ci-dessous. En
-    outre, <code class="module"><a href="../mod/mod_dumpio.html">mod_dumpio</a></code> doit être configuré à <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code> :</p>
-    <pre class="prettyprint lang-config">LogLevel dumpio:trace7</pre>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="dumpioinput" id="dumpioinput">Directive</a> <a name="DumpIOInput" id="DumpIOInput">DumpIOInput</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre toutes les entrées dans le journal des
@@ -105,6 +92,19 @@ d'Apache.</td></tr>
     <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">DumpIOOutput On</pre>
 </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enable" id="enable">Activation du support dumpio</a></h2>
+    
+
+    <p>Pour activer le module, ce dernier doit être compilé et chargé
+    par l'intermédiaire de la configuration de votre instance d'Apache.
+    La journalisation peut ensuite être activée ou désactivée séparément
+    pour les entrées et sorties à l'aide des directives ci-dessous. En
+    outre, <code class="module"><a href="../mod/mod_dumpio.html">mod_dumpio</a></code> doit être configuré à <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> <code>trace7</code> :</p>
+    <pre class="prettyprint lang-config">LogLevel dumpio:trace7</pre>
+
 </div>
 </div>
 <div class="bottomlang">
index 0aee76fe49494e75894d2229a5af01bce2545643..5984acb733e8d5cfa1cf54ee7b0f187b7d3c8150 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">dumpio サポートを有効にする</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enable" id="enable">dumpio サポートを有効にする</a></h2>
-    
-
-    <p>このモジュールを有効にするには、モジュールがコンパイルされていて、
-    実行する Apache の設定でサーバに組み込まれている必要があります。
-    ロギング機能は、以下のディレクティブを使って有効にしたり
-    無効にしたりできます。</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DumpIOInput" id="DumpIOInput">DumpIOInput</a> <a name="dumpioinput" id="dumpioinput">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>エラーログにすべての入力データをダンプ</td></tr>
     </code></p></div>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enable" id="enable">dumpio サポートを有効にする</a></h2>
+    
+
+    <p>このモジュールを有効にするには、モジュールがコンパイルされていて、
+    実行する Apache の設定でサーバに組み込まれている必要があります。
+    ロギング機能は、以下のディレクティブを使って有効にしたり
+    無効にしたりできます。</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_dumpio.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 306cf5f00cac157fa74ddb7dcfd234d97853b0cc..429c7727c6601f6d91cd5723f04772a3c65478fe 100644 (file)
@@ -45,7 +45,6 @@ modules</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a> <a name="protocolecho" id="protocolecho">Directive</a></h2>
 <table class="directive">
@@ -63,6 +62,7 @@ modules</td></tr>
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_echo.html" title="English">&nbsp;en&nbsp;</a> |
index dc627304943bf41d3de7a8a0912d8ed7b05d09ad..2636c05f08700b69e8123642fefb7c158ba20cd1 100644 (file)
@@ -45,7 +45,6 @@ protocole</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="protocolecho" id="protocolecho">Directive</a> <a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a></h2>
 <table class="directive">
@@ -63,6 +62,7 @@ protocole</td></tr>
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_echo.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index fc31313e2d503c0434b114d0f1bf363cc4cf9a44..6fc09a6f5652baeae2fae6e5eb9922b90a74b419 100644 (file)
@@ -45,7 +45,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a> <a name="protocolecho" id="protocolecho">ディレクティブ</a></h2>
 <table class="directive">
@@ -63,6 +62,7 @@
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_echo.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 29d2796bfcb385fa3bc1c6fc444949247af5bb7d..1c4a300e3726e97edf82378d89fb432770c692aa 100644 (file)
@@ -47,7 +47,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#protocolecho">ProtocolEcho</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ProtocolEcho" id="ProtocolEcho">ProtocolEcho</a> <a name="protocolecho" id="protocolecho">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -66,6 +65,7 @@
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_echo.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3e932f632f25cbe37cdfc7422f6ce707769b3bb6..bc12efc1f9512f1e2d5d22b9ca1cfe50cbaae0ba 100644 (file)
@@ -55,7 +55,6 @@ SSI pages</td></tr>
 <li><a href="../env.html">Environment Variables</a></li>
 <li><code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">Directive</a></h2>
 <table class="directive">
@@ -129,6 +128,7 @@ SSI pages</td></tr>
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_env.html" title="English">&nbsp;en&nbsp;</a> |
index e1f4e8e2d188a430b01d8696bf39d60ec6b71f7e..f09e7030cc57efb4326a495566aeb20797e6394a 100644 (file)
@@ -57,7 +57,6 @@ pages SSI</td></tr>
 <li><a href="../env.html">Variables d'environnement</a></li>
 <li><code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="passenv" id="passenv">Directive</a> <a name="PassEnv" id="PassEnv">PassEnv</a></h2>
 <table class="directive">
@@ -136,6 +135,7 @@ shell</td></tr>
 </div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 816f4fc337e10f197ae5761d2229fd90bd944098..b9e6b2f4d2d1ee7d47eba9be3e6e042a95642272 100644 (file)
@@ -57,7 +57,6 @@
 <ul class="seealso">
 <li><a href="../env.html">環境変数</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">ディレクティブ</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 9990fc87a32c5bf31f407cd0fa9f8d5140db0a23..2e671f578fa97f845ff88a7dd6cbe9ff8d94bf60 100644 (file)
@@ -53,7 +53,6 @@
 <ul class="seealso">
 <li><a href="../env.html">ȯ°æº¯¼ö</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">Áö½Ã¾î</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 6bec9e3e5cda65ff2d4687cfc6efe613dbd0976e..896f23dea69d2baee0a2df809e82ccb13c5d6d3c 100644 (file)
@@ -56,7 +56,6 @@ etmek için kullanılır.</td></tr>
 <li><a href="../env.html">Ortam Değişkenleri</a></li>
 <li><code class="directive"><a href="../mod/mod_setenvif.html#setenvif">SetEnvIf</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="PassEnv" id="PassEnv">PassEnv</a> <a name="passenv" id="passenv">Yönergesi</a></h2>
 <table class="directive">
@@ -130,6 +129,7 @@ etmek için kullanılır.</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_env.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f435406217255fb1485c0eba4af7b77aa47e7cd3..10fc2328e7e0d57913df68a517541036468ca3ae 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#using">Using the <code>mod_example_hooks</code> Module</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Example" id="Example">Example</a> <a name="example" id="example">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Demonstration directive to illustrate the Apache module
+API</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Example</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_example_hooks</td></tr>
+</table>
+    <p>The <code class="directive">Example</code> directive just sets a demonstration
+    flag which the example module's content handler displays. It
+    takes no arguments. If you browse to an URL to which the
+    example-hooks content-handler applies, you will get a display of the
+    routines within the module and how and in what order they were
+    called to service the document request. The effect of this
+    directive one can observe under the point "<code>Example
+    directive declared here: YES/NO</code>".</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="compiling" id="compiling">Compiling the example_hooks module</a></h2>
 
     to browse to this location and see the brief display mentioned
     earlier.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Example" id="Example">Example</a> <a name="example" id="example">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Demonstration directive to illustrate the Apache module
-API</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Example</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_example_hooks</td></tr>
-</table>
-    <p>The <code class="directive">Example</code> directive just sets a demonstration
-    flag which the example module's content handler displays. It
-    takes no arguments. If you browse to an URL to which the
-    example-hooks content-handler applies, you will get a display of the
-    routines within the module and how and in what order they were
-    called to service the document request. The effect of this
-    directive one can observe under the point "<code>Example
-    directive declared here: YES/NO</code>".</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_example_hooks.html" title="English">&nbsp;en&nbsp;</a> |
index 16e6aaf4de13274fd157a2f82ecc6cad4338e326..ce31ddf8439ec6849212e8a7c333d1e5a9107bb6 100644 (file)
 <code>mod_example_hooks</code></a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="example" id="example">Directive</a> <a name="Example" id="Example">Example</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directive de démonstration pour illustrer l'API des modules
+Apache</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Example</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_example_hooks</td></tr>
+</table>
+    <p>La directive <code class="directive">Example</code> n'a pour fonction que
+    de définir un drapeau de démonstration que le gestionnaire de
+    contenu du module example_hooks va afficher. Elle ne possède aucun
+    argument. Si vous naviguez vers une URL à laquelle le gestionnaire
+    de contenu example_hooks s'applique, vous verrez s'afficher les routines
+    du module, ainsi que l'ordre dans lequel elles ont été appelées pour
+    servir le document demandé. On peut observer l'effet de cette
+    directive dans la phrase "<code>Example
+    directive declared here: YES/NO</code>".</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="compiling" id="compiling">Compilation du module example_hooks</a></h2>
 
     vous devriez pouvoir accéder à ce fichier et voir s'afficher ce qui
     a été décrit plus haut.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="example" id="example">Directive</a> <a name="Example" id="Example">Example</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Directive de démonstration pour illustrer l'API des modules
-Apache</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Example</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_example_hooks</td></tr>
-</table>
-    <p>La directive <code class="directive">Example</code> n'a pour fonction que
-    de définir un drapeau de démonstration que le gestionnaire de
-    contenu du module example_hooks va afficher. Elle ne possède aucun
-    argument. Si vous naviguez vers une URL à laquelle le gestionnaire
-    de contenu example_hooks s'applique, vous verrez s'afficher les routines
-    du module, ainsi que l'ordre dans lequel elles ont été appelées pour
-    servir le document demandé. On peut observer l'effet de cette
-    directive dans la phrase "<code>Example
-    directive declared here: YES/NO</code>".</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_example_hooks.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f922009dbfc373cadfc95463106ea6ccf7a82877..218cb9080790e75b62fc876afb41a43e0f9ca05b 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#using"><code>mod_example_hooks</code> ¸ðµâ »ç¿ëÇϱâ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Example" id="Example">Example</a> <a name="example" id="example">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¾ÆÆÄÄ¡ ¸ðµâ API¸¦ ¼³¸íÇϱâÀ§ÇÑ ¿¹Á¦ Áö½Ã¾î</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>Example</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_example_hooks</td></tr>
+</table>
+    <p><code class="directive">Example</code> Áö½Ã¾î´Â example ¸ðµâÀÇ
+    ³»¿ëÇڵ鷯°¡ °£´ÜÇÑ ¹®±¸¸¦ º¸ÀÏÁö ¿©ºÎ¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ Áö½Ã¾î´Â
+    ¾Æ±Ô¸ÕÆ®¸¦ ¹ÞÁö¾Ê´Â´Ù. example ³»¿ëÇڵ鷯¸¦ Àû¿ëÇÑ URL¿¡
+    Á¢¼ÓÇϸ頹®¼­ ¿äûÀ» ¼­ºñ½ºÇϱâÀ§ÇØ ¸ðµâ¾È¿¡ ÇÔ¼öµéÀÌ ¾î¶»°Ô
+    ±×¸®°í ¾î¶² ¼ø¼­·Î ºÒ¸®´ÂÁö ¾Ë ¼ö ÀÖ´Ù. ÀÌ Áö½Ã¾îÀÇ È¿°ú´Â
+    "<code>Example directive declared here: YES/NO</code>"·Î
+    È®ÀÎÇÒ ¼ö ÀÖ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="compiling" id="compiling">example ¸ðµâ ÄÄÆÄÀÏÇϱâ</a></h2>
 
     <p>¼­¹ö¸¦ Àç½ÃÀÛÇÑ ÈÄ ÀÌ À§Ä¡¸¦ ºê¶ó¿ì¡Çϸ頾տ¡¼­ ¸»ÇÑ
     ³»¿ëÀ» º¸°ÔµÉ °ÍÀÌ´Ù.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Example" id="Example">Example</a> <a name="example" id="example">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¾ÆÆÄÄ¡ ¸ðµâ API¸¦ ¼³¸íÇϱâÀ§ÇÑ ¿¹Á¦ Áö½Ã¾î</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>Example</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_example_hooks</td></tr>
-</table>
-    <p><code class="directive">Example</code> Áö½Ã¾î´Â example ¸ðµâÀÇ
-    ³»¿ëÇڵ鷯°¡ °£´ÜÇÑ ¹®±¸¸¦ º¸ÀÏÁö ¿©ºÎ¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ Áö½Ã¾î´Â
-    ¾Æ±Ô¸ÕÆ®¸¦ ¹ÞÁö¾Ê´Â´Ù. example ³»¿ëÇڵ鷯¸¦ Àû¿ëÇÑ URL¿¡
-    Á¢¼ÓÇϸ頹®¼­ ¿äûÀ» ¼­ºñ½ºÇϱâÀ§ÇØ ¸ðµâ¾È¿¡ ÇÔ¼öµéÀÌ ¾î¶»°Ô
-    ±×¸®°í ¾î¶² ¼ø¼­·Î ºÒ¸®´ÂÁö ¾Ë ¼ö ÀÖ´Ù. ÀÌ Áö½Ã¾îÀÇ È¿°ú´Â
-    "<code>Example directive declared here: YES/NO</code>"·Î
-    È®ÀÎÇÒ ¼ö ÀÖ´Ù.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_example_hooks.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3f67827d42b3c4c2cc8346f61df01846a4b7f938..2802f87eec156a579af73c9c15509367d7f050ed 100644 (file)
@@ -71,63 +71,6 @@ criteria</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">Alternate Interval Syntax</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="AltSyn" id="AltSyn">Alternate Interval Syntax</a></h2>
-    <p>The <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> and
-    <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> directives
-    can also be defined in a more readable syntax of the form:</p>
-
-    <pre class="prettyprint lang-config">ExpiresDefault "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."
-ExpiresByType type/encoding "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."</pre>
-
-
-    <p>where <var>base</var> is one of:</p>
-
-    <ul>
-      <li><code>access</code></li>
-
-      <li><code>now</code> (equivalent to
-      '<code>access</code>')</li>
-
-      <li><code>modification</code></li>
-    </ul>
-
-    <p>The <code>plus</code> keyword is optional. <var>num</var>
-    should be an integer value [acceptable to <code>atoi()</code>],
-    and <var>type</var> is one of:</p>
-
-    <ul>
-      <li><code>years</code></li>
-      <li><code>months</code></li>
-      <li><code>weeks</code></li>
-      <li><code>days</code></li>
-      <li><code>hours</code></li>
-      <li><code>minutes</code></li>
-      <li><code>seconds</code></li>
-    </ul>
-
-    <p>For example, any of the following directives can be used to
-    make documents expire 1 month after being accessed, by
-    default:</p>
-
-    <pre class="prettyprint lang-config">ExpiresDefault "access plus 1 month"
-ExpiresDefault "access plus 4 weeks"
-ExpiresDefault "access plus 30 days"</pre>
-
-
-    <p>The expiry time can be fine-tuned by adding several
-    '<var>num</var> <var>type</var>' clauses:</p>
-
-    <pre class="prettyprint lang-config">ExpiresByType text/html "access plus 1 month 15 days 2 hours"
-ExpiresByType image/gif "modification plus 5 hours 3 minutes"</pre>
-
-
-    <p>Note that if you use a modification date based setting, the
-    Expires header will <strong>not</strong> be added to content
-    that does not come from a file on disk. This is due to the fact
-    that there is no modification time for such content.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a> <a name="expiresactive" id="expiresactive">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables generation of <code>Expires</code>
@@ -237,6 +180,63 @@ ExpiresByType text/html M604800</pre>
     description as well.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="AltSyn" id="AltSyn">Alternate Interval Syntax</a></h2>
+    <p>The <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> and
+    <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> directives
+    can also be defined in a more readable syntax of the form:</p>
+
+    <pre class="prettyprint lang-config">ExpiresDefault "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."
+ExpiresByType type/encoding "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."</pre>
+
+
+    <p>where <var>base</var> is one of:</p>
+
+    <ul>
+      <li><code>access</code></li>
+
+      <li><code>now</code> (equivalent to
+      '<code>access</code>')</li>
+
+      <li><code>modification</code></li>
+    </ul>
+
+    <p>The <code>plus</code> keyword is optional. <var>num</var>
+    should be an integer value [acceptable to <code>atoi()</code>],
+    and <var>type</var> is one of:</p>
+
+    <ul>
+      <li><code>years</code></li>
+      <li><code>months</code></li>
+      <li><code>weeks</code></li>
+      <li><code>days</code></li>
+      <li><code>hours</code></li>
+      <li><code>minutes</code></li>
+      <li><code>seconds</code></li>
+    </ul>
+
+    <p>For example, any of the following directives can be used to
+    make documents expire 1 month after being accessed, by
+    default:</p>
+
+    <pre class="prettyprint lang-config">ExpiresDefault "access plus 1 month"
+ExpiresDefault "access plus 4 weeks"
+ExpiresDefault "access plus 30 days"</pre>
+
+
+    <p>The expiry time can be fine-tuned by adding several
+    '<var>num</var> <var>type</var>' clauses:</p>
+
+    <pre class="prettyprint lang-config">ExpiresByType text/html "access plus 1 month 15 days 2 hours"
+ExpiresByType image/gif "modification plus 5 hours 3 minutes"</pre>
+
+
+    <p>Note that if you use a modification date based setting, the
+    Expires header will <strong>not</strong> be added to content
+    that does not come from a file on disk. This is due to the fact
+    that there is no modification time for such content.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_expires.html" title="English">&nbsp;en&nbsp;</a> |
index bfd13f2852f56191d8704e4f3768b245dea2c212..96f68421b28ee2f7153547c2d61b8a9b33963ad8 100644 (file)
@@ -74,63 +74,6 @@ l'utilisateur</td></tr>
 l'intervalle</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="AltSyn" id="AltSyn">Autre syntaxe de définition de
-l'intervalle</a></h2>
-    <p>Pour une syntaxe plus lisible, on peut aussi utiliser les
-    directives <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> et <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> comme suit :</p>
-
-    <pre class="prettyprint lang-config">ExpiresDefault "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."
-ExpiresByType type/encoding "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."</pre>
-
-
-    <p>où <var>base</var> peut être :</p>
-
-    <ul>
-      <li><code>access</code></li>
-
-      <li><code>now</code> (équivalent à
-      '<code>access</code>')</li>
-
-      <li><code>modification</code></li>
-    </ul>
-
-    <p>Le mot-clé <code>plus</code> est optionnel. <var>num</var> doit
-    correspondre à une valeur entière [compatible avec
-    <code>atoi()</code>], et <var>type</var> peut être choisi parmi :</p>
-
-    <ul>
-      <li><code>years</code></li>
-      <li><code>months</code></li>
-      <li><code>weeks</code></li>
-      <li><code>days</code></li>
-      <li><code>hours</code></li>
-      <li><code>minutes</code></li>
-      <li><code>seconds</code></li>
-    </ul>
-
-    <p>Par exemple, pour faire expirer par défaut les documents 1 mois
-    après leur accès, on peut utiliser une des directives suivantes :</p>
-    <pre class="prettyprint lang-config">ExpiresDefault "access plus 1 month"
-ExpiresDefault "access plus 4 weeks"
-ExpiresDefault "access plus 30 days"</pre>
-
-
-
-    <p>La date d'expiration peut être définie plus précisément en
-    ajoutant plusieurs clauses '<var>num</var> <var>type</var>' :</p>
-
-    <pre class="prettyprint lang-config">ExpiresByType text/html "access plus 1 month 15 days 2 hours"
-ExpiresByType image/gif "modification plus 5 hours 3 minutes"</pre>
-
-
-    <p>Notez que si vous utilisez une configuration basée sur la date de
-    modification, l'en-tête Expires ne sera pas ajouté à un contenu qui
-    ne provient pas directement d'un fichier sur disque ; et ceci tout
-    simplement parce que ce type de contenu ne possède pas de date de
-    modification.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="expiresactive" id="expiresactive">Directive</a> <a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la génération d'en-têtes
@@ -243,6 +186,63 @@ d'expiration</td></tr>
     syntaxe de l'argument, ainsi que la description de la <a href="#AltSyn">syntaxe alternative</a>.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="AltSyn" id="AltSyn">Autre syntaxe de définition de
+l'intervalle</a></h2>
+    <p>Pour une syntaxe plus lisible, on peut aussi utiliser les
+    directives <code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> et <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> comme suit :</p>
+
+    <pre class="prettyprint lang-config">ExpiresDefault "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."
+ExpiresByType type/encoding "<var>base</var>  [plus <var>num</var> <var>type</var>] [<var>num</var> <var>type</var>] ..."</pre>
+
+
+    <p>où <var>base</var> peut être :</p>
+
+    <ul>
+      <li><code>access</code></li>
+
+      <li><code>now</code> (équivalent à
+      '<code>access</code>')</li>
+
+      <li><code>modification</code></li>
+    </ul>
+
+    <p>Le mot-clé <code>plus</code> est optionnel. <var>num</var> doit
+    correspondre à une valeur entière [compatible avec
+    <code>atoi()</code>], et <var>type</var> peut être choisi parmi :</p>
+
+    <ul>
+      <li><code>years</code></li>
+      <li><code>months</code></li>
+      <li><code>weeks</code></li>
+      <li><code>days</code></li>
+      <li><code>hours</code></li>
+      <li><code>minutes</code></li>
+      <li><code>seconds</code></li>
+    </ul>
+
+    <p>Par exemple, pour faire expirer par défaut les documents 1 mois
+    après leur accès, on peut utiliser une des directives suivantes :</p>
+    <pre class="prettyprint lang-config">ExpiresDefault "access plus 1 month"
+ExpiresDefault "access plus 4 weeks"
+ExpiresDefault "access plus 30 days"</pre>
+
+
+
+    <p>La date d'expiration peut être définie plus précisément en
+    ajoutant plusieurs clauses '<var>num</var> <var>type</var>' :</p>
+
+    <pre class="prettyprint lang-config">ExpiresByType text/html "access plus 1 month 15 days 2 hours"
+ExpiresByType image/gif "modification plus 5 hours 3 minutes"</pre>
+
+
+    <p>Notez que si vous utilisez une configuration basée sur la date de
+    modification, l'en-tête Expires ne sera pas ajouté à un contenu qui
+    ne provient pas directement d'un fichier sur disque ; et ceci tout
+    simplement parce que ce type de contenu ne possède pas de date de
+    modification.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_expires.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 6b1ae5ac316602f4cf50270f8a3481b1fbad7324..dafc094d442e1b856674c17a18c28bec6b9bb1e3 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">代替期間指定構文</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="AltSyn" id="AltSyn">代替期間指定構文</a></h2>
-   
-    <p><code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> ディレクティブと
-    <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> ディレクティブは
-    以下のより読み易い構文を使って定義することができます:</p>
-
-    <div class="example"><p><code>
-      ExpiresDefault "&lt;base&gt; [plus] {&lt;num&gt;
-      &lt;type&gt;}*"<br />
-      ExpiresByType type/encoding "&lt;base&gt; [plus]
-      {&lt;num&gt; &lt;type&gt;}*"
-    </code></p></div>
-
-    <p>&lt;base&gt; は以下のどれかです:</p>
-
-    <ul>
-      <li><code>access</code></li>
-
-      <li><code>now</code> ('<code>access</code>' と等価)</li>
-
-      <li><code>modification</code></li>
-    </ul>
-
-    <p><code>plus</code> キーワードは省略可能です。&lt;num&gt;
-    は (<code>atoi()</code> が受け付ける) 整数値、
-    &lt;type&gt; は以下のどれかです:</p>
-
-    <ul>
-      <li><code>years</code></li>
-      <li><code>months</code></li>
-      <li><code>weeks</code></li>
-      <li><code>days</code></li>
-      <li><code>hours</code></li>
-      <li><code>minutes</code></li>
-      <li><code>seconds</code></li>
-    </ul>
-
-    <p>例えば、以下のディレクティブはどれもデフォルトで文書がアクセスの 1 ヶ月後に
-    期限が切れるようにするために使えます:</p>
-
-    <div class="example"><p><code>
-      ExpiresDefault "access plus 1 month"<br />
-      ExpiresDefault "access plus 4 weeks"<br />
-      ExpiresDefault "access plus 30 days"
-    </code></p></div>
-
-    <p>期限切れ時刻はいくつか
-    '&lt;num&gt; &lt;type&gt;' 節を追加することでより細かく
-    制御することができます:</p>
-
-    <div class="example"><p><code>
-      ExpiresByType text/html "access plus 1 month 15
-      days 2 hours"<br />
-      ExpiresByType image/gif "modification plus 5 hours 3
-      minutes"
-    </code></p></div>
-
-    <p>修正時刻に基づいた設定を使用している場合、Expires ヘッダは
-    ディスクのファイル以外のコンテンツには<strong>追加されない</strong>ことに注意
-    してください。そのようなコンテンツには修正時刻は存在しないからです。</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a> <a name="expiresactive" id="expiresactive">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code>Expires</code> ヘッダの生成を有効にする</td></tr>
     参照してください。</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="AltSyn" id="AltSyn">代替期間指定構文</a></h2>
+   
+    <p><code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code> ディレクティブと
+    <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code> ディレクティブは
+    以下のより読み易い構文を使って定義することができます:</p>
+
+    <div class="example"><p><code>
+      ExpiresDefault "&lt;base&gt; [plus] {&lt;num&gt;
+      &lt;type&gt;}*"<br />
+      ExpiresByType type/encoding "&lt;base&gt; [plus]
+      {&lt;num&gt; &lt;type&gt;}*"
+    </code></p></div>
+
+    <p>&lt;base&gt; は以下のどれかです:</p>
+
+    <ul>
+      <li><code>access</code></li>
+
+      <li><code>now</code> ('<code>access</code>' と等価)</li>
+
+      <li><code>modification</code></li>
+    </ul>
+
+    <p><code>plus</code> キーワードは省略可能です。&lt;num&gt;
+    は (<code>atoi()</code> が受け付ける) 整数値、
+    &lt;type&gt; は以下のどれかです:</p>
+
+    <ul>
+      <li><code>years</code></li>
+      <li><code>months</code></li>
+      <li><code>weeks</code></li>
+      <li><code>days</code></li>
+      <li><code>hours</code></li>
+      <li><code>minutes</code></li>
+      <li><code>seconds</code></li>
+    </ul>
+
+    <p>例えば、以下のディレクティブはどれもデフォルトで文書がアクセスの 1 ヶ月後に
+    期限が切れるようにするために使えます:</p>
+
+    <div class="example"><p><code>
+      ExpiresDefault "access plus 1 month"<br />
+      ExpiresDefault "access plus 4 weeks"<br />
+      ExpiresDefault "access plus 30 days"
+    </code></p></div>
+
+    <p>期限切れ時刻はいくつか
+    '&lt;num&gt; &lt;type&gt;' 節を追加することでより細かく
+    制御することができます:</p>
+
+    <div class="example"><p><code>
+      ExpiresByType text/html "access plus 1 month 15
+      days 2 hours"<br />
+      ExpiresByType image/gif "modification plus 5 hours 3
+      minutes"
+    </code></p></div>
+
+    <p>修正時刻に基づいた設定を使用している場合、Expires ヘッダは
+    ディスクのファイル以外のコンテンツには<strong>追加されない</strong>ことに注意
+    してください。そのようなコンテンツには修正時刻は存在しないからです。</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_expires.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 7cff9b2eb981280f55c4508e37e46a9d5ef8acff..18babecef07da2579274c47d32bceb239b44ca56 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">´Ù¸¥ ³»ºÎ ¹®¹ý</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="AltSyn" id="AltSyn">´Ù¸¥ ³»ºÎ ¹®¹ý</a></h2>
-    <p><code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code>¿Í
-    <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code>
-    Áö½Ã¾î¸¦ ´õ Àбâ ÁÁÀº Çü½ÄÀ¸·Î ±â¼úÇÒ ¼ö ÀÖ´Ù:</p>
-
-    <div class="example"><p><code>
-      ExpiresDefault "&lt;base&gt; [plus] {&lt;num&gt;
-      &lt;type&gt;}*"<br />
-      ExpiresByType type/encoding "&lt;base&gt; [plus]
-      {&lt;num&gt; &lt;type&gt;}*"
-    </code></p></div>
-
-    <p>&lt;base&gt;´Â ´ÙÀ½Áß ÇϳªÀÌ´Ù:</p>
-
-    <ul>
-      <li><code>access</code></li>
-
-      <li><code>now</code> ('<code>access</code>'¿Í °°À½)</li>
-
-      <li><code>modification</code></li>
-    </ul>
-
-    <p><code>plus</code> Å°¿öµå´Â ¾ø¾îµµ µÈ´Ù. &lt;num&gt;Àº
-    [<code>atoi()</code>¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â] Á¤¼ö°ªÀÌ´Ù.
-    &lt;type&gt;Àº ´ÙÀ½Áß ÇϳªÀÌ´Ù:</p>
-
-    <ul>
-      <li><code>years</code></li>
-      <li><code>months</code></li>
-      <li><code>weeks</code></li>
-      <li><code>days</code></li>
-      <li><code>hours</code></li>
-      <li><code>minutes</code></li>
-      <li><code>seconds</code></li>
-    </ul>
-
-    <p>¿¹¸¦ µé¾î, ´ÙÀ½ ¸ðµÎ´Â ¹®¼­°¡ ±âº»ÀûÀ¸·Î Á¢¼ÓµÈÁö 1´ÞÈÄ¿¡
-    ¸¸±âµÈ´Ù°í ¼³Á¤ÇÑ´Ù:</p>
-
-    <div class="example"><p><code>
-      ExpiresDefault "access plus 1 month"<br />
-      ExpiresDefault "access plus 4 weeks"<br />
-      ExpiresDefault "access plus 30 days"
-    </code></p></div>
-
-    <p>'&lt;num&gt; &lt;type&gt;' ±¸¹®À» ¹Ýº¹Çؼ­ »ç¿ëÇÏ¿©
-    ¸¸±â½Ã°£À» ÀÚ¼¼È÷ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù:</p>
-
-    <div class="example"><p><code>
-      ExpiresByType text/html "access plus 1 month 15
-      days 2 hours"<br />
-      ExpiresByType image/gif "modification plus 5 hours 3
-      minutes"
-    </code></p></div>
-
-    <p>¸¸¾à ¼öÁ¤½Ã°£(modification)À» ±âÁØÀ¸·Î ¸¸±â½Ã°£À» ¼³Á¤ÇÏ´Â
-    °æ¿ì ³»¿ëÀ» µð½ºÅ©¿¡ Àִ ÆÄÀÏ¿¡¼­ °¡Á®¿ÀÁö ¾Ê´Â´Ù¸é Expires
-    Çì´õ¸¦ ºÙÀÌÁö <strong>¾Ê´Â´Ù</strong>. ÀÌ °æ¿ì ³»¿ë¿¡ ¼öÁ¤½Ã°£ÀÌ
-    ¾ø±â ¶§¹®ÀÌ´Ù.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ExpiresActive" id="ExpiresActive">ExpiresActive</a> <a name="expiresactive" id="expiresactive">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td><code>Expires</code> Çì´õ¸¦ »ý¼ºÇÑ´Ù</td></tr>
     Âü°íÇ϶ó.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="AltSyn" id="AltSyn">´Ù¸¥ ³»ºÎ ¹®¹ý</a></h2>
+    <p><code class="directive"><a href="#expiresdefault">ExpiresDefault</a></code>¿Í
+    <code class="directive"><a href="#expiresbytype">ExpiresByType</a></code>
+    Áö½Ã¾î¸¦ ´õ Àбâ ÁÁÀº Çü½ÄÀ¸·Î ±â¼úÇÒ ¼ö ÀÖ´Ù:</p>
+
+    <div class="example"><p><code>
+      ExpiresDefault "&lt;base&gt; [plus] {&lt;num&gt;
+      &lt;type&gt;}*"<br />
+      ExpiresByType type/encoding "&lt;base&gt; [plus]
+      {&lt;num&gt; &lt;type&gt;}*"
+    </code></p></div>
+
+    <p>&lt;base&gt;´Â ´ÙÀ½Áß ÇϳªÀÌ´Ù:</p>
+
+    <ul>
+      <li><code>access</code></li>
+
+      <li><code>now</code> ('<code>access</code>'¿Í °°À½)</li>
+
+      <li><code>modification</code></li>
+    </ul>
+
+    <p><code>plus</code> Å°¿öµå´Â ¾ø¾îµµ µÈ´Ù. &lt;num&gt;Àº
+    [<code>atoi()</code>¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â] Á¤¼ö°ªÀÌ´Ù.
+    &lt;type&gt;Àº ´ÙÀ½Áß ÇϳªÀÌ´Ù:</p>
+
+    <ul>
+      <li><code>years</code></li>
+      <li><code>months</code></li>
+      <li><code>weeks</code></li>
+      <li><code>days</code></li>
+      <li><code>hours</code></li>
+      <li><code>minutes</code></li>
+      <li><code>seconds</code></li>
+    </ul>
+
+    <p>¿¹¸¦ µé¾î, ´ÙÀ½ ¸ðµÎ´Â ¹®¼­°¡ ±âº»ÀûÀ¸·Î Á¢¼ÓµÈÁö 1´ÞÈÄ¿¡
+    ¸¸±âµÈ´Ù°í ¼³Á¤ÇÑ´Ù:</p>
+
+    <div class="example"><p><code>
+      ExpiresDefault "access plus 1 month"<br />
+      ExpiresDefault "access plus 4 weeks"<br />
+      ExpiresDefault "access plus 30 days"
+    </code></p></div>
+
+    <p>'&lt;num&gt; &lt;type&gt;' ±¸¹®À» ¹Ýº¹Çؼ­ »ç¿ëÇÏ¿©
+    ¸¸±â½Ã°£À» ÀÚ¼¼È÷ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù:</p>
+
+    <div class="example"><p><code>
+      ExpiresByType text/html "access plus 1 month 15
+      days 2 hours"<br />
+      ExpiresByType image/gif "modification plus 5 hours 3
+      minutes"
+    </code></p></div>
+
+    <p>¸¸¾à ¼öÁ¤½Ã°£(modification)À» ±âÁØÀ¸·Î ¸¸±â½Ã°£À» ¼³Á¤ÇÏ´Â
+    °æ¿ì ³»¿ëÀ» µð½ºÅ©¿¡ Àִ ÆÄÀÏ¿¡¼­ °¡Á®¿ÀÁö ¾Ê´Â´Ù¸é Expires
+    Çì´õ¸¦ ºÙÀÌÁö <strong>¾Ê´Â´Ù</strong>. ÀÌ °æ¿ì ³»¿ë¿¡ ¼öÁ¤½Ã°£ÀÌ
+    ¾ø±â ¶§¹®ÀÌ´Ù.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_expires.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 87696b791dead257cd9f794041011716c4327198..1160b11bcdc05433acbf7bd60c8c386b5156ba73 100644 (file)
@@ -74,130 +74,6 @@ delivery to the client</td></tr>
 <li><a href="../filter.html">Filters</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
-
-    <h3>Generating HTML from some other type of response</h3>
-      <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter
-# to HTML-ize text/c files using the external
-# program /usr/bin/enscript, with the type of
-# the result set to text/html
-ExtFilterDefine c-to-html mode=output \
-    intype=text/c outtype=text/html \
-    cmd="/usr/bin/enscript --color -W html -Ec -o - -"
-
-&lt;Directory "/export/home/trawick/apacheinst/htdocs/c"&gt;
-    # core directive to cause the new filter to
-    # be run on output
-    SetOutputFilter c-to-html
-    
-    # mod_mime directive to set the type of .c
-    # files to text/c
-    AddType text/c .c
-&lt;/Directory&gt;</pre>
-
-    
-
-    <h3>Implementing a content encoding filter</h3>
-      <p>Note: this gzip example is just for the purposes of illustration.
-      Please refer to <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> for a practical
-      implementation.</p>
-
-      <pre class="prettyprint lang-config"># mod_ext_filter directive to define the external filter
-ExtFilterDefine gzip mode=output cmd=/bin/gzip
-
-&lt;Location "/gzipped"&gt;
-    
-    # core directive to cause the gzip filter to be
-    # run on output
-    SetOutputFilter gzip
-    
-    # mod_headers directive to add
-    # "Content-Encoding: gzip" header field
-    Header set Content-Encoding gzip
-&lt;/Location&gt;</pre>
-
-    
-
-    <h3>Slowing down the server</h3>
-      <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter
-# which runs everything through cat; cat doesn't
-# modify anything; it just introduces extra pathlength
-# and consumes more resources
-ExtFilterDefine slowdown mode=output cmd=/bin/cat \
-    preservescontentlength
-
-&lt;Location "/"&gt;
-    # core directive to cause the slowdown filter to
-    # be run several times on output
-    #
-    SetOutputFilter slowdown;slowdown;slowdown
-&lt;/Location&gt;</pre>
-
-    
-
-    <h3>Using sed to replace text in the response</h3>
-      <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter which
-# replaces text in the response
-#
-ExtFilterDefine fixtext mode=output intype=text/html \
-    cmd="/bin/sed s/verdana/arial/g"
-
-&lt;Location "/"&gt;
-    # core directive to cause the fixtext filter to
-    # be run on output
-    SetOutputFilter fixtext
-&lt;/Location&gt;</pre>
-
-
-<div class="note">
-<p>You can do the same thing using <code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code>
-without invoking an external process.</p>
-</div>
-    
-
-    <h3>Tracing another filter</h3>
-      <pre class="prettyprint lang-config"># Trace the data read and written by mod_deflate
-# for a particular client (IP 192.168.1.31)
-# experiencing compression problems.
-# This filter will trace what goes into mod_deflate.
-ExtFilterDefine tracebefore \
-    cmd="/bin/tracefilter.pl /tmp/tracebefore" \
-    EnableEnv=trace_this_client
-
-# This filter will trace what goes after mod_deflate.
-# Note that without the ftype parameter, the default
-# filter type of AP_FTYPE_RESOURCE would cause the
-# filter to be placed *before* mod_deflate in the filter
-# chain.  Giving it a numeric value slightly higher than
-# AP_FTYPE_CONTENT_SET will ensure that it is placed
-# after mod_deflate.
-ExtFilterDefine traceafter \
-    cmd="/bin/tracefilter.pl /tmp/traceafter" \
-    EnableEnv=trace_this_client ftype=21
-
-&lt;Directory "/usr/local/docs"&gt;
-    SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
-    SetOutputFilter tracebefore;deflate;traceafter
-&lt;/Directory&gt;</pre>
-
-
-      <div class="example"><h3>Here is the filter which traces the data:</h3><pre class="prettyprint lang-perl">#!/usr/local/bin/perl -w
-use strict;
-
-open(SAVE, "&gt;$ARGV[0]")
-    or die "can't open $ARGV[0]: $?";
-
-while (&lt;STDIN&gt;) {
-    print SAVE $_;
-    print $_;
-}
-
-close(SAVE);</pre>
-</div>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ExtFilterDefine" id="ExtFilterDefine">ExtFilterDefine</a> <a name="extfilterdefine" id="extfilterdefine">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define an external filter</td></tr>
@@ -326,6 +202,130 @@ close(SAVE);</pre>
     <p>Messages written to the filter's standard error will be stored
     in the Apache error log.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+
+    <h3>Generating HTML from some other type of response</h3>
+      <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter
+# to HTML-ize text/c files using the external
+# program /usr/bin/enscript, with the type of
+# the result set to text/html
+ExtFilterDefine c-to-html mode=output \
+    intype=text/c outtype=text/html \
+    cmd="/usr/bin/enscript --color -W html -Ec -o - -"
+
+&lt;Directory "/export/home/trawick/apacheinst/htdocs/c"&gt;
+    # core directive to cause the new filter to
+    # be run on output
+    SetOutputFilter c-to-html
+    
+    # mod_mime directive to set the type of .c
+    # files to text/c
+    AddType text/c .c
+&lt;/Directory&gt;</pre>
+
+    
+
+    <h3>Implementing a content encoding filter</h3>
+      <p>Note: this gzip example is just for the purposes of illustration.
+      Please refer to <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> for a practical
+      implementation.</p>
+
+      <pre class="prettyprint lang-config"># mod_ext_filter directive to define the external filter
+ExtFilterDefine gzip mode=output cmd=/bin/gzip
+
+&lt;Location "/gzipped"&gt;
+    
+    # core directive to cause the gzip filter to be
+    # run on output
+    SetOutputFilter gzip
+    
+    # mod_headers directive to add
+    # "Content-Encoding: gzip" header field
+    Header set Content-Encoding gzip
+&lt;/Location&gt;</pre>
+
+    
+
+    <h3>Slowing down the server</h3>
+      <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter
+# which runs everything through cat; cat doesn't
+# modify anything; it just introduces extra pathlength
+# and consumes more resources
+ExtFilterDefine slowdown mode=output cmd=/bin/cat \
+    preservescontentlength
+
+&lt;Location "/"&gt;
+    # core directive to cause the slowdown filter to
+    # be run several times on output
+    #
+    SetOutputFilter slowdown;slowdown;slowdown
+&lt;/Location&gt;</pre>
+
+    
+
+    <h3>Using sed to replace text in the response</h3>
+      <pre class="prettyprint lang-config"># mod_ext_filter directive to define a filter which
+# replaces text in the response
+#
+ExtFilterDefine fixtext mode=output intype=text/html \
+    cmd="/bin/sed s/verdana/arial/g"
+
+&lt;Location "/"&gt;
+    # core directive to cause the fixtext filter to
+    # be run on output
+    SetOutputFilter fixtext
+&lt;/Location&gt;</pre>
+
+
+<div class="note">
+<p>You can do the same thing using <code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code>
+without invoking an external process.</p>
+</div>
+    
+
+    <h3>Tracing another filter</h3>
+      <pre class="prettyprint lang-config"># Trace the data read and written by mod_deflate
+# for a particular client (IP 192.168.1.31)
+# experiencing compression problems.
+# This filter will trace what goes into mod_deflate.
+ExtFilterDefine tracebefore \
+    cmd="/bin/tracefilter.pl /tmp/tracebefore" \
+    EnableEnv=trace_this_client
+
+# This filter will trace what goes after mod_deflate.
+# Note that without the ftype parameter, the default
+# filter type of AP_FTYPE_RESOURCE would cause the
+# filter to be placed *before* mod_deflate in the filter
+# chain.  Giving it a numeric value slightly higher than
+# AP_FTYPE_CONTENT_SET will ensure that it is placed
+# after mod_deflate.
+ExtFilterDefine traceafter \
+    cmd="/bin/tracefilter.pl /tmp/traceafter" \
+    EnableEnv=trace_this_client ftype=21
+
+&lt;Directory "/usr/local/docs"&gt;
+    SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
+    SetOutputFilter tracebefore;deflate;traceafter
+&lt;/Directory&gt;</pre>
+
+
+      <div class="example"><h3>Here is the filter which traces the data:</h3><pre class="prettyprint lang-perl">#!/usr/local/bin/perl -w
+use strict;
+
+open(SAVE, "&gt;$ARGV[0]")
+    or die "can't open $ARGV[0]: $?";
+
+while (&lt;STDIN&gt;) {
+    print SAVE $_;
+    print $_;
+}
+
+close(SAVE);</pre>
+</div>
+    
 </div>
 </div>
 <div class="bottomlang">
index 955b465dcced861ca59de1fc3ad1bf96139b61a5..4705185828e2122fc8b4582d8e1a908bc545f0b7 100644 (file)
@@ -77,140 +77,6 @@ externe avant de l'envoyer au client</td></tr>
 <li><a href="../filter.html">Filtres</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-
-    <h3>Générer du HTML à partir d'un autre type de
-    contenu</h3>
-
-      <pre class="prettyprint lang-config"># la directive de mod_ext_filter définissant un filtre
-# permettant de mettre des fichiers text/c au format HTML en
-# utilisant le programme externe /usr/bin/enscript, le type du
-# fichier résultant étant défini à text/html
-ExtFilterDefine c-to-html mode=output \
-    intype=text/c outtype=text/html \
-    cmd="/usr/bin/enscript --color -W html -Ec -o - -"
-
-&lt;Directory "/export/home/trawick/apacheinst/htdocs/c"&gt;
-    # directive de base permettant de traiter la sortie avec le
-    # nouveau filtre
-    SetOutputFilter c-to-html
-
-    # directive de mod_mime définissant le type des fichiers dont
-    # le nom possède l'extension .c à text/c
-    AddType text/c .c
-&lt;/Directory&gt;</pre>
-
-    
-
-    <h3>Implémentation d'un filtre de codage de
-    contenu</h3>
-      <p>Note : cet exemple avec gzip n'est fourni qu'à titre
-      d'illustration. Veuillez vous reporter à la documentation de
-      <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> pour un exemple d'implémentation plus
-      pratique.</p>
-
-      <pre class="prettyprint lang-config"># la directive de mod_ext_filter qui définit le filtre externe
-ExtFilterDefine gzip mode=output cmd=/bin/gzip
-
-&lt;Location /gzipped&gt;
-
-    # directive de base permettant de traiter la sortie avec le
-  # filtre gzip
-    SetOutputFilter gzip
-
-    # la directive de mod_headers permettant d'ajouter le champ
-  # d'en-tête "Content-Encoding: gzip"
-    Header set Content-Encoding gzip
-&lt;/Location&gt;</pre>
-
-
-    
-
-    <h3>Ralentissement du serveur</h3>
-      <pre class="prettyprint lang-config"># directive de mod_ext_filter définissant un filtre qui fait
-# passer tous les flux en sortie par la commande cat ; cat ne
-# modifie rien ; elle ne fait que compliquer le cheminement des
-# flux et consommer des ressources supplémentaires
-       ExtFilterDefine slowdown mode=output cmd=/bin/cat \
-ExtFilterDefine slowdown mode=output cmd=/bin/cat \
-    preservescontentlength
-
-&lt;Location /&gt;
-    # directive de base permettant de traiter plusieurs fois la
-    # sortie avec le filtre slowdown
-    #
-    SetOutputFilter slowdown;slowdown;slowdown
-&lt;/Location&gt;</pre>
-
-    
-
-    <h3>Utilisation de sed pour remplacer du texte dans la
-    réponse</h3>
-
-      <pre class="prettyprint lang-config"># directive de mod_ext_filter définissant un filtre qui
-# remplace du texte dans la réponse
-#
-ExtFilterDefine fixtext mode=output intype=text/html \
-    cmd="/bin/sed s/verdana/arial/g"
-
-&lt;Location /&gt;
-    # directive de base permettant de traiter la sortie avec le
-    # filtre fixtext
-    SetOutputFilter fixtext
-&lt;/Location&gt;</pre>
-
-
-<div class="note">
-<p>Vous pouvez aussi utiliser <code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code> pour
-effectuer le même traitement sans avoir à invoquer un programme
-externe.</p>
-</div>      
-
-    
-
-    <h3>Tracer un autre filtre</h3>
-      <pre class="prettyprint lang-config"># Trace les données lues et écrites par mod_deflate pour un
-# client particulier (IP 192.168.1.31) qui a des problèmes de
-# compression.
-# Ce premier filtre va tracer ce qui entre dans mod_deflate.
-ExtFilterDefine tracebefore \
-    cmd="/bin/tracefilter.pl /tmp/tracebefore" \
-    EnableEnv=trace_this_client
-
-# Ce second filtre va tracer ce qui sort de mod_deflate.
-# Notez que sans le paramètre ftype, le type de filtre par
-# défaut AP_FTYPE_RESOURCE placerait le filtre *avant*
-# mod_deflate dans la chaîne de filtrage. Le fait d'affecter
-# à ce paramètre une valeur numérique sensiblement supérieure à
-# AP_FTYPE_CONTENT_SET permet de s'assurer que le filtre sera
-# placé après mod_deflate.
-ExtFilterDefine traceafter \
-    cmd="/bin/tracefilter.pl /tmp/traceafter" \
-    EnableEnv=trace_this_client ftype=21
-
-&lt;Directory /usr/local/docs&gt;
-    SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
-    SetOutputFilter tracebefore;deflate;traceafter
-&lt;/Directory&gt;</pre>
-
-
-      <div class="example"><h3>Voici le filtre qui trace les données :</h3><pre class="prettyprint lang-perl">#!/usr/local/bin/perl -w
-use strict;
-
-open(SAVE, "&gt;$ARGV[0]")
-    or die "can't open $ARGV[0]: $?";
-
-while (&lt;STDIN&gt;) {
-    print SAVE $_;
-    print $_;
-}
-
-close(SAVE);</pre>
-</div>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="extfilterdefine" id="extfilterdefine">Directive</a> <a name="ExtFilterDefine" id="ExtFilterDefine">ExtFilterDefine</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit un filtre externe</td></tr>
@@ -349,6 +215,140 @@ close(SAVE);</pre>
     <p>Les messages envoyés vers la sortie d'erreurs standard du filtre
     seront enregistrés dans le journal des erreurs d'Apache.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
+
+    <h3>Générer du HTML à partir d'un autre type de
+    contenu</h3>
+
+      <pre class="prettyprint lang-config"># la directive de mod_ext_filter définissant un filtre
+# permettant de mettre des fichiers text/c au format HTML en
+# utilisant le programme externe /usr/bin/enscript, le type du
+# fichier résultant étant défini à text/html
+ExtFilterDefine c-to-html mode=output \
+    intype=text/c outtype=text/html \
+    cmd="/usr/bin/enscript --color -W html -Ec -o - -"
+
+&lt;Directory "/export/home/trawick/apacheinst/htdocs/c"&gt;
+    # directive de base permettant de traiter la sortie avec le
+    # nouveau filtre
+    SetOutputFilter c-to-html
+
+    # directive de mod_mime définissant le type des fichiers dont
+    # le nom possède l'extension .c à text/c
+    AddType text/c .c
+&lt;/Directory&gt;</pre>
+
+    
+
+    <h3>Implémentation d'un filtre de codage de
+    contenu</h3>
+      <p>Note : cet exemple avec gzip n'est fourni qu'à titre
+      d'illustration. Veuillez vous reporter à la documentation de
+      <code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> pour un exemple d'implémentation plus
+      pratique.</p>
+
+      <pre class="prettyprint lang-config"># la directive de mod_ext_filter qui définit le filtre externe
+ExtFilterDefine gzip mode=output cmd=/bin/gzip
+
+&lt;Location /gzipped&gt;
+
+    # directive de base permettant de traiter la sortie avec le
+  # filtre gzip
+    SetOutputFilter gzip
+
+    # la directive de mod_headers permettant d'ajouter le champ
+  # d'en-tête "Content-Encoding: gzip"
+    Header set Content-Encoding gzip
+&lt;/Location&gt;</pre>
+
+
+    
+
+    <h3>Ralentissement du serveur</h3>
+      <pre class="prettyprint lang-config"># directive de mod_ext_filter définissant un filtre qui fait
+# passer tous les flux en sortie par la commande cat ; cat ne
+# modifie rien ; elle ne fait que compliquer le cheminement des
+# flux et consommer des ressources supplémentaires
+       ExtFilterDefine slowdown mode=output cmd=/bin/cat \
+ExtFilterDefine slowdown mode=output cmd=/bin/cat \
+    preservescontentlength
+
+&lt;Location /&gt;
+    # directive de base permettant de traiter plusieurs fois la
+    # sortie avec le filtre slowdown
+    #
+    SetOutputFilter slowdown;slowdown;slowdown
+&lt;/Location&gt;</pre>
+
+    
+
+    <h3>Utilisation de sed pour remplacer du texte dans la
+    réponse</h3>
+
+      <pre class="prettyprint lang-config"># directive de mod_ext_filter définissant un filtre qui
+# remplace du texte dans la réponse
+#
+ExtFilterDefine fixtext mode=output intype=text/html \
+    cmd="/bin/sed s/verdana/arial/g"
+
+&lt;Location /&gt;
+    # directive de base permettant de traiter la sortie avec le
+    # filtre fixtext
+    SetOutputFilter fixtext
+&lt;/Location&gt;</pre>
+
+
+<div class="note">
+<p>Vous pouvez aussi utiliser <code class="module"><a href="../mod/mod_substitute.html">mod_substitute</a></code> pour
+effectuer le même traitement sans avoir à invoquer un programme
+externe.</p>
+</div>      
+
+    
+
+    <h3>Tracer un autre filtre</h3>
+      <pre class="prettyprint lang-config"># Trace les données lues et écrites par mod_deflate pour un
+# client particulier (IP 192.168.1.31) qui a des problèmes de
+# compression.
+# Ce premier filtre va tracer ce qui entre dans mod_deflate.
+ExtFilterDefine tracebefore \
+    cmd="/bin/tracefilter.pl /tmp/tracebefore" \
+    EnableEnv=trace_this_client
+
+# Ce second filtre va tracer ce qui sort de mod_deflate.
+# Notez que sans le paramètre ftype, le type de filtre par
+# défaut AP_FTYPE_RESOURCE placerait le filtre *avant*
+# mod_deflate dans la chaîne de filtrage. Le fait d'affecter
+# à ce paramètre une valeur numérique sensiblement supérieure à
+# AP_FTYPE_CONTENT_SET permet de s'assurer que le filtre sera
+# placé après mod_deflate.
+ExtFilterDefine traceafter \
+    cmd="/bin/tracefilter.pl /tmp/traceafter" \
+    EnableEnv=trace_this_client ftype=21
+
+&lt;Directory /usr/local/docs&gt;
+    SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
+    SetOutputFilter tracebefore;deflate;traceafter
+&lt;/Directory&gt;</pre>
+
+
+      <div class="example"><h3>Voici le filtre qui trace les données :</h3><pre class="prettyprint lang-perl">#!/usr/local/bin/perl -w
+use strict;
+
+open(SAVE, "&gt;$ARGV[0]")
+    or die "can't open $ARGV[0]: $?";
+
+while (&lt;STDIN&gt;) {
+    print SAVE $_;
+    print $_;
+}
+
+close(SAVE);</pre>
+</div>
+    
 </div>
 </div>
 <div class="bottomlang">
index ab7f37ed5b6988cf7a60424d1c88a599c1ccb7d7..fbd4d0e31a59baaccc7f1233efd1c4ab300b81c2 100644 (file)
 <li><a href="../filter.html">フィルタ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ExtFilterDefine" id="ExtFilterDefine">ExtFilterDefine</a> <a name="extfilterdefine" id="extfilterdefine">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>外部フィルタを定義</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ExtFilterDefine <var>filtername</var> <var>parameters</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_ext_filter</td></tr>
+</table>
+    <p><code class="directive">ExtFilterDefine</code> は、実行するプログラムや
+    引数など、外部フィルタの特性を定義します。</p>
+
+    <p><var>filtername</var> は定義するフィルタの名前を指定します。
+    この名前は後で <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code>
+    ディレクティブで指定できます。名前は登録されるすべてのフィルタで
+    一意でなくてはなりません。<em>現時点では、フィルタの登録 API からは
+    エラーは報告されません。ですから、重複する名前を使ってしまったときでも
+    ユーザにはそのことは報告されません。</em></p>
+
+    <p>続くパラメータの順番は関係無く、それらは実行する外部コマンドと、
+    他の特性を定義します。<code>cmd=</code> だけが必須のパラメータです。
+    指定可能なパラメータは:</p>
+
+    <dl>
+      <dt><code>cmd=<var>cmdline</var></code></dt>
+
+      <dd><code>cmd=</code> キーワードは実行する外部コマンドを指定します。
+      プログラム名の後に引数がある場合は、コマンド行は引用符で囲む
+      必要があります (<em>例えば</em>、<code>cmd="<var>/bin/mypgm</var>
+      <var>arg1</var> <var>arg2</var>"</code> のように)。プログラムは
+      シェル経由でなく、直接実行されますので、通常のシェル用の
+      エスケープは必要ありません。プログラムの引数は空白で区切られます。
+      プログラムの引数の一部となる必要のある空白はバックスペースでエスケープ
+      できます。引数の一部になるバックスラッシュはバックスラッシュで
+      エスケープする必要があります。標準の CGI 環境変数に加えて、
+      環境変数 DOCUMENT_URI, DOCUMENT_PATH_INFO, and 
+      QUERY_STRING_UNESCAPED がプログラムのために設定されます。</dd>
+
+      <dt><code>mode=<var>mode</var></code></dt>
+
+      <dd>応答を処理するフィルタには <code>mode=output</code> (デフォルト)
+      を使います。リクエストを処理するフィルタには <code>mode=input</code>
+      を使います。<code>mode=input</code> は Apache 2.1 以降で利用可能です。</dd>
+
+      <dt><code>intype=<var>imt</var></code></dt>
+
+      <dd>このパラメータはフィルタされるべきドキュメントの
+      インターネットメディアタイプ (<em>すなわち</em>、MIME タイプ) を
+      指定します。デフォルトではすべてのドキュメントがフィルタされます。
+      <code>intype=</code> が指定されていれば、フィルタは指定されていない
+      ドキュメントには適用されなくなります。</dd>
+
+      <dt><code>outtype=<var>imt</var></code></dt>
+
+      <dd>このパラメータはフィルタされたドキュメントの
+      インターネットメディアタイプ (<em>すなわち</em>、MIME タイプ) を
+      指定します。フィルタ動作にともなってインターネットメディアタイプが
+      変わる場合に有用です。デフォルトではインターネットメディアタイプは
+      変更されません。</dd>
+
+      <dt><code>PreservesContentLength</code></dt>
+
+      <dd><code>PreservesContentLength</code> キーワードはフィルタが
+      content length <span class="transnote">(<em>訳注:</em> コンテントの長さ)</span>
+      を変更しないということを指定します。ほとんどのフィルタは
+      content length を変更するため、これはデフォルトではありません。
+      フィルタが長さを変えないときは、このキーワードを指定すると
+      よいでしょう。</dd>
+
+      <dt><code>ftype=<var>filtertype</var></code></dt>
+
+      <dd>このパラメータはフィルタが登録されるべきフィルタタイプの
+      数値を指定します。ほとんどの場合は、デフォルトの AP_FTYPE_RESOURCE で
+      十分です。フィルタがフィルタチェーンの別の場所で動作する必要がある
+      場合は、このパラメータを指定する必要があります。指定可能な値は
+      util_filter.h の AP_FTYPE_foo 定義を参照してください。</dd>
+
+      <dt><code>disableenv=<var>env</var></code></dt>
+
+      <dd>設定されていた場合にフィルタを無効にするための環境変数を
+      指定します。</dd>
+
+      <dt><code>enableenv=<var>env</var></code></dt>
+
+      <dd>このパラメータはフィルタが有効になるために設定されていなければ
+      ならない環境変数を指定します。</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ExtFilterOptions" id="ExtFilterOptions">ExtFilterOptions</a> <a name="extfilteroptions" id="extfilteroptions">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> のオプションを設定</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ExtFilterOptions <var>option</var> [<var>option</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ExtFilterOptions DebugLevel=0 NoLogStderr</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_ext_filter</td></tr>
+</table>
+    <p><code class="directive">ExtFilterOptions</code> ディレクティブは
+    <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> の特別な処理用のオプションを
+    指定します。<var>Option</var> には以下のどれかを指定します。</p>
+
+    <dl>
+      <dt><code>DebugLevel=<var>n</var></code></dt>
+
+      <dd>
+        <code>DebugLevel</code> で <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> 
+        の生成するデバッグメッセージのレベルを設定できます。
+        デフォルトでは、デバッグメッセージは生成されません。
+        これは <code>DebugLevel=0</code> と設定するのと同じです。
+        数字が大きくなればなるほど、より多くのデバッグメッセージが
+        生成され、サーバの性能は落ちます。数値の実際の意味は
+        <code>mod_ext_filter.c</code> の先頭近くの DBGLVL_ 定数の
+        定義で説明されています。
+
+        <p>注: デバッグメッセージを Apache のエラーログに
+        保存するようにするためには、core のディレクティブ 
+        <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> 
+        を使う必要があります。</p>
+      </dd>
+
+      <dt><code>LogStderr | NoLogStderr</code></dt>
+
+      <dd><code>LogStderr</code> キーワードは外部フィルタプログラムにより
+      標準エラー <span class="transnote">(<em>訳注:</em> stderr)</span> に書かれたメッセージを
+      Apache のエラーログに保存するようにします。<code>NoLogStderr</code> は
+      逆に保存しないようにします。</dd>
+    </dl>
+
+    <div class="example"><h3>例</h3><p><code>
+      ExtFilterOptions LogStderr DebugLevel=0
+    </code></p></div>
+
+    <p>この例では、フィルタの標準出力に書かれたメッセージは
+    Apache のエラーログに保存されます。<code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> からは
+    デバッグメッセージは生成されません。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="examples" id="examples">例</a></h2>
 
         close(SAVE);
       </code></p></div>
     
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ExtFilterDefine" id="ExtFilterDefine">ExtFilterDefine</a> <a name="extfilterdefine" id="extfilterdefine">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>外部フィルタを定義</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ExtFilterDefine <var>filtername</var> <var>parameters</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_ext_filter</td></tr>
-</table>
-    <p><code class="directive">ExtFilterDefine</code> は、実行するプログラムや
-    引数など、外部フィルタの特性を定義します。</p>
-
-    <p><var>filtername</var> は定義するフィルタの名前を指定します。
-    この名前は後で <code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code>
-    ディレクティブで指定できます。名前は登録されるすべてのフィルタで
-    一意でなくてはなりません。<em>現時点では、フィルタの登録 API からは
-    エラーは報告されません。ですから、重複する名前を使ってしまったときでも
-    ユーザにはそのことは報告されません。</em></p>
-
-    <p>続くパラメータの順番は関係無く、それらは実行する外部コマンドと、
-    他の特性を定義します。<code>cmd=</code> だけが必須のパラメータです。
-    指定可能なパラメータは:</p>
-
-    <dl>
-      <dt><code>cmd=<var>cmdline</var></code></dt>
-
-      <dd><code>cmd=</code> キーワードは実行する外部コマンドを指定します。
-      プログラム名の後に引数がある場合は、コマンド行は引用符で囲む
-      必要があります (<em>例えば</em>、<code>cmd="<var>/bin/mypgm</var>
-      <var>arg1</var> <var>arg2</var>"</code> のように)。プログラムは
-      シェル経由でなく、直接実行されますので、通常のシェル用の
-      エスケープは必要ありません。プログラムの引数は空白で区切られます。
-      プログラムの引数の一部となる必要のある空白はバックスペースでエスケープ
-      できます。引数の一部になるバックスラッシュはバックスラッシュで
-      エスケープする必要があります。標準の CGI 環境変数に加えて、
-      環境変数 DOCUMENT_URI, DOCUMENT_PATH_INFO, and 
-      QUERY_STRING_UNESCAPED がプログラムのために設定されます。</dd>
-
-      <dt><code>mode=<var>mode</var></code></dt>
-
-      <dd>応答を処理するフィルタには <code>mode=output</code> (デフォルト)
-      を使います。リクエストを処理するフィルタには <code>mode=input</code>
-      を使います。<code>mode=input</code> は Apache 2.1 以降で利用可能です。</dd>
-
-      <dt><code>intype=<var>imt</var></code></dt>
-
-      <dd>このパラメータはフィルタされるべきドキュメントの
-      インターネットメディアタイプ (<em>すなわち</em>、MIME タイプ) を
-      指定します。デフォルトではすべてのドキュメントがフィルタされます。
-      <code>intype=</code> が指定されていれば、フィルタは指定されていない
-      ドキュメントには適用されなくなります。</dd>
-
-      <dt><code>outtype=<var>imt</var></code></dt>
-
-      <dd>このパラメータはフィルタされたドキュメントの
-      インターネットメディアタイプ (<em>すなわち</em>、MIME タイプ) を
-      指定します。フィルタ動作にともなってインターネットメディアタイプが
-      変わる場合に有用です。デフォルトではインターネットメディアタイプは
-      変更されません。</dd>
-
-      <dt><code>PreservesContentLength</code></dt>
-
-      <dd><code>PreservesContentLength</code> キーワードはフィルタが
-      content length <span class="transnote">(<em>訳注:</em> コンテントの長さ)</span>
-      を変更しないということを指定します。ほとんどのフィルタは
-      content length を変更するため、これはデフォルトではありません。
-      フィルタが長さを変えないときは、このキーワードを指定すると
-      よいでしょう。</dd>
-
-      <dt><code>ftype=<var>filtertype</var></code></dt>
-
-      <dd>このパラメータはフィルタが登録されるべきフィルタタイプの
-      数値を指定します。ほとんどの場合は、デフォルトの AP_FTYPE_RESOURCE で
-      十分です。フィルタがフィルタチェーンの別の場所で動作する必要がある
-      場合は、このパラメータを指定する必要があります。指定可能な値は
-      util_filter.h の AP_FTYPE_foo 定義を参照してください。</dd>
-
-      <dt><code>disableenv=<var>env</var></code></dt>
-
-      <dd>設定されていた場合にフィルタを無効にするための環境変数を
-      指定します。</dd>
-
-      <dt><code>enableenv=<var>env</var></code></dt>
-
-      <dd>このパラメータはフィルタが有効になるために設定されていなければ
-      ならない環境変数を指定します。</dd>
-    </dl>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ExtFilterOptions" id="ExtFilterOptions">ExtFilterOptions</a> <a name="extfilteroptions" id="extfilteroptions">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td><code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> のオプションを設定</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>ExtFilterOptions <var>option</var> [<var>option</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>ExtFilterOptions DebugLevel=0 NoLogStderr</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_ext_filter</td></tr>
-</table>
-    <p><code class="directive">ExtFilterOptions</code> ディレクティブは
-    <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> の特別な処理用のオプションを
-    指定します。<var>Option</var> には以下のどれかを指定します。</p>
-
-    <dl>
-      <dt><code>DebugLevel=<var>n</var></code></dt>
-
-      <dd>
-        <code>DebugLevel</code> で <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> 
-        の生成するデバッグメッセージのレベルを設定できます。
-        デフォルトでは、デバッグメッセージは生成されません。
-        これは <code>DebugLevel=0</code> と設定するのと同じです。
-        数字が大きくなればなるほど、より多くのデバッグメッセージが
-        生成され、サーバの性能は落ちます。数値の実際の意味は
-        <code>mod_ext_filter.c</code> の先頭近くの DBGLVL_ 定数の
-        定義で説明されています。
-
-        <p>注: デバッグメッセージを Apache のエラーログに
-        保存するようにするためには、core のディレクティブ 
-        <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> 
-        を使う必要があります。</p>
-      </dd>
-
-      <dt><code>LogStderr | NoLogStderr</code></dt>
-
-      <dd><code>LogStderr</code> キーワードは外部フィルタプログラムにより
-      標準エラー <span class="transnote">(<em>訳注:</em> stderr)</span> に書かれたメッセージを
-      Apache のエラーログに保存するようにします。<code>NoLogStderr</code> は
-      逆に保存しないようにします。</dd>
-    </dl>
-
-    <div class="example"><h3>例</h3><p><code>
-      ExtFilterOptions LogStderr DebugLevel=0
-    </code></p></div>
-
-    <p>この例では、フィルタの標準出力に書かれたメッセージは
-    Apache のエラーログに保存されます。<code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> からは
-    デバッグメッセージは生成されません。</p>
-
 </div>
 </div>
 <div class="bottomlang">
index 7bc325a747952036d0ee052171f7a28a726306a8..8a60b5abef85776a7d709ec26c1cf2b2b75028f1 100644 (file)
 <li><a href="../filter.html">ÇÊÅÍ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ExtFilterDefine" id="ExtFilterDefine">ExtFilterDefine</a> <a name="extfilterdefine" id="extfilterdefine">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¿ÜºÎ ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ExtFilterDefine <var>filtername</var> <var>parameters</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_ext_filter</td></tr>
+</table>
+    <p><code class="directive">ExtFilterDefine</code> Áö½Ã¾î´Â ¿ÜºÎ
+    ÇÊÅÍÀÇ ¼ºÁú°ú ½ÇÇàÇÒ ÇÁ·Î±×·¥, ¾Æ±Ô¸ÕÆ®¸¦ Á¤ÀÇÇÑ´Ù.</p>
+
+    <p><var>filtername</var>Àº Á¤ÀÇÇÒ ÇÊÅÍ À̸§À» ÁöÁ¤ÇÑ´Ù.
+    ÀÌ À̸§À» SetOutputFilter Áö½Ã¾î¿¡¼­ »ç¿ëÇÑ´Ù. µî·ÏÇÑ ¸ðµç
+    ÇÊÅ͵鰣¿¡ À̸§ÀÌ °ãÄ¡¸é ¾ÈµÈ´Ù. <em>ÇöÀç ÇÊÅ͵î·Ï API´Â
+    ¿À·ù¸¦ º¸°íÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­ »ç¿ëÀڴ À̸§ÀÌ °ãÄ¡´Â ¹®Á¦¸¦
+    ¾ËÁö ¸øÇÑ´Ù.</em></p>
+
+    <p>½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¿Í ´Ù¸¥ ¼ºÁúÀ» Á¤ÀÇÇϴ ³ª¸ÓÁö ¾Æ±Ô¸ÕÆ®´Â
+    ¾î¶² ¼ø¼­·Î ³ª¿Íµµ °¡´ÉÇÏ´Ù. ´Ü, <code>cmd=</code> ÆÄ¶ó¹ÌÅÍ´Â
+    ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. »ç¿ëÇÒ ¼ö Àִ ÆÄ¶ó¹ÌÅʹ ´ÙÀ½°ú °°´Ù:</p>
+
+    <dl>
+      <dt><code>cmd=<var>cmdline</var></code></dt>
+
+      <dd><code>cmd=</code> Å°¿öµå´Â ½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¸¦ ÁöÁ¤ÇÑ´Ù.
+      ÇÁ·Î±×·¥¸í µÚ¿¡ ¾Æ±Ô¸ÕÆ®°¡ Àִٸ頸í·ÉÇàÀ» ½Öµû¿ÈÇ¥·Î
+      ¹­¾î¾ß ÇÑ´Ù (<em>¿¹¸¦ µé¾î</em>,
+      <code>cmd="<var>/bin/mypgm</var> <var>arg1</var>
+      <var>arg2</var>"</code>). ½©À» °ÅÄ¡Áö¾Ê°í Á÷Á¢ ÇÁ·Î±×·¥À»
+      ½ÇÇàÇϱ⶧¹®¿¡ ÀϹÝÀûÀΠ½© µû¿ÈÇ¥´Â ÇÊ¿ä¾ø´Ù. ÇÁ·Î±×·¥
+      ¾Æ±Ô¸ÕÆ®µéÀº °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù. ÇÁ·Î±×·¥ ¾Æ±Ô¸ÕÆ®¿¡ °ø¹éÀÌ
+      Àִٸ頰ø¹é ¾Õ¿¡ ¹é½½·¡½¬·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ¹é½½·¡½¬°¡
+      ¾Æ±Ô¸ÕÆ®ÀÇ ÀϺζó¸é ¹é½½·¡½¬¸¦ µÎ¹ø »ç¿ëÇØ¾ß ÇÑ´Ù. ÇÁ·Î±×·¥À»
+      ½ÇÇàÇÒ¶§ Ç¥ÁØ CGI È¯°æº¯¼ö¿Í Ãß°¡·Î DOCUMENT_URI,
+      DOCUMENT_PATH_INFO, QUERY_STRING_UNESCAPED º¯¼ö¸¦ ¼³Á¤ÇÑ´Ù.</dd>
+
+      <dt><code>mode=<var>mode</var></code></dt>
+
+      <dd>ÀÀ´äÀ» Ã³¸®Çϴ ÇÊÅʹ (±âº»°ªÀÎ) <code>mode=output</code>À»
+      »ç¿ëÇÑ´Ù. ¿äûÀ» Ã³¸®Çϴ ÇÊÅʹ <code>mode=input</code>À»
+      »ç¿ëÇÑ´Ù. <code>mode=input</code>Àº ¾ÆÆÄÄ¡ 2.1¿¡ Ãß°¡µÇ¾ú´Ù.</dd>
+
+      <dt><code>intype=<var>imt</var></code></dt>
+
+      <dd>ÀÌ ÆÄ¶ó¹ÌÅʹ ÇÊÅͷΠó¸®ÇÒ ¹®¼­ÀÇ ÀÎÅͳݠmedia
+      type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ±âº»ÀûÀ¸·Î ¸ðµç
+      ¹®¼­¸¦ ÇÊÅͷΠó¸®ÇÑ´Ù. <code>intype=</code>À» ÁöÁ¤Çϸé
+      ´Ù¸¥ typeÀÇ ¹®¼­´Â ÇÊÅͷΠó¸®ÇÏÁö ¾Ê´Â´Ù.</dd>
+
+      <dt><code>outtype=<var>imt</var></code></dt>
+
+      <dd>ÀÌ ÆÄ¶ó¹ÌÅʹ ÇÊÅͷΠó¸®ÇÑ ¹®¼­ÀÇ ÀÎÅͳݠmedia
+      type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ÇÊÅÍ󸮠ÀÛ¾÷Áß¿¡
+      ÀÎÅͳݠmedia typeÀ» º¯°æÇÒ¶§ À¯¿ëÇÏ´Ù. ±âº»ÀûÀ¸·Î, ÀÎÅͳÝ
+      media typeÀº º¯ÇÏÁö ¾Ê´Â´Ù.</dd>
+
+      <dt><code>PreservesContentLength</code></dt>
+
+      <dd><code>PreservesContentLength</code> Å°¿öµå´Â ÇÊÅͰ¡
+      content length¸¦ À¯ÁöÇϵµ·Ï ÇÑ´Ù. ´ëºÎºÐÀÇ ÇÊÅͰ¡ content
+      length¸¦ º¯°æÇϹǷΠÀ̠Ű¿öµå´Â ±âº»°ªÀÌ ¾Æ´Ï´Ù. ÇÊÅͰ¡
+      ±æÀ̸¦ À¯ÁöÇÒ¶§¸¸ À̠Ű¿öµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.</dd>
+
+      <dt><code>ftype=<var>filtertype</var></code></dt>
+
+      <dd>ÀÌ ÆÄ¶ó¹ÌÅʹ ÇÊÅÍ Á¾·ù¿¡ ´ëÇÑ ¼ýÀÚ°ªÀ» ÁöÁ¤ÇÑ´Ù.
+      ´ëºÎºÐÀÇ °æ¿ì ±âº»°ªÀΠAP_FTYPE_RESOURCE°¡ Àû´çÇÏ´Ù.
+      ÇÊÅ͸¦ ½ÇÇàÇϴ ¼ø¼­°¡ ÀÚ¿øÇÊÅͿ͠´Þ¶ó¾ßÇϴ °æ¿ì ÀÌ
+      ÆÄ¶ó¹ÌÅͰ¡ ÇÊ¿äÇÏ´Ù. Àû´çÇÑ °ªÀ» ¾Ë·Á¸é util_filter.h¿¡
+      Àִ AP_FTYPE_* Á¤ÀǸ¦ Âü°íÇ϶ó.</dd>
+
+      <dt><code>disableenv=<var>env</var></code></dt>
+
+      <dd>ÀÌ ÆÄ¶ó¹ÌÅͷΠ¼³Á¤ÇѠȯ°æº¯¼ö°¡ Á¤ÀǵǾú´Ù¸é ÇÊÅ͸¦
+      »ç¿ëÇÏÁö ¾Ê´Â´Ù.</dd>
+
+      <dt><code>enableenv=<var>env</var></code></dt>
+
+      <dd>ÀÌ ÆÄ¶ó¹ÌÅͷΠ¼³Á¤ÇѠȯ°æº¯¼ö°¡ Á¤ÀǵȠ°æ¿ì ÇÊÅ͸¦
+      »ç¿ëÇÑ´Ù.</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ExtFilterOptions" id="ExtFilterOptions">ExtFilterOptions</a> <a name="extfilteroptions" id="extfilteroptions">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td><code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> ¿É¼ÇÀ» ¼³Á¤ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ExtFilterOptions <var>option</var> [<var>option</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ExtFilterOptions DebugLevel=0 NoLogStderr</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_ext_filter</td></tr>
+</table>
+    <p><code class="directive">ExtFilterOptions</code> Áö½Ã¾î´Â
+    <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>ÀǠƯº°ÇѠ󸮿ɼÇÀ» ÁöÁ¤ÇÑ´Ù.
+    <var>Option</var>Àº ´ÙÀ½Áß Çϳª´Ù.</p>
+
+    <dl>
+      <dt><code>DebugLevel=<var>n</var></code></dt>
+
+      <dd>
+        <code>DebugLevel</code> Å°¿öµå´Â
+        <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>°¡ ±â·ÏÇϴ µð¹ö±× ¹®±¸
+        ¼öÁØÀ» Á¤ÇÑ´Ù. ±âº»°ªÀº µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù.
+        À̴ <code>DebugLevel=0</code>°ú °°´Ù. ³ôÀº ¼ýÀÚ¸¦
+        »ç¿ëÇÒ¼ö·Ï, ´õ ¸¹Àº µð¹ö±×¹®ÀÌ ±â·ÏµÇ°í ¼­¹ö ¼º´ÉÀÌ
+        ¶³¾îÁø´Ù. ¼ýÀÚ°ªÀÇ ½ÇÁ¦ Àǹ̴ <code>mod_ext_filter.c</code>
+        ¾ÕºÎºÐ¿¡ Àִ DBGLVL_ »ó¼ö Á¤ÀÇ¿¡ ¼³¸íµÇÀÖ´Ù.
+
+        <p>ÁÖÀÇ: ÇÊÅÍ ·Î±×¸¦ ±â·ÏÇÏ·Á¸é core Áö½Ã¾î <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>À» »ç¿ëÇÏ¿© µð¹ö±×¹®À»
+        ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇØ¾ß ÇÑ´Ù.</p>
+      </dd>
+
+      <dt><code>LogStderr | NoLogStderr</code></dt>
+
+      <dd><code>LogStderr</code> Å°¿öµå´Â ¿ÜºÎ ÇÊÅÍ ÇÁ·Î±×·¥ÀÌ
+      Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇϴ ¹®±¸¸¦ ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇÑ´Ù.
+      <code>NoLogStderr</code>´Â ÀÌ ±â´ÉÀ» ÇÏÁö ¾Ê´Â´Ù.</dd>
+    </dl>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      ExtFilterOptions LogStderr DebugLevel=0
+    </code></p></div>
+
+    <p>À§ÀÇ ¼³Á¤À» »ç¿ëÇϸé ÇÊÅͰ¡ Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇϴ ¹®±¸¸¦
+    ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇϰí, <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>´Â
+    ÀÚü µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù. </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="examples" id="examples">¿¹Á¦</a></h2>
 
         close(SAVE);
       </code></p></div>
     
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ExtFilterDefine" id="ExtFilterDefine">ExtFilterDefine</a> <a name="extfilterdefine" id="extfilterdefine">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¿ÜºÎ ÇÊÅ͸¦ Á¤ÀÇÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ExtFilterDefine <var>filtername</var> <var>parameters</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_ext_filter</td></tr>
-</table>
-    <p><code class="directive">ExtFilterDefine</code> Áö½Ã¾î´Â ¿ÜºÎ
-    ÇÊÅÍÀÇ ¼ºÁú°ú ½ÇÇàÇÒ ÇÁ·Î±×·¥, ¾Æ±Ô¸ÕÆ®¸¦ Á¤ÀÇÇÑ´Ù.</p>
-
-    <p><var>filtername</var>Àº Á¤ÀÇÇÒ ÇÊÅÍ À̸§À» ÁöÁ¤ÇÑ´Ù.
-    ÀÌ À̸§À» SetOutputFilter Áö½Ã¾î¿¡¼­ »ç¿ëÇÑ´Ù. µî·ÏÇÑ ¸ðµç
-    ÇÊÅ͵鰣¿¡ À̸§ÀÌ °ãÄ¡¸é ¾ÈµÈ´Ù. <em>ÇöÀç ÇÊÅ͵î·Ï API´Â
-    ¿À·ù¸¦ º¸°íÇÏÁö ¾Ê´Â´Ù. ±×·¡¼­ »ç¿ëÀڴ À̸§ÀÌ °ãÄ¡´Â ¹®Á¦¸¦
-    ¾ËÁö ¸øÇÑ´Ù.</em></p>
-
-    <p>½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¿Í ´Ù¸¥ ¼ºÁúÀ» Á¤ÀÇÇϴ ³ª¸ÓÁö ¾Æ±Ô¸ÕÆ®´Â
-    ¾î¶² ¼ø¼­·Î ³ª¿Íµµ °¡´ÉÇÏ´Ù. ´Ü, <code>cmd=</code> ÆÄ¶ó¹ÌÅÍ´Â
-    ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù. »ç¿ëÇÒ ¼ö Àִ ÆÄ¶ó¹ÌÅʹ ´ÙÀ½°ú °°´Ù:</p>
-
-    <dl>
-      <dt><code>cmd=<var>cmdline</var></code></dt>
-
-      <dd><code>cmd=</code> Å°¿öµå´Â ½ÇÇàÇÒ ¿ÜºÎ ¸í·É¾î¸¦ ÁöÁ¤ÇÑ´Ù.
-      ÇÁ·Î±×·¥¸í µÚ¿¡ ¾Æ±Ô¸ÕÆ®°¡ Àִٸ頸í·ÉÇàÀ» ½Öµû¿ÈÇ¥·Î
-      ¹­¾î¾ß ÇÑ´Ù (<em>¿¹¸¦ µé¾î</em>,
-      <code>cmd="<var>/bin/mypgm</var> <var>arg1</var>
-      <var>arg2</var>"</code>). ½©À» °ÅÄ¡Áö¾Ê°í Á÷Á¢ ÇÁ·Î±×·¥À»
-      ½ÇÇàÇϱ⶧¹®¿¡ ÀϹÝÀûÀΠ½© µû¿ÈÇ¥´Â ÇÊ¿ä¾ø´Ù. ÇÁ·Î±×·¥
-      ¾Æ±Ô¸ÕÆ®µéÀº °ø¹éÀ¸·Î ±¸ºÐÇÑ´Ù. ÇÁ·Î±×·¥ ¾Æ±Ô¸ÕÆ®¿¡ °ø¹éÀÌ
-      Àִٸ頰ø¹é ¾Õ¿¡ ¹é½½·¡½¬·Î »ç¿ëÇØ¾ß ÇÑ´Ù. ¹é½½·¡½¬°¡
-      ¾Æ±Ô¸ÕÆ®ÀÇ ÀϺζó¸é ¹é½½·¡½¬¸¦ µÎ¹ø »ç¿ëÇØ¾ß ÇÑ´Ù. ÇÁ·Î±×·¥À»
-      ½ÇÇàÇÒ¶§ Ç¥ÁØ CGI È¯°æº¯¼ö¿Í Ãß°¡·Î DOCUMENT_URI,
-      DOCUMENT_PATH_INFO, QUERY_STRING_UNESCAPED º¯¼ö¸¦ ¼³Á¤ÇÑ´Ù.</dd>
-
-      <dt><code>mode=<var>mode</var></code></dt>
-
-      <dd>ÀÀ´äÀ» Ã³¸®Çϴ ÇÊÅʹ (±âº»°ªÀÎ) <code>mode=output</code>À»
-      »ç¿ëÇÑ´Ù. ¿äûÀ» Ã³¸®Çϴ ÇÊÅʹ <code>mode=input</code>À»
-      »ç¿ëÇÑ´Ù. <code>mode=input</code>Àº ¾ÆÆÄÄ¡ 2.1¿¡ Ãß°¡µÇ¾ú´Ù.</dd>
-
-      <dt><code>intype=<var>imt</var></code></dt>
-
-      <dd>ÀÌ ÆÄ¶ó¹ÌÅʹ ÇÊÅͷΠó¸®ÇÒ ¹®¼­ÀÇ ÀÎÅͳݠmedia
-      type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ±âº»ÀûÀ¸·Î ¸ðµç
-      ¹®¼­¸¦ ÇÊÅͷΠó¸®ÇÑ´Ù. <code>intype=</code>À» ÁöÁ¤Çϸé
-      ´Ù¸¥ typeÀÇ ¹®¼­´Â ÇÊÅͷΠó¸®ÇÏÁö ¾Ê´Â´Ù.</dd>
-
-      <dt><code>outtype=<var>imt</var></code></dt>
-
-      <dd>ÀÌ ÆÄ¶ó¹ÌÅʹ ÇÊÅͷΠó¸®ÇÑ ¹®¼­ÀÇ ÀÎÅͳݠmedia
-      type(<em>Áï</em>, MIME type)À» ÁöÁ¤ÇÑ´Ù. ÇÊÅÍ󸮠ÀÛ¾÷Áß¿¡
-      ÀÎÅͳݠmedia typeÀ» º¯°æÇÒ¶§ À¯¿ëÇÏ´Ù. ±âº»ÀûÀ¸·Î, ÀÎÅͳÝ
-      media typeÀº º¯ÇÏÁö ¾Ê´Â´Ù.</dd>
-
-      <dt><code>PreservesContentLength</code></dt>
-
-      <dd><code>PreservesContentLength</code> Å°¿öµå´Â ÇÊÅͰ¡
-      content length¸¦ À¯ÁöÇϵµ·Ï ÇÑ´Ù. ´ëºÎºÐÀÇ ÇÊÅͰ¡ content
-      length¸¦ º¯°æÇϹǷΠÀ̠Ű¿öµå´Â ±âº»°ªÀÌ ¾Æ´Ï´Ù. ÇÊÅͰ¡
-      ±æÀ̸¦ À¯ÁöÇÒ¶§¸¸ À̠Ű¿öµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.</dd>
-
-      <dt><code>ftype=<var>filtertype</var></code></dt>
-
-      <dd>ÀÌ ÆÄ¶ó¹ÌÅʹ ÇÊÅÍ Á¾·ù¿¡ ´ëÇÑ ¼ýÀÚ°ªÀ» ÁöÁ¤ÇÑ´Ù.
-      ´ëºÎºÐÀÇ °æ¿ì ±âº»°ªÀΠAP_FTYPE_RESOURCE°¡ Àû´çÇÏ´Ù.
-      ÇÊÅ͸¦ ½ÇÇàÇϴ ¼ø¼­°¡ ÀÚ¿øÇÊÅͿ͠´Þ¶ó¾ßÇϴ °æ¿ì ÀÌ
-      ÆÄ¶ó¹ÌÅͰ¡ ÇÊ¿äÇÏ´Ù. Àû´çÇÑ °ªÀ» ¾Ë·Á¸é util_filter.h¿¡
-      Àִ AP_FTYPE_* Á¤ÀǸ¦ Âü°íÇ϶ó.</dd>
-
-      <dt><code>disableenv=<var>env</var></code></dt>
-
-      <dd>ÀÌ ÆÄ¶ó¹ÌÅͷΠ¼³Á¤ÇѠȯ°æº¯¼ö°¡ Á¤ÀǵǾú´Ù¸é ÇÊÅ͸¦
-      »ç¿ëÇÏÁö ¾Ê´Â´Ù.</dd>
-
-      <dt><code>enableenv=<var>env</var></code></dt>
-
-      <dd>ÀÌ ÆÄ¶ó¹ÌÅͷΠ¼³Á¤ÇѠȯ°æº¯¼ö°¡ Á¤ÀǵȠ°æ¿ì ÇÊÅ͸¦
-      »ç¿ëÇÑ´Ù.</dd>
-    </dl>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ExtFilterOptions" id="ExtFilterOptions">ExtFilterOptions</a> <a name="extfilteroptions" id="extfilteroptions">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td><code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> ¿É¼ÇÀ» ¼³Á¤ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ExtFilterOptions <var>option</var> [<var>option</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ExtFilterOptions DebugLevel=0 NoLogStderr</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_ext_filter</td></tr>
-</table>
-    <p><code class="directive">ExtFilterOptions</code> Áö½Ã¾î´Â
-    <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>ÀǠƯº°ÇѠ󸮿ɼÇÀ» ÁöÁ¤ÇÑ´Ù.
-    <var>Option</var>Àº ´ÙÀ½Áß Çϳª´Ù.</p>
-
-    <dl>
-      <dt><code>DebugLevel=<var>n</var></code></dt>
-
-      <dd>
-        <code>DebugLevel</code> Å°¿öµå´Â
-        <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>°¡ ±â·ÏÇϴ µð¹ö±× ¹®±¸
-        ¼öÁØÀ» Á¤ÇÑ´Ù. ±âº»°ªÀº µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù.
-        À̴ <code>DebugLevel=0</code>°ú °°´Ù. ³ôÀº ¼ýÀÚ¸¦
-        »ç¿ëÇÒ¼ö·Ï, ´õ ¸¹Àº µð¹ö±×¹®ÀÌ ±â·ÏµÇ°í ¼­¹ö ¼º´ÉÀÌ
-        ¶³¾îÁø´Ù. ¼ýÀÚ°ªÀÇ ½ÇÁ¦ Àǹ̴ <code>mod_ext_filter.c</code>
-        ¾ÕºÎºÐ¿¡ Àִ DBGLVL_ »ó¼ö Á¤ÀÇ¿¡ ¼³¸íµÇÀÖ´Ù.
-
-        <p>ÁÖÀÇ: ÇÊÅÍ ·Î±×¸¦ ±â·ÏÇÏ·Á¸é core Áö½Ã¾î <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code>À» »ç¿ëÇÏ¿© µð¹ö±×¹®À»
-        ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇØ¾ß ÇÑ´Ù.</p>
-      </dd>
-
-      <dt><code>LogStderr | NoLogStderr</code></dt>
-
-      <dd><code>LogStderr</code> Å°¿öµå´Â ¿ÜºÎ ÇÊÅÍ ÇÁ·Î±×·¥ÀÌ
-      Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇϴ ¹®±¸¸¦ ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇÑ´Ù.
-      <code>NoLogStderr</code>´Â ÀÌ ±â´ÉÀ» ÇÏÁö ¾Ê´Â´Ù.</dd>
-    </dl>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      ExtFilterOptions LogStderr DebugLevel=0
-    </code></p></div>
-
-    <p>À§ÀÇ ¼³Á¤À» »ç¿ëÇϸé ÇÊÅͰ¡ Ç¥ÁØ¿À·ù·Î Ãâ·ÂÇϴ ¹®±¸¸¦
-    ¾ÆÆÄÄ¡ ¿À·ù·Î±×¿¡ ±â·ÏÇϰí, <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code>´Â
-    ÀÚü µð¹ö±×¹®À» ±â·ÏÇÏÁö ¾Ê´Â´Ù. </p>
-
 </div>
 </div>
 <div class="bottomlang">
index e2fba57cc5d23b30bd3b8734c8c361d563b2ad1a..ab0bbbdb3ad8f6b2afae9aeffd98035ffd71ea12 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#using">Using mod_file_cache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CacheFile" id="CacheFile">CacheFile</a> <a name="cachefile" id="cachefile">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cache a list of file handles at startup time</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
+</table>
+    <p>The <code class="directive">CacheFile</code> directive opens handles to
+    one or more files (given as whitespace separated arguments) and
+    places these handles into the cache at server startup
+    time. Handles to cached files are automatically closed on a server
+    shutdown.  When the files have changed on the filesystem, the
+    server should be restarted to re-cache them.</p>
+
+    <p>Be careful with the <var>file-path</var> arguments: They have
+    to literally match the filesystem path Apache's URL-to-filename
+    translation handlers create. We cannot compare inodes or other
+    stuff to match paths through symbolic links <em>etc.</em>
+    because that again would cost extra <code>stat()</code> system
+    calls which is not acceptable. This module may or may not work
+    with filenames rewritten by <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> or
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">CacheFile /usr/local/apache/htdocs/index.html</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="MMapFile" id="MMapFile">MMapFile</a> <a name="mmapfile" id="mmapfile">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Map a list of files into memory at startup time</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MMapFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
+</table>
+    <p>The <code class="directive">MMapFile</code> directive maps one or more files
+    (given as whitespace separated arguments) into memory at server
+    startup time. They are automatically unmapped on a server
+    shutdown. When the files have changed on the filesystem at
+    least a <code>HUP</code> or <code>USR1</code> signal should be send to
+    the server to re-<code>mmap()</code> them.</p>
+
+    <p>Be careful with the <var>file-path</var> arguments: They have
+    to literally match the filesystem path Apache's URL-to-filename
+    translation handlers create. We cannot compare inodes or other
+    stuff to match paths through symbolic links <em>etc.</em>
+    because that again would cost extra <code>stat()</code> system
+    calls which is not acceptable. This module may or may not work
+    with filenames rewritten by <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> or
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="using" id="using">Using mod_file_cache</a></h2>
 
         | sed -e 's/.*/mmapfile &amp;/' &gt; /www/conf/mmap.conf
       </code></p></div>
     </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CacheFile" id="CacheFile">CacheFile</a> <a name="cachefile" id="cachefile">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Cache a list of file handles at startup time</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
-</table>
-    <p>The <code class="directive">CacheFile</code> directive opens handles to
-    one or more files (given as whitespace separated arguments) and
-    places these handles into the cache at server startup
-    time. Handles to cached files are automatically closed on a server
-    shutdown.  When the files have changed on the filesystem, the
-    server should be restarted to re-cache them.</p>
-
-    <p>Be careful with the <var>file-path</var> arguments: They have
-    to literally match the filesystem path Apache's URL-to-filename
-    translation handlers create. We cannot compare inodes or other
-    stuff to match paths through symbolic links <em>etc.</em>
-    because that again would cost extra <code>stat()</code> system
-    calls which is not acceptable. This module may or may not work
-    with filenames rewritten by <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> or
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">CacheFile /usr/local/apache/htdocs/index.html</pre>
-</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="MMapFile" id="MMapFile">MMapFile</a> <a name="mmapfile" id="mmapfile">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Map a list of files into memory at startup time</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MMapFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
-</table>
-    <p>The <code class="directive">MMapFile</code> directive maps one or more files
-    (given as whitespace separated arguments) into memory at server
-    startup time. They are automatically unmapped on a server
-    shutdown. When the files have changed on the filesystem at
-    least a <code>HUP</code> or <code>USR1</code> signal should be send to
-    the server to re-<code>mmap()</code> them.</p>
-
-    <p>Be careful with the <var>file-path</var> arguments: They have
-    to literally match the filesystem path Apache's URL-to-filename
-    translation handlers create. We cannot compare inodes or other
-    stuff to match paths through symbolic links <em>etc.</em>
-    because that again would cost extra <code>stat()</code> system
-    calls which is not acceptable. This module may or may not work
-    with filenames rewritten by <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> or
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index d499be35ff65e215015b4e9362c60d991cd22d50..441436cb0dc7787757230ebc13e7a0d166c40f2b 100644 (file)
@@ -78,6 +78,72 @@ fichiers</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation de mod_file_cache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="cachefile" id="cachefile">Directive</a> <a name="CacheFile" id="CacheFile">CacheFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en cache une liste de gestionnaires de fichiers au
+démarrage</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheFile <var>chemin fichier</var> [<var>chemin fichier</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
+</table>
+    <p>La directive <code class="directive">CacheFile</code> permet d'associer
+    des gestionnaires à un ou plusieurs fichiers (séparés par des
+    espaces), et de placer ceux-ci dans le cache au démarrage du
+    serveur. Les gestionnaires des fichiers mis en cache sont
+    automatiquement fermés à l'arrêt du serveur. Lorsqu'un ou plusieurs
+    fichiers ont été modifiés sur disque, le serveur doit être redémarré
+    afin que les modifications soient prises en compte par le cache.</p>
+
+    <p>Soyez prudent avec les arguments <var>chemin fichier</var> : ils
+    doivent correspondre exactement au chemin du système de fichier que
+    créent les gestionnaires de traduction URL-vers-nom-fichier
+    d'Apache. On ne peut pas comparer des inodes ou autres identifiants
+    pour mettre en correspondance des chemins à l'aide de liens
+    symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un
+    appel à <code>stat()</code> supplémentaire, ce qui n'est pas acceptable.
+    Il n'est pas garanti que ce module fonctionne avec des noms de
+    fichiers réécrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CacheFile /usr/local/apache/htdocs/index.html</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="mmapfile" id="mmapfile">Directive</a> <a name="MMapFile" id="MMapFile">MMapFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Charge au démarrage une liste de fichiers en mémoire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MMapFile <var>chemin fichier</var> [<var>chemin fichier</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
+</table>
+    <p>La directive <code class="directive">MMapFile</code> permet de charger un
+    ou plusieurs fichiers (séparés par des espaces) en mémoire au
+    démarrage du serveur. Ceux-ci sont automatiquement déchargés de la
+    mémoire à l'arrêt du serveur. Lorsqu'un ou plusieurs fichiers ont
+    été modifiés sur disque, on doit au minimum envoyer un signal
+    <code>HUP</code> ou <code>USR1</code> au serveur afin de les
+    re<code>mmap()</code>er.</p>
+
+    <p>Soyez prudent avec les arguments <var>chemin fichier</var> : ils
+    doivent correspondre exactement au chemin du système de fichier que
+    créent les gestionnaires de traduction URL-vers-nom-fichier
+    d'Apache. On ne peut pas comparer des inodes ou autres identifiants
+    pour mettre en correspondance des chemins à l'aide de liens
+    symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un
+    appel à <code>stat()</code> supplémentaire, ce qui n'est pas
+    acceptable.
+    Il n'est pas garanti que ce module fonctionne avec des noms de
+    fichiers réécrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="using" id="using">Utilisation de mod_file_cache</a></h2>
 
@@ -168,72 +234,6 @@ fichiers</td></tr>
         | sed -e 's/.*/mmapfile &amp;/' &gt; /www/conf/mmap.conf
       </code></p></div>
     </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="cachefile" id="cachefile">Directive</a> <a name="CacheFile" id="CacheFile">CacheFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en cache une liste de gestionnaires de fichiers au
-démarrage</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheFile <var>chemin fichier</var> [<var>chemin fichier</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
-</table>
-    <p>La directive <code class="directive">CacheFile</code> permet d'associer
-    des gestionnaires à un ou plusieurs fichiers (séparés par des
-    espaces), et de placer ceux-ci dans le cache au démarrage du
-    serveur. Les gestionnaires des fichiers mis en cache sont
-    automatiquement fermés à l'arrêt du serveur. Lorsqu'un ou plusieurs
-    fichiers ont été modifiés sur disque, le serveur doit être redémarré
-    afin que les modifications soient prises en compte par le cache.</p>
-
-    <p>Soyez prudent avec les arguments <var>chemin fichier</var> : ils
-    doivent correspondre exactement au chemin du système de fichier que
-    créent les gestionnaires de traduction URL-vers-nom-fichier
-    d'Apache. On ne peut pas comparer des inodes ou autres identifiants
-    pour mettre en correspondance des chemins à l'aide de liens
-    symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un
-    appel à <code>stat()</code> supplémentaire, ce qui n'est pas acceptable.
-    Il n'est pas garanti que ce module fonctionne avec des noms de
-    fichiers réécrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CacheFile /usr/local/apache/htdocs/index.html</pre>
-</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="mmapfile" id="mmapfile">Directive</a> <a name="MMapFile" id="MMapFile">MMapFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Charge au démarrage une liste de fichiers en mémoire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MMapFile <var>chemin fichier</var> [<var>chemin fichier</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_file_cache</td></tr>
-</table>
-    <p>La directive <code class="directive">MMapFile</code> permet de charger un
-    ou plusieurs fichiers (séparés par des espaces) en mémoire au
-    démarrage du serveur. Ceux-ci sont automatiquement déchargés de la
-    mémoire à l'arrêt du serveur. Lorsqu'un ou plusieurs fichiers ont
-    été modifiés sur disque, on doit au minimum envoyer un signal
-    <code>HUP</code> ou <code>USR1</code> au serveur afin de les
-    re<code>mmap()</code>er.</p>
-
-    <p>Soyez prudent avec les arguments <var>chemin fichier</var> : ils
-    doivent correspondre exactement au chemin du système de fichier que
-    créent les gestionnaires de traduction URL-vers-nom-fichier
-    d'Apache. On ne peut pas comparer des inodes ou autres identifiants
-    pour mettre en correspondance des chemins à l'aide de liens
-    symboliques <em>(etc...)</em>, car là encore, ceci nécessiterait un
-    appel à <code>stat()</code> supplémentaire, ce qui n'est pas
-    acceptable.
-    Il n'est pas garanti que ce module fonctionne avec des noms de
-    fichiers réécrits par <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> ou
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">MMapFile /usr/local/apache/htdocs/index.html</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 300804af3197ea5e2b111c357a56478bb92cead1..892a51308b9d61d69ce1f093b528cede2bbb85b4 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#using">mod_file_cache »ç¿ëÇϱâ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CacheFile" id="CacheFile">CacheFile</a> <a name="cachefile" id="cachefile">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>½ÃÀ۽à¿©·¯ ÆÄÀÏ ÇÚµéÀ» Ä³½¬ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>CacheFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_file_cache</td></tr>
+</table>
+    <p><code class="directive">CacheFile</code> Áö½Ã¾î´Â ¼­¹ö°¡ ½ÃÀÛÇÒ¶§
+    ¿©·¯ ÆÄÀÏÀ» ¿­°í(open) ÆÄÀϵéÀÇ ÇÚµéÀ» Ä³½¬¿¡ ÀúÀåÇÑ´Ù.
+    ¼­¹ö Á¾·á½Ã ÀÚµ¿À¸·Î Ä³½¬ÇÑ ÆÄÀÏÀÇ ÇÚµéÀ» ´Ý´Â´Ù(close).
+    ÆÄÀϽýºÅÛ¿¡¼­ ÆÄÀÏÀÌ º¯°æµÇ¸é ÆÄÀÏÀ» ´Ù½Ã Ä³½¬ÇϱâÀ§ÇØ
+    ¼­¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÑ´Ù.</p>
+
+    <p><var>file-path</var> ¾Æ±Ô¸ÕÆ®¸¦ Á¶½ÉÇØ¶ó. ¾Æ±Ô¸ÕÆ®´Â
+    ¾ÆÆÄÄ¡ÀÇ URL-ÆÄÀÏ¸í º¯È¯ Çڵ鷯°¡ ¸¸µç ÆÄÀϽýºÅÛ °æ·Î¿Í
+    Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Çѹø ´õ ºÒÇÊ¿äÇÑ <code>stat()</code>
+    ½Ã½ºÅÛÈ£ÃâÀÌ ÇÊ¿äÇϱ⶧¹®¿¡ inode³ª ½Éº¼¸µÅ© <em>µî</em>À»
+    °æ·Î¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ÀÌ ¸ðµâÀº <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>³ª
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>·Î ÀçÀÛ¼ºÇÑ ÆÄÀϸíÀ» ´Ù·ê ¼ö
+    Àֱ⵵ ¾ø±âµµ ÇÏ´Ù.</p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      CacheFile /usr/local/apache/htdocs/index.html
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="MMapFile" id="MMapFile">MMapFile</a> <a name="mmapfile" id="mmapfile">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>½ÃÀ۽à¿©·¯ ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡ ´ëÀÀÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>MMapFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_file_cache</td></tr>
+</table>
+    <p><code class="directive">MMapFile</code> Áö½Ã¾î´Â ¼­¹ö°¡ ½ÃÀÛÇÒ¶§
+    (°ø¹éÀ¸·Î ±¸ºÐÇÑ ¾Æ±Ô¸ÕÆ®·Î ÁöÁ¤ÇÑ) ¿©·¯ ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡
+    ´ëÀÀÇÑ´Ù(map). ¼­¹ö Á¾·á½Ã ÀÚµ¿À¸·Î ´ëÀÀÀ» Ç¬´Ù(unmap).
+    ÆÄÀϽýºÅÛ¿¡¼­ ÆÄÀÏÀÌ º¯°æµÇ¸é ÆÄÀϵéÀ» ´Ù½Ã
+    <code>mmap()</code>ÇϱâÀ§ÇØ ÃÖ¼ÒÇÑ ¼­¹ö¿¡ <code>HUP</code>À̳ª
+    <code>USR1</code> ½Ã±×³ÎÀ» º¸³»¾ß ÇÑ´Ù.</p>
+
+    <p><var>file-path</var> ¾Æ±Ô¸ÕÆ®¸¦ Á¶½ÉÇØ¶ó. ¾Æ±Ô¸ÕÆ®´Â
+    ¾ÆÆÄÄ¡ÀÇ URL-ÆÄÀÏ¸í º¯È¯ Çڵ鷯°¡ ¸¸µç ÆÄÀϽýºÅÛ °æ·Î¿Í
+    Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Çѹø ´õ ºÒÇÊ¿äÇÑ <code>stat()</code>
+    ½Ã½ºÅÛÈ£ÃâÀÌ ÇÊ¿äÇϱ⶧¹®¿¡ inode³ª ½Éº¼¸µÅ© <em>µî</em>À»
+    °æ·Î¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ÀÌ ¸ðµâÀº <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>³ª
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>·Î ÀçÀÛ¼ºÇÑ ÆÄÀϸíÀ» ´Ù·ê ¼ö
+    Àֱ⵵ ¾ø±âµµ ÇÏ´Ù.</p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      MMapFile /usr/local/apache/htdocs/index.html
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="using" id="using">mod_file_cache »ç¿ëÇϱâ</a></h2>
 
       </code></p></div>
     </div>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CacheFile" id="CacheFile">CacheFile</a> <a name="cachefile" id="cachefile">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>½ÃÀ۽à¿©·¯ ÆÄÀÏ ÇÚµéÀ» Ä³½¬ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>CacheFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_file_cache</td></tr>
-</table>
-    <p><code class="directive">CacheFile</code> Áö½Ã¾î´Â ¼­¹ö°¡ ½ÃÀÛÇÒ¶§
-    ¿©·¯ ÆÄÀÏÀ» ¿­°í(open) ÆÄÀϵéÀÇ ÇÚµéÀ» Ä³½¬¿¡ ÀúÀåÇÑ´Ù.
-    ¼­¹ö Á¾·á½Ã ÀÚµ¿À¸·Î Ä³½¬ÇÑ ÆÄÀÏÀÇ ÇÚµéÀ» ´Ý´Â´Ù(close).
-    ÆÄÀϽýºÅÛ¿¡¼­ ÆÄÀÏÀÌ º¯°æµÇ¸é ÆÄÀÏÀ» ´Ù½Ã Ä³½¬ÇϱâÀ§ÇØ
-    ¼­¹ö¸¦ Àç½ÃÀÛÇØ¾ß ÇÑ´Ù.</p>
-
-    <p><var>file-path</var> ¾Æ±Ô¸ÕÆ®¸¦ Á¶½ÉÇØ¶ó. ¾Æ±Ô¸ÕÆ®´Â
-    ¾ÆÆÄÄ¡ÀÇ URL-ÆÄÀÏ¸í º¯È¯ Çڵ鷯°¡ ¸¸µç ÆÄÀϽýºÅÛ °æ·Î¿Í
-    Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Çѹø ´õ ºÒÇÊ¿äÇÑ <code>stat()</code>
-    ½Ã½ºÅÛÈ£ÃâÀÌ ÇÊ¿äÇϱ⶧¹®¿¡ inode³ª ½Éº¼¸µÅ© <em>µî</em>À»
-    °æ·Î¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ÀÌ ¸ðµâÀº <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>³ª
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>·Î ÀçÀÛ¼ºÇÑ ÆÄÀϸíÀ» ´Ù·ê ¼ö
-    Àֱ⵵ ¾ø±âµµ ÇÏ´Ù.</p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      CacheFile /usr/local/apache/htdocs/index.html
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="MMapFile" id="MMapFile">MMapFile</a> <a name="mmapfile" id="mmapfile">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>½ÃÀ۽à¿©·¯ ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡ ´ëÀÀÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>MMapFile <var>file-path</var> [<var>file-path</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_file_cache</td></tr>
-</table>
-    <p><code class="directive">MMapFile</code> Áö½Ã¾î´Â ¼­¹ö°¡ ½ÃÀÛÇÒ¶§
-    (°ø¹éÀ¸·Î ±¸ºÐÇÑ ¾Æ±Ô¸ÕÆ®·Î ÁöÁ¤ÇÑ) ¿©·¯ ÆÄÀÏÀ» ¸Þ¸ð¸®¿¡
-    ´ëÀÀÇÑ´Ù(map). ¼­¹ö Á¾·á½Ã ÀÚµ¿À¸·Î ´ëÀÀÀ» Ç¬´Ù(unmap).
-    ÆÄÀϽýºÅÛ¿¡¼­ ÆÄÀÏÀÌ º¯°æµÇ¸é ÆÄÀϵéÀ» ´Ù½Ã
-    <code>mmap()</code>ÇϱâÀ§ÇØ ÃÖ¼ÒÇÑ ¼­¹ö¿¡ <code>HUP</code>À̳ª
-    <code>USR1</code> ½Ã±×³ÎÀ» º¸³»¾ß ÇÑ´Ù.</p>
-
-    <p><var>file-path</var> ¾Æ±Ô¸ÕÆ®¸¦ Á¶½ÉÇØ¶ó. ¾Æ±Ô¸ÕÆ®´Â
-    ¾ÆÆÄÄ¡ÀÇ URL-ÆÄÀÏ¸í º¯È¯ Çڵ鷯°¡ ¸¸µç ÆÄÀϽýºÅÛ °æ·Î¿Í
-    Á¤È®È÷ ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. Çѹø ´õ ºÒÇÊ¿äÇÑ <code>stat()</code>
-    ½Ã½ºÅÛÈ£ÃâÀÌ ÇÊ¿äÇϱ⶧¹®¿¡ inode³ª ½Éº¼¸µÅ© <em>µî</em>À»
-    °æ·Î¸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù. ÀÌ ¸ðµâÀº <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code>³ª
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>·Î ÀçÀÛ¼ºÇÑ ÆÄÀϸíÀ» ´Ù·ê ¼ö
-    Àֱ⵵ ¾ø±âµµ ÇÏ´Ù.</p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      MMapFile /usr/local/apache/htdocs/index.html
-    </code></p></div>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_file_cache.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index ba54748b99e8a53a61a27a7ba9627972f2062569..288058481932b2847737f9fc07dcf1ea038748f8 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#protocol">Protocol Handling</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="smart" id="smart">Smart Filtering</a></h2>
-    <p>In the traditional filtering model, filters are inserted unconditionally
-    using <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> and family.
-    Each filter then needs to determine whether to run, and there is little
-    flexibility available for server admins to allow the chain to be
-    configured dynamically.</p>
-
-    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> by contrast gives server administrators a
-    great deal of flexibility in configuring the filter chain.  In fact,
-    filters can be inserted based on complex boolean
-    <a href="../expr.html">expressions</a> This generalises the limited
-    flexibility offered by <code class="directive">AddOutputFilterByType</code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="terms" id="terms">Filter Declarations, Providers and Chains</a></h2>
-    <p class="figure">
-    <img src="../images/mod_filter_old.gif" width="160" height="310" alt="[This image displays the traditional filter model]" /><br />
-    <dfn>Figure 1:</dfn> The traditional filter model</p>
-
-    <p>In the traditional model, output filters are a simple chain
-    from the content generator (handler) to the client.  This works well
-    provided the filter chain can be correctly configured, but presents
-    problems when the filters need to be configured dynamically based on
-    the outcome of the handler.</p>
-
-    <p class="figure">
-    <img src="../images/mod_filter_new.gif" width="423" height="331" alt="[This image shows the mod_filter model]" /><br />
-    <dfn>Figure 2:</dfn> The <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> model</p>
-
-    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> works by introducing indirection into
-    the filter chain.  Instead of inserting filters in the chain, we insert
-    a filter harness which in turn dispatches conditionally
-    to a filter provider.  Any content filter may be used as a provider
-    to <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>; no change to existing filter modules
-    is required (although it may be possible to simplify them).  There can be
-    multiple providers for one filter, but no more than one provider will
-    run for any single request.</p>
-
-    <p>A filter chain comprises any number of instances of the filter
-    harness, each of which may have any number of providers.  A special
-    case is that of a single provider with unconditional dispatch: this
-    is equivalent to inserting the provider filter directly into the chain.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="config" id="config">Configuring the Chain</a></h2>
-    <p>There are three stages to configuring a filter chain with
-    <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. For details of the directives, see below.</p>
-
-    <dl>
-    <dt>Declare Filters</dt>
-    <dd>The <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> directive
-    declares a filter, assigning it a name and filter type.  Required
-    only if the filter is not the default type AP_FTYPE_RESOURCE.</dd>
-
-    <dt>Register Providers</dt>
-    <dd>The <code class="directive"><a href="#filterprovider">FilterProvider</a></code>
-    directive registers a provider with a filter. The filter may have
-    been declared with <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code>; if not, FilterProvider will implicitly
-    declare it with the default type AP_FTYPE_RESOURCE. The provider
-    must have been
-    registered with <code>ap_register_output_filter</code> by some module.
-    The final argument to <code class="directive"><a href="#filterprovider">FilterProvider</a></code> is an expression: the provider will be
-    selected to run for a request if and only if the expression evaluates
-    to true.  The expression may evaluate HTTP request or response
-    headers, environment variables, or the Handler used by this request.
-    Unlike earlier versions, mod_filter now supports complex expressions
-    involving multiple criteria with AND / OR logic (&amp;&amp; / ||)
-    and brackets. The details of the expression syntax are described in
-    the <a href="../expr.html">ap_expr documentation</a>.</dd>
-
-    <dt>Configure the Chain</dt>
-    <dd>The above directives build components of a smart filter chain,
-    but do not configure it to run.  The <code class="directive"><a href="#filterchain">FilterChain</a></code> directive builds a filter chain from smart
-    filters declared, offering the flexibility to insert filters at the
-    beginning or end of the chain, remove a filter, or clear the chain.</dd>
-</dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="errordocs" id="errordocs">Filtering and Response Status</a></h2>
-    <p>mod_filter normally only runs filters on responses with
-    HTTP status 200 (OK).  If you want to filter documents with
-    other response statuses, you can set the <var>filter-errordocs</var>
-    environment variable, and it will work on all responses
-    regardless of status.  To refine this further, you can use
-    expression conditions with <code class="directive">FilterProvider</code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="upgrade" id="upgrade">Upgrading from Apache HTTP Server 2.2 Configuration</a></h2>
-    <p>The <code class="directive"><a href="#filterprovider">FilterProvider</a></code>
-    directive has changed from httpd 2.2: the <var>match</var> and
-    <var>dispatch</var> arguments are replaced with a single but
-    more versatile <var>expression</var>.  In general, you can convert
-    a match/dispatch pair to the two sides of an expression, using
-    something like:</p>
-    <div class="example"><p><code>"dispatch = 'match'"</code></p></div>
-    <p>The Request headers, Response headers and Environment variables
-    are now interpreted from syntax <var>%{req:foo}</var>,
-    <var>%{resp:foo}</var> and <var>%{env:foo}</var> respectively.
-    The variables <var>%{HANDLER}</var> and <var>%{CONTENT_TYPE}</var>
-    are also supported.</p>
-    <p>Note that the match no longer support substring matches.  They can be
-    replaced by regular expression matches.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
-    <dl>
-    <dt>Server side Includes (SSI)</dt>
-    <dd>A simple case of replacing <code class="directive">AddOutputFilterByType</code>
-    <pre class="prettyprint lang-config">FilterDeclare SSI
-FilterProvider SSI INCLUDES "%{CONTENT_TYPE} =~ m|^text/html|"
-FilterChain SSI</pre>
-
-    </dd>
-
-    <dt>Server side Includes (SSI)</dt>
-    <dd>The same as the above but dispatching on handler (classic
-    SSI behaviour; .shtml files get processed).
-    <pre class="prettyprint lang-config">FilterProvider SSI INCLUDES "%{HANDLER} = 'server-parsed'"
-FilterChain SSI</pre>
-
-    </dd>
-
-    <dt>Emulating mod_gzip with mod_deflate</dt>
-    <dd>Insert INFLATE filter only if "gzip" is NOT in the
-    Accept-Encoding header.  This filter runs with ftype CONTENT_SET.
-    <pre class="prettyprint lang-config">FilterDeclare gzip CONTENT_SET
-FilterProvider gzip inflate "%{req:Accept-Encoding} !~ /gzip/"
-FilterChain gzip</pre>
-
-    </dd>
-
-    <dt>Image Downsampling</dt>
-    <dd>Suppose we want to downsample all web images, and have filters
-    for GIF, JPEG and PNG.
-    <pre class="prettyprint lang-config">FilterProvider unpack jpeg_unpack "%{CONTENT_TYPE} = 'image/jpeg'"
-FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'"
-FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'"
-
-FilterProvider downsample downsample_filter "%{CONTENT_TYPE} = m|^image/(jpeg|gif|png)|"
-FilterProtocol downsample "change=yes"
-
-FilterProvider repack jpeg_pack "%{CONTENT_TYPE} = 'image/jpeg'"
-FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'"
-FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'"
-&lt;Location "/image-filter"&gt;
-    FilterChain unpack downsample repack
-&lt;/Location&gt;</pre>
-
-    </dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="protocol" id="protocol">Protocol Handling</a></h2>
-    <p>Historically, each filter is responsible for ensuring that whatever
-    changes it makes are correctly represented in the HTTP response headers,
-    and that it does not run when it would make an illegal change.  This
-    imposes a burden on filter authors to re-implement some common
-    functionality in every filter:</p>
-
-    <ul>
-    <li>Many filters will change the content, invalidating existing content
-    tags, checksums, hashes, and lengths.</li>
-
-    <li>Filters that require an entire, unbroken response in input need to
-    ensure they don't get byteranges from a backend.</li>
-
-    <li>Filters that transform output in a filter need to ensure they don't
-    violate a <code>Cache-Control: no-transform</code> header from the
-    backend.</li>
-
-    <li>Filters may make responses uncacheable.</li>
-    </ul>
-
-    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> aims to offer generic handling of these
-    details of filter implementation, reducing the complexity required of
-    content filter modules. This is work-in-progress; the
-    <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code> implements
-    some of this functionality for back-compatibility with Apache 2.0
-    modules.  For httpd 2.1 and later, the
-    <code>ap_register_output_filter_protocol</code> and
-    <code>ap_filter_protocol</code> API enables filter modules to
-    declare their own behaviour.</p>
-
-    <p>At the same time, <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> should not interfere
-    with a filter that wants to handle all aspects of the protocol.  By
-    default (i.e. in the absence of any <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code> directives), <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>
-    will leave the headers untouched.</p>
-
-    <p>At the time of writing, this feature is largely untested,
-    as modules in common use are designed to work with 2.0.
-    Modules using it should test it carefully.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddOutputFilterByType" id="AddOutputFilterByType">AddOutputFilterByType</a> <a name="addoutputfilterbytype" id="addoutputfilterbytype">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>assigns an output filter to a particular media-type</td></tr>
@@ -490,6 +296,200 @@ for a complete reference and examples.</li>
     </dl>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="smart" id="smart">Smart Filtering</a></h2>
+    <p>In the traditional filtering model, filters are inserted unconditionally
+    using <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> and family.
+    Each filter then needs to determine whether to run, and there is little
+    flexibility available for server admins to allow the chain to be
+    configured dynamically.</p>
+
+    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> by contrast gives server administrators a
+    great deal of flexibility in configuring the filter chain.  In fact,
+    filters can be inserted based on complex boolean
+    <a href="../expr.html">expressions</a> This generalises the limited
+    flexibility offered by <code class="directive">AddOutputFilterByType</code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="terms" id="terms">Filter Declarations, Providers and Chains</a></h2>
+    <p class="figure">
+    <img src="../images/mod_filter_old.gif" width="160" height="310" alt="[This image displays the traditional filter model]" /><br />
+    <dfn>Figure 1:</dfn> The traditional filter model</p>
+
+    <p>In the traditional model, output filters are a simple chain
+    from the content generator (handler) to the client.  This works well
+    provided the filter chain can be correctly configured, but presents
+    problems when the filters need to be configured dynamically based on
+    the outcome of the handler.</p>
+
+    <p class="figure">
+    <img src="../images/mod_filter_new.gif" width="423" height="331" alt="[This image shows the mod_filter model]" /><br />
+    <dfn>Figure 2:</dfn> The <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> model</p>
+
+    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> works by introducing indirection into
+    the filter chain.  Instead of inserting filters in the chain, we insert
+    a filter harness which in turn dispatches conditionally
+    to a filter provider.  Any content filter may be used as a provider
+    to <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>; no change to existing filter modules
+    is required (although it may be possible to simplify them).  There can be
+    multiple providers for one filter, but no more than one provider will
+    run for any single request.</p>
+
+    <p>A filter chain comprises any number of instances of the filter
+    harness, each of which may have any number of providers.  A special
+    case is that of a single provider with unconditional dispatch: this
+    is equivalent to inserting the provider filter directly into the chain.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="config" id="config">Configuring the Chain</a></h2>
+    <p>There are three stages to configuring a filter chain with
+    <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. For details of the directives, see below.</p>
+
+    <dl>
+    <dt>Declare Filters</dt>
+    <dd>The <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> directive
+    declares a filter, assigning it a name and filter type.  Required
+    only if the filter is not the default type AP_FTYPE_RESOURCE.</dd>
+
+    <dt>Register Providers</dt>
+    <dd>The <code class="directive"><a href="#filterprovider">FilterProvider</a></code>
+    directive registers a provider with a filter. The filter may have
+    been declared with <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code>; if not, FilterProvider will implicitly
+    declare it with the default type AP_FTYPE_RESOURCE. The provider
+    must have been
+    registered with <code>ap_register_output_filter</code> by some module.
+    The final argument to <code class="directive"><a href="#filterprovider">FilterProvider</a></code> is an expression: the provider will be
+    selected to run for a request if and only if the expression evaluates
+    to true.  The expression may evaluate HTTP request or response
+    headers, environment variables, or the Handler used by this request.
+    Unlike earlier versions, mod_filter now supports complex expressions
+    involving multiple criteria with AND / OR logic (&amp;&amp; / ||)
+    and brackets. The details of the expression syntax are described in
+    the <a href="../expr.html">ap_expr documentation</a>.</dd>
+
+    <dt>Configure the Chain</dt>
+    <dd>The above directives build components of a smart filter chain,
+    but do not configure it to run.  The <code class="directive"><a href="#filterchain">FilterChain</a></code> directive builds a filter chain from smart
+    filters declared, offering the flexibility to insert filters at the
+    beginning or end of the chain, remove a filter, or clear the chain.</dd>
+</dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="errordocs" id="errordocs">Filtering and Response Status</a></h2>
+    <p>mod_filter normally only runs filters on responses with
+    HTTP status 200 (OK).  If you want to filter documents with
+    other response statuses, you can set the <var>filter-errordocs</var>
+    environment variable, and it will work on all responses
+    regardless of status.  To refine this further, you can use
+    expression conditions with <code class="directive">FilterProvider</code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="upgrade" id="upgrade">Upgrading from Apache HTTP Server 2.2 Configuration</a></h2>
+    <p>The <code class="directive"><a href="#filterprovider">FilterProvider</a></code>
+    directive has changed from httpd 2.2: the <var>match</var> and
+    <var>dispatch</var> arguments are replaced with a single but
+    more versatile <var>expression</var>.  In general, you can convert
+    a match/dispatch pair to the two sides of an expression, using
+    something like:</p>
+    <div class="example"><p><code>"dispatch = 'match'"</code></p></div>
+    <p>The Request headers, Response headers and Environment variables
+    are now interpreted from syntax <var>%{req:foo}</var>,
+    <var>%{resp:foo}</var> and <var>%{env:foo}</var> respectively.
+    The variables <var>%{HANDLER}</var> and <var>%{CONTENT_TYPE}</var>
+    are also supported.</p>
+    <p>Note that the match no longer support substring matches.  They can be
+    replaced by regular expression matches.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+    <dl>
+    <dt>Server side Includes (SSI)</dt>
+    <dd>A simple case of replacing <code class="directive">AddOutputFilterByType</code>
+    <pre class="prettyprint lang-config">FilterDeclare SSI
+FilterProvider SSI INCLUDES "%{CONTENT_TYPE} =~ m|^text/html|"
+FilterChain SSI</pre>
+
+    </dd>
+
+    <dt>Server side Includes (SSI)</dt>
+    <dd>The same as the above but dispatching on handler (classic
+    SSI behaviour; .shtml files get processed).
+    <pre class="prettyprint lang-config">FilterProvider SSI INCLUDES "%{HANDLER} = 'server-parsed'"
+FilterChain SSI</pre>
+
+    </dd>
+
+    <dt>Emulating mod_gzip with mod_deflate</dt>
+    <dd>Insert INFLATE filter only if "gzip" is NOT in the
+    Accept-Encoding header.  This filter runs with ftype CONTENT_SET.
+    <pre class="prettyprint lang-config">FilterDeclare gzip CONTENT_SET
+FilterProvider gzip inflate "%{req:Accept-Encoding} !~ /gzip/"
+FilterChain gzip</pre>
+
+    </dd>
+
+    <dt>Image Downsampling</dt>
+    <dd>Suppose we want to downsample all web images, and have filters
+    for GIF, JPEG and PNG.
+    <pre class="prettyprint lang-config">FilterProvider unpack jpeg_unpack "%{CONTENT_TYPE} = 'image/jpeg'"
+FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'"
+FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'"
+
+FilterProvider downsample downsample_filter "%{CONTENT_TYPE} = m|^image/(jpeg|gif|png)|"
+FilterProtocol downsample "change=yes"
+
+FilterProvider repack jpeg_pack "%{CONTENT_TYPE} = 'image/jpeg'"
+FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'"
+FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'"
+&lt;Location "/image-filter"&gt;
+    FilterChain unpack downsample repack
+&lt;/Location&gt;</pre>
+
+    </dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="protocol" id="protocol">Protocol Handling</a></h2>
+    <p>Historically, each filter is responsible for ensuring that whatever
+    changes it makes are correctly represented in the HTTP response headers,
+    and that it does not run when it would make an illegal change.  This
+    imposes a burden on filter authors to re-implement some common
+    functionality in every filter:</p>
+
+    <ul>
+    <li>Many filters will change the content, invalidating existing content
+    tags, checksums, hashes, and lengths.</li>
+
+    <li>Filters that require an entire, unbroken response in input need to
+    ensure they don't get byteranges from a backend.</li>
+
+    <li>Filters that transform output in a filter need to ensure they don't
+    violate a <code>Cache-Control: no-transform</code> header from the
+    backend.</li>
+
+    <li>Filters may make responses uncacheable.</li>
+    </ul>
+
+    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> aims to offer generic handling of these
+    details of filter implementation, reducing the complexity required of
+    content filter modules. This is work-in-progress; the
+    <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code> implements
+    some of this functionality for back-compatibility with Apache 2.0
+    modules.  For httpd 2.1 and later, the
+    <code>ap_register_output_filter_protocol</code> and
+    <code>ap_filter_protocol</code> API enables filter modules to
+    declare their own behaviour.</p>
+
+    <p>At the same time, <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> should not interfere
+    with a filter that wants to handle all aspects of the protocol.  By
+    default (i.e. in the absence of any <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code> directives), <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>
+    will leave the headers untouched.</p>
+
+    <p>At the time of writing, this feature is largely untested,
+    as modules in common use are designed to work with 2.0.
+    Modules using it should test it carefully.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_filter.html" title="English">&nbsp;en&nbsp;</a> |
index b6af2d1bdff6bd40a72fbb53f783b53265aa7472..771b22418eca3483ad79c3586bcde04d3987bc5b 100644 (file)
@@ -75,230 +75,6 @@ serveur HTTP Apache 2.2</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#protocol">Gestion de protocole</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="smart" id="smart">Filtrage intelligent</a></h2>
-    <p>Dans le modèle de filtrage traditionnel, les filtres sont insérés
-    sans condition à l'aide de la directive <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> et des directives
-    apparentées. Chaque filtre doit ensuite déterminer s'il doit
-    s'exécuter ou non, et les administrateurs du serveur disposent de
-    peu de souplesse pour faire en sorte que la chaîne soit traitée de
-    manière dynamique.</p>
-
-    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>, à l'opposé, fournit aux
-    administrateurs du serveur un grand degré de souplesse pour
-    configurer la chaîne de filtrage. Concrètement, la décision
-    d'insérer un filtre peut être prise en fonction d'une <a href="../expr.html">expression</a> booléenne complexe. Ceci
-    généralise le fonctionnement relativement souple de la directive
-    <code class="directive">AddOutputFilterByType</code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="terms" id="terms">Déclarations de filtres, fournisseurs et
-chaînes</a></h2>
-    <p class="figure">
-    <img src="../images/mod_filter_old.gif" width="160" height="310" alt="[Cette image illustre le modèle de filtrage traditionnel]" /><br />
-    <dfn>Figure 1:</dfn> Le modèle de filtrage traditionnel</p>
-
-    <p>Dans le modèle traditionnel, les filtres en sortie constituent
-    une simple chaîne s'étendant depuis le générateur de contenu (ou
-    gestionnaire) jusqu'au client. Ce fonctionnement peut convenir s'il
-    permet d'atteindre le but recherché, mais pose
-    problème lorsque cette chaîne doit être configurée dynamiquement en
-    fonction de la sortie du gestionnaire.</p>
-
-    <p class="figure">
-    <img src="../images/mod_filter_new.gif" width="423" height="331" alt="[Cette image illustre le modèle de fonctionnement de     mod_filter]" /><br />
-    <dfn>Figure 2:</dfn> Le modèle de fonctionnement de
-    <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></p>
-
-    <p>Le fonctionnement de <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> consiste à
-    introduire des branchements dans la chaîne de filtrage. Plutôt que
-    d'insérer directement des filtres dans la chaîne, on insère un
-    sélecteur de filtre qui va effectuer un branchement conditionnel
-    vers un fournisseur de filtre. <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> peut
-    utiliser tout filtre de contenu comme fournisseur ; aucune
-    modification des modules de filtrage existants n'est nécessaire
-    (bien qu'il soit tout de même possible de les simplifier). Il peut y
-    avoir plusieurs fournisseurs pour un seul filtre, mais un seul
-    fournisseur sera choisi pour chaque requête.</p>
-
-    <p>Une chaîne de filtrage peut comporter autant d'instances du
-    sélecteur de filtre que l'on souhaite, chacune d'entre elles pouvant
-    disposer de plusieurs fournisseurs. Un sélecteur de filtre possédant
-    un seul fournisseur dont le choix est inconditionnel constitue un
-    cas particulier : cette situation est équivalente à l'insertion
-    directe du filtre dans la chaîne.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="config" id="config">Configuration de la chaîne de
-filtrage</a></h2>
-    <p>Trois étapes sont nécessaires pour configurer une chaîne de
-    filtrage avec <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. Voir ci-dessous la
-    description détaillée des directives.</p>
-
-    <dl>
-    <dt>Déclaration des filtres</dt>
-    <dd>La directive <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> permet de déclarer un
-    filtre en lui assignant un nom et un type. Elle n'est obligatoire
-    que si le filtre n'est pas du type par défaut
-    AP_FTYPE_RESOURCE.</dd>
-
-    <dt>Enregistrement des fournisseurs</dt>
-    <dd>La directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> permet d'associer un
-    fournisseur à un filtre. Le filtre a été éventuellement déclaré à
-    l'aide de la directive <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> ; si ce n'est pas le cas, FilterProvider
-    va le déclarer implicitement avec le type par défaut
-    AP_FTYPE_RESOURCE. Le fournisseur doit avoir été enregistré à
-    l'aide de <code>ap_register_output_filter</code> par un module
-    quelconque. Le dernier argument de la directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> est une expression :
-    le fournisseur s'exécutera pour une requête si et seulement si
-    l'expression est évaluée vraie. L'expression peut évaluer une
-    requête HTTP ou les en-têtes de la réponse, des variables
-    d'environnement, ou le gestionnaire utilisé par cette requête. À la
-    différence des version précédentes, mod_filter supporte désormais
-    les expressions complexes associant des critères multiples au moyen
-    d'une logique AND / OR (&amp;&amp; / ||) et de parenthèses. Pour les
-    détails sur la syntaxe de l'expression, voir la <a href="../expr.html">documentation sur ap_expr</a>.</dd>
-
-    <dt>Configuration de la chaîne de filtrage</dt>
-    <dd>Les directives ci-dessus permettent d'élaborer les éléments
-    d'une chaîne de filtrage intelligente, mais pas de les configurer en
-    vue de leur exécution. La directive <code class="directive"><a href="#filterchain">FilterChain</a></code> élabore une chaîne de filtrage à
-    partir de filtres intelligents déclarés, permettant avec souplesse
-    d'insérer des filtres au début ou à la fin de la chaîne, de
-    supprimer un filtre ou même la chaîne complète.</dd>
-</dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="errordocs" id="errordocs">Filtrage et statut de la réponse</a></h2>
-    <p>Normalement, mod_filter n'applique les filtres qu'aux réponses
-    possédant un statut HTTP 200 (OK). Pour pouvoir filtrer des
-    documents possédant un autre statut, vous devez définir la variable
-    d'environnement <var>filter-errordocs</var>, les réponses étant
-    alors filtrées sans se préoccuper de leur statut. Pour définir ce
-    comportement de manière plus fine, vous pouvez utiliser des
-    conditions dans la directive
-    <code class="directive">FilterProvider</code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="upgrade" id="upgrade">Mise à jour depuis une configuration du
-serveur HTTP Apache 2.2</a></h2>
-    <p>La directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> a été modifiée par
-    rapport à httpd 2.2 : les arguments <var>match</var> et
-    <var>dispatch</var> ont été remplacés par l'argument unique
-    <var>expression</var> plus polyvalent. En général, il est possible
-    de convertir une paire match/dispatch vers les deux côtés d'une
-    expression, de la manière suivante :</p>
-    <div class="example"><p><code>"dispatch = 'match'"</code></p></div>
-    <p>Les en-têtes de requête et de réponse et les variables
-    d'environnement sont maintenant interprétés selon les syntaxes
-    respectives <var>%{req:foo}</var>, <var>%{resp:foo}</var> et
-    <var>%{env:foo}</var>. Les variables <var>%{HANDLER}</var> et
-    <var>%{CONTENT_TYPE}</var> sont également supportées.</p>
-    <p>Notez que l'évaluation de l'expression ne supporte plus les
-    comparaisons de sous-chaînes. Ces dernières peuvent
-    être remplacées par des comparaisons d'expressions rationnelles.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-    <dl>
-    <dt>Inclusions côté serveur (SSI)</dt>
-    <dd>Un exemple simple de remplacement de la directive <code class="directive"><a href="../mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code>
-    <pre class="prettyprint lang-config">FilterDeclare SSI
-FilterProvider SSI INCLUDES "%{CONTENT_TYPE} =~ m|^text/html|"
-FilterChain SSI</pre>
-
-    </dd>
-
-    <dt>Inclusions côté serveur (SSI)</dt>
-    <dd>Même exemple que ci-dessus, mais envoi vers un gestionnaire
-    (comportement classique des SSI ; les fichiers .shtml sont
-    traités).
-    <pre class="prettyprint lang-config">FilterProvider SSI INCLUDES "%{HANDLER} = 'server-parsed'"
-FilterChain SSI</pre>
-
-    </dd>
-
-    <dt>Émulation de mod_gzip avec mod_deflate</dt>
-    <dd>Insertion du filtre INFLATE seulement si l'en-tête
-    Accept-Encoding a une valeur autre que "gzip". Ce filtre s'exécute
-    avec le type ftype CONTENT_SET.
-    <pre class="prettyprint lang-config">FilterDeclare gzip CONTENT_SET
-FilterProvider gzip inflate "%{req:Accept-Encoding} !~ /gzip/"
-FilterChain gzip</pre>
-
-    </dd>
-
-    <dt>Diminution de la résolution d'une image</dt>
-    <dd>Supposons que nous voulions réduire la résolution de toutes les
-    images web, et que nous disposions de filtres pour les images GIF,
-    JPEG et PNG.
-    <pre class="prettyprint lang-config">FilterProvider unpack jpeg_unpack "%{CONTENT_TYPE} = 'image/jpeg'"
-FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'"
-FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'"
-
-FilterProvider downsample downsample_filter "%{CONTENT_TYPE} = m|^image/(jpeg|gif|png)|"
-FilterProtocol downsample "change=yes"
-
-FilterProvider repack jpeg_pack "%{CONTENT_TYPE} = 'image/jpeg'"
-FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'"
-FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'"
-&lt;Location /image-filter&gt;
-    FilterChain unpack downsample repack
-&lt;/Location&gt;</pre>
-
-    </dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="protocol" id="protocol">Gestion de protocole</a></h2>
-    <p>Historiquement, tout filtre doit s'assurer que toute modification
-    qu'il effectue est correctement représentée dans les en-têtes de la
-    réponse HTTP, et qu'il ne s'exécutera pas si cette exécution
-    résultait en une modification interdite. Ceci impose aux auteurs de
-    filtres la corvée de réimplémenter certaines fonctionnalités
-    communes dans chaque filtre :</p>
-
-    <ul>
-    <li>De nombreux filtres modifient les contenus, et de ce fait
-    invalident les balises de ces contenus, leur somme de
-    contrôle, leur condensé (hash) existant, ainsi que leur
-    taille.</li>
-
-    <li>Les filtres qui nécessitent une réponse entière et non tronquée en
-    entrée, doivent s'assurer qu'il n'ont pas reçu une réponse à une
-    requête partielle.</li>
-
-    <li>Les filtres qui modifient la sortie d'un autre filtre doivent
-    s'assurer qu'ils ne violent pas la directive d'un en-tête
-    <code>Cache-Control: no-transform</code> éventuel.</li>
-
-    <li>Les filtres peuvent agir sur des réponses de façon à ce qu'elles
-    ne puissent plus être mises en cache.</li>
-    </ul>
-
-    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> a pour but de gérer de manière
-    générale ces détails de l'implémentation des filtres, réduisant par
-    là-même la complexité des modules de filtrage de contenu. Le
-    travail permettant d'atteindre ce but est cependant toujours en
-    cours ; la directive <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>
-    implémente certaines de ces fonctionnalités à des fins de
-    compatibilité ascendante avec les modules d'Apache 2.0. Pour les
-    versions 2.1 et supérieures de httpd, les API
-    <code>ap_register_output_filter_protocol</code> et
-    <code>ap_filter_protocol</code> permettent aux modules de filtrage
-    de définir leurs propres comportements.</p>
-
-    <p>Cependant, <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> ne doit pas interférer
-    avec un filtre qui gère déjà tous les aspects du protocole. Par
-    défaut (c'est à dire en l'absence de toute directive <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>),
-    <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> ne modifiera donc pas les en-têtes.</p>
-
-    <p>Au moment où ces lignes sont écrites, cette fonctionnalité a été
-    très peu testée, car les modules d'usage courant ont été conçus pour
-    fonctionner avec httpd 2.0. Les modules qui l'utilisent devront donc
-    l'expérimenter avec précautions.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="addoutputfilterbytype" id="addoutputfilterbytype">Directive</a> <a name="AddOutputFilterByType" id="AddOutputFilterByType">AddOutputFilterByType</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>assigne un filtre en sortie pour un type de média
@@ -536,6 +312,230 @@ provenance de <code class="module"><a href="../mod/mod_filter.html">mod_filter</
     </dl>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="smart" id="smart">Filtrage intelligent</a></h2>
+    <p>Dans le modèle de filtrage traditionnel, les filtres sont insérés
+    sans condition à l'aide de la directive <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> et des directives
+    apparentées. Chaque filtre doit ensuite déterminer s'il doit
+    s'exécuter ou non, et les administrateurs du serveur disposent de
+    peu de souplesse pour faire en sorte que la chaîne soit traitée de
+    manière dynamique.</p>
+
+    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>, à l'opposé, fournit aux
+    administrateurs du serveur un grand degré de souplesse pour
+    configurer la chaîne de filtrage. Concrètement, la décision
+    d'insérer un filtre peut être prise en fonction d'une <a href="../expr.html">expression</a> booléenne complexe. Ceci
+    généralise le fonctionnement relativement souple de la directive
+    <code class="directive">AddOutputFilterByType</code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="terms" id="terms">Déclarations de filtres, fournisseurs et
+chaînes</a></h2>
+    <p class="figure">
+    <img src="../images/mod_filter_old.gif" width="160" height="310" alt="[Cette image illustre le modèle de filtrage traditionnel]" /><br />
+    <dfn>Figure 1:</dfn> Le modèle de filtrage traditionnel</p>
+
+    <p>Dans le modèle traditionnel, les filtres en sortie constituent
+    une simple chaîne s'étendant depuis le générateur de contenu (ou
+    gestionnaire) jusqu'au client. Ce fonctionnement peut convenir s'il
+    permet d'atteindre le but recherché, mais pose
+    problème lorsque cette chaîne doit être configurée dynamiquement en
+    fonction de la sortie du gestionnaire.</p>
+
+    <p class="figure">
+    <img src="../images/mod_filter_new.gif" width="423" height="331" alt="[Cette image illustre le modèle de fonctionnement de     mod_filter]" /><br />
+    <dfn>Figure 2:</dfn> Le modèle de fonctionnement de
+    <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></p>
+
+    <p>Le fonctionnement de <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> consiste à
+    introduire des branchements dans la chaîne de filtrage. Plutôt que
+    d'insérer directement des filtres dans la chaîne, on insère un
+    sélecteur de filtre qui va effectuer un branchement conditionnel
+    vers un fournisseur de filtre. <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> peut
+    utiliser tout filtre de contenu comme fournisseur ; aucune
+    modification des modules de filtrage existants n'est nécessaire
+    (bien qu'il soit tout de même possible de les simplifier). Il peut y
+    avoir plusieurs fournisseurs pour un seul filtre, mais un seul
+    fournisseur sera choisi pour chaque requête.</p>
+
+    <p>Une chaîne de filtrage peut comporter autant d'instances du
+    sélecteur de filtre que l'on souhaite, chacune d'entre elles pouvant
+    disposer de plusieurs fournisseurs. Un sélecteur de filtre possédant
+    un seul fournisseur dont le choix est inconditionnel constitue un
+    cas particulier : cette situation est équivalente à l'insertion
+    directe du filtre dans la chaîne.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="config" id="config">Configuration de la chaîne de
+filtrage</a></h2>
+    <p>Trois étapes sont nécessaires pour configurer une chaîne de
+    filtrage avec <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code>. Voir ci-dessous la
+    description détaillée des directives.</p>
+
+    <dl>
+    <dt>Déclaration des filtres</dt>
+    <dd>La directive <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> permet de déclarer un
+    filtre en lui assignant un nom et un type. Elle n'est obligatoire
+    que si le filtre n'est pas du type par défaut
+    AP_FTYPE_RESOURCE.</dd>
+
+    <dt>Enregistrement des fournisseurs</dt>
+    <dd>La directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> permet d'associer un
+    fournisseur à un filtre. Le filtre a été éventuellement déclaré à
+    l'aide de la directive <code class="directive"><a href="#filterdeclare">FilterDeclare</a></code> ; si ce n'est pas le cas, FilterProvider
+    va le déclarer implicitement avec le type par défaut
+    AP_FTYPE_RESOURCE. Le fournisseur doit avoir été enregistré à
+    l'aide de <code>ap_register_output_filter</code> par un module
+    quelconque. Le dernier argument de la directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> est une expression :
+    le fournisseur s'exécutera pour une requête si et seulement si
+    l'expression est évaluée vraie. L'expression peut évaluer une
+    requête HTTP ou les en-têtes de la réponse, des variables
+    d'environnement, ou le gestionnaire utilisé par cette requête. À la
+    différence des version précédentes, mod_filter supporte désormais
+    les expressions complexes associant des critères multiples au moyen
+    d'une logique AND / OR (&amp;&amp; / ||) et de parenthèses. Pour les
+    détails sur la syntaxe de l'expression, voir la <a href="../expr.html">documentation sur ap_expr</a>.</dd>
+
+    <dt>Configuration de la chaîne de filtrage</dt>
+    <dd>Les directives ci-dessus permettent d'élaborer les éléments
+    d'une chaîne de filtrage intelligente, mais pas de les configurer en
+    vue de leur exécution. La directive <code class="directive"><a href="#filterchain">FilterChain</a></code> élabore une chaîne de filtrage à
+    partir de filtres intelligents déclarés, permettant avec souplesse
+    d'insérer des filtres au début ou à la fin de la chaîne, de
+    supprimer un filtre ou même la chaîne complète.</dd>
+</dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="errordocs" id="errordocs">Filtrage et statut de la réponse</a></h2>
+    <p>Normalement, mod_filter n'applique les filtres qu'aux réponses
+    possédant un statut HTTP 200 (OK). Pour pouvoir filtrer des
+    documents possédant un autre statut, vous devez définir la variable
+    d'environnement <var>filter-errordocs</var>, les réponses étant
+    alors filtrées sans se préoccuper de leur statut. Pour définir ce
+    comportement de manière plus fine, vous pouvez utiliser des
+    conditions dans la directive
+    <code class="directive">FilterProvider</code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="upgrade" id="upgrade">Mise à jour depuis une configuration du
+serveur HTTP Apache 2.2</a></h2>
+    <p>La directive <code class="directive"><a href="#filterprovider">FilterProvider</a></code> a été modifiée par
+    rapport à httpd 2.2 : les arguments <var>match</var> et
+    <var>dispatch</var> ont été remplacés par l'argument unique
+    <var>expression</var> plus polyvalent. En général, il est possible
+    de convertir une paire match/dispatch vers les deux côtés d'une
+    expression, de la manière suivante :</p>
+    <div class="example"><p><code>"dispatch = 'match'"</code></p></div>
+    <p>Les en-têtes de requête et de réponse et les variables
+    d'environnement sont maintenant interprétés selon les syntaxes
+    respectives <var>%{req:foo}</var>, <var>%{resp:foo}</var> et
+    <var>%{env:foo}</var>. Les variables <var>%{HANDLER}</var> et
+    <var>%{CONTENT_TYPE}</var> sont également supportées.</p>
+    <p>Notez que l'évaluation de l'expression ne supporte plus les
+    comparaisons de sous-chaînes. Ces dernières peuvent
+    être remplacées par des comparaisons d'expressions rationnelles.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
+    <dl>
+    <dt>Inclusions côté serveur (SSI)</dt>
+    <dd>Un exemple simple de remplacement de la directive <code class="directive"><a href="../mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code>
+    <pre class="prettyprint lang-config">FilterDeclare SSI
+FilterProvider SSI INCLUDES "%{CONTENT_TYPE} =~ m|^text/html|"
+FilterChain SSI</pre>
+
+    </dd>
+
+    <dt>Inclusions côté serveur (SSI)</dt>
+    <dd>Même exemple que ci-dessus, mais envoi vers un gestionnaire
+    (comportement classique des SSI ; les fichiers .shtml sont
+    traités).
+    <pre class="prettyprint lang-config">FilterProvider SSI INCLUDES "%{HANDLER} = 'server-parsed'"
+FilterChain SSI</pre>
+
+    </dd>
+
+    <dt>Émulation de mod_gzip avec mod_deflate</dt>
+    <dd>Insertion du filtre INFLATE seulement si l'en-tête
+    Accept-Encoding a une valeur autre que "gzip". Ce filtre s'exécute
+    avec le type ftype CONTENT_SET.
+    <pre class="prettyprint lang-config">FilterDeclare gzip CONTENT_SET
+FilterProvider gzip inflate "%{req:Accept-Encoding} !~ /gzip/"
+FilterChain gzip</pre>
+
+    </dd>
+
+    <dt>Diminution de la résolution d'une image</dt>
+    <dd>Supposons que nous voulions réduire la résolution de toutes les
+    images web, et que nous disposions de filtres pour les images GIF,
+    JPEG et PNG.
+    <pre class="prettyprint lang-config">FilterProvider unpack jpeg_unpack "%{CONTENT_TYPE} = 'image/jpeg'"
+FilterProvider unpack gif_unpack "%{CONTENT_TYPE} = 'image/gif'"
+FilterProvider unpack png_unpack "%{CONTENT_TYPE} = 'image/png'"
+
+FilterProvider downsample downsample_filter "%{CONTENT_TYPE} = m|^image/(jpeg|gif|png)|"
+FilterProtocol downsample "change=yes"
+
+FilterProvider repack jpeg_pack "%{CONTENT_TYPE} = 'image/jpeg'"
+FilterProvider repack gif_pack "%{CONTENT_TYPE} = 'image/gif'"
+FilterProvider repack png_pack "%{CONTENT_TYPE} = 'image/png'"
+&lt;Location /image-filter&gt;
+    FilterChain unpack downsample repack
+&lt;/Location&gt;</pre>
+
+    </dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="protocol" id="protocol">Gestion de protocole</a></h2>
+    <p>Historiquement, tout filtre doit s'assurer que toute modification
+    qu'il effectue est correctement représentée dans les en-têtes de la
+    réponse HTTP, et qu'il ne s'exécutera pas si cette exécution
+    résultait en une modification interdite. Ceci impose aux auteurs de
+    filtres la corvée de réimplémenter certaines fonctionnalités
+    communes dans chaque filtre :</p>
+
+    <ul>
+    <li>De nombreux filtres modifient les contenus, et de ce fait
+    invalident les balises de ces contenus, leur somme de
+    contrôle, leur condensé (hash) existant, ainsi que leur
+    taille.</li>
+
+    <li>Les filtres qui nécessitent une réponse entière et non tronquée en
+    entrée, doivent s'assurer qu'il n'ont pas reçu une réponse à une
+    requête partielle.</li>
+
+    <li>Les filtres qui modifient la sortie d'un autre filtre doivent
+    s'assurer qu'ils ne violent pas la directive d'un en-tête
+    <code>Cache-Control: no-transform</code> éventuel.</li>
+
+    <li>Les filtres peuvent agir sur des réponses de façon à ce qu'elles
+    ne puissent plus être mises en cache.</li>
+    </ul>
+
+    <p><code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> a pour but de gérer de manière
+    générale ces détails de l'implémentation des filtres, réduisant par
+    là-même la complexité des modules de filtrage de contenu. Le
+    travail permettant d'atteindre ce but est cependant toujours en
+    cours ; la directive <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>
+    implémente certaines de ces fonctionnalités à des fins de
+    compatibilité ascendante avec les modules d'Apache 2.0. Pour les
+    versions 2.1 et supérieures de httpd, les API
+    <code>ap_register_output_filter_protocol</code> et
+    <code>ap_filter_protocol</code> permettent aux modules de filtrage
+    de définir leurs propres comportements.</p>
+
+    <p>Cependant, <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> ne doit pas interférer
+    avec un filtre qui gère déjà tous les aspects du protocole. Par
+    défaut (c'est à dire en l'absence de toute directive <code class="directive"><a href="#filterprotocol">FilterProtocol</a></code>),
+    <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code> ne modifiera donc pas les en-têtes.</p>
+
+    <p>Au moment où ces lignes sont écrites, cette fonctionnalité a été
+    très peu testée, car les modules d'usage courant ont été conçus pour
+    fonctionner avec httpd 2.0. Les modules qui l'utilisent devront donc
+    l'expérimenter avec précautions.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_filter.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 8b22e094bd4cff8c27dc1d455d61aa9bcf45651e..7a5a45a704ba458295b24728179b7f9deece6127 100644 (file)
@@ -52,158 +52,6 @@ headers</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">Order of Processing</a></h2>
-
-    <p>The directives provided by <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can
-    occur almost anywhere within the server configuration, and can be
-    limited in scope by enclosing them in <a href="../sections.html">configuration sections</a>.</p>
-
-    <p>Order of processing is important and is affected both by the
-    order in the configuration file and by placement in <a href="../sections.html#mergin">configuration sections</a>. These
-    two directives have a different effect if reversed:</p>
-
-    <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
-RequestHeader unset MirrorID</pre>
-
-
-    <p>This way round, the <code>MirrorID</code> header is not set. If
-    reversed, the MirrorID header is set to "mirror 12".</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="early" id="early">Early and Late Processing</a></h2>
-    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can be applied either early or late
-    in the request.  The normal mode is late, when <em>Request</em> Headers are
-    set immediately before running the content generator and <em>Response</em>
-    Headers just as the response is sent down the wire.  Always use
-    Late mode in an operational server.</p>
-
-    <p>Early mode is designed as a test/debugging aid for developers.
-    Directives defined using the <code>early</code> keyword are set
-    right at the beginning of processing the request.  This means
-    they can be used to simulate different requests and set up test
-    cases, but it also means that headers may be changed at any time
-    by other modules before generating a Response.</p>
-
-    <p>Because early directives are processed before the request path's
-    configuration is traversed, early headers can only be set in a
-    main server or virtual host context.  Early directives cannot depend
-    on a request path, so they will fail in contexts such as
-    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> or
-    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
-
-    <ol>
-      <li>
-        Copy all request headers that begin with "TS" to the
-        response headers:
-
-        <pre class="prettyprint lang-config">Header echo ^TS</pre>
-
-      </li>
-
-      <li>
-        Add a header, <code>MyHeader</code>, to the response including a
-        timestamp for when the request was received and how long it
-        took to begin serving the request. This header can be used by
-        the client to intuit load on the server or in isolating
-        bottlenecks between the client and the server.
-
-        <pre class="prettyprint lang-config">Header set MyHeader "%D %t"</pre>
-
-
-        <p>results in this header being added to the response:</p>
-
-        <div class="example"><p><code>
-          MyHeader: D=3775428 t=991424704447256
-        </code></p></div>
-      </li>
-
-      <li>
-        Say hello to Joe
-
-        <pre class="prettyprint lang-config">Header set MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."</pre>
-
-
-        <p>results in this header being added to the response:</p>
-
-        <div class="example"><p><code>
-          MyHeader: Hello Joe. It took D=3775428 microseconds for Apache
-          to serve this request.
-        </code></p></div>
-      </li>
-
-      <li>
-        Conditionally send <code>MyHeader</code> on the response if and
-        only if header <code>MyRequestHeader</code> is present on the request.
-        This is useful for constructing headers in response to some client
-        stimulus. Note that this example requires the services of the
-        <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> module.
-
-        <pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
-Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre>
-
-
-        <p>If the header <code>MyRequestHeader: myvalue</code> is present on
-        the HTTP request, the response will contain the following header:</p>
-
-        <div class="example"><p><code>
-          MyHeader: D=3775428 t=991424704447256 mytext
-        </code></p></div>
-      </li>
-
-      <li>
-        Enable DAV to work with Apache running HTTP through SSL hardware
-        (<a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">problem
-        description</a>) by replacing <var>https:</var> with
-        <var>http:</var> in the <var>Destination</var> header:
-
-        <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre>
-
-      </li>
-
-      <li>
-        Set the same header value under multiple nonexclusive conditions,
-        but do not duplicate the value in the final header.
-        If all of the following conditions applied to a request (i.e.,
-        if the <code>CGI</code>, <code>NO_CACHE</code> and
-        <code>NO_STORE</code> environment variables all existed for the
-        request):
-
-        <pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI
-Header merge Cache-Control no-cache env=NO_CACHE
-Header merge Cache-Control no-store env=NO_STORE</pre>
-
-
-        <p>then the response would contain the following header:</p>
-
-        <div class="example"><p><code>
-          Cache-Control: no-cache, no-store
-        </code></p></div>
-
-        <p>If <code>append</code> was used instead of <code>merge</code>,
-        then the response would contain the following header:</p>
-
-        <div class="example"><p><code>
-          Cache-Control: no-cache, no-cache, no-store
-        </code></p></div>
-      </li>
-      <li>
-        Set a test cookie if and only if the client didn't send us a cookie
-        <pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre>
-
-      </li>
-      <li>
-        Append a Caching header for responses with a HTTP status code of 200
-        <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre>
-
-      </li>
-
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure HTTP response headers</td></tr>
@@ -544,6 +392,158 @@ available in 2.4.10 and later</td></tr>
     input filters to be overridden or modified.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">Order of Processing</a></h2>
+
+    <p>The directives provided by <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can
+    occur almost anywhere within the server configuration, and can be
+    limited in scope by enclosing them in <a href="../sections.html">configuration sections</a>.</p>
+
+    <p>Order of processing is important and is affected both by the
+    order in the configuration file and by placement in <a href="../sections.html#mergin">configuration sections</a>. These
+    two directives have a different effect if reversed:</p>
+
+    <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
+RequestHeader unset MirrorID</pre>
+
+
+    <p>This way round, the <code>MirrorID</code> header is not set. If
+    reversed, the MirrorID header is set to "mirror 12".</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="early" id="early">Early and Late Processing</a></h2>
+    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> can be applied either early or late
+    in the request.  The normal mode is late, when <em>Request</em> Headers are
+    set immediately before running the content generator and <em>Response</em>
+    Headers just as the response is sent down the wire.  Always use
+    Late mode in an operational server.</p>
+
+    <p>Early mode is designed as a test/debugging aid for developers.
+    Directives defined using the <code>early</code> keyword are set
+    right at the beginning of processing the request.  This means
+    they can be used to simulate different requests and set up test
+    cases, but it also means that headers may be changed at any time
+    by other modules before generating a Response.</p>
+
+    <p>Because early directives are processed before the request path's
+    configuration is traversed, early headers can only be set in a
+    main server or virtual host context.  Early directives cannot depend
+    on a request path, so they will fail in contexts such as
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> or
+    <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+
+    <ol>
+      <li>
+        Copy all request headers that begin with "TS" to the
+        response headers:
+
+        <pre class="prettyprint lang-config">Header echo ^TS</pre>
+
+      </li>
+
+      <li>
+        Add a header, <code>MyHeader</code>, to the response including a
+        timestamp for when the request was received and how long it
+        took to begin serving the request. This header can be used by
+        the client to intuit load on the server or in isolating
+        bottlenecks between the client and the server.
+
+        <pre class="prettyprint lang-config">Header set MyHeader "%D %t"</pre>
+
+
+        <p>results in this header being added to the response:</p>
+
+        <div class="example"><p><code>
+          MyHeader: D=3775428 t=991424704447256
+        </code></p></div>
+      </li>
+
+      <li>
+        Say hello to Joe
+
+        <pre class="prettyprint lang-config">Header set MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."</pre>
+
+
+        <p>results in this header being added to the response:</p>
+
+        <div class="example"><p><code>
+          MyHeader: Hello Joe. It took D=3775428 microseconds for Apache
+          to serve this request.
+        </code></p></div>
+      </li>
+
+      <li>
+        Conditionally send <code>MyHeader</code> on the response if and
+        only if header <code>MyRequestHeader</code> is present on the request.
+        This is useful for constructing headers in response to some client
+        stimulus. Note that this example requires the services of the
+        <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> module.
+
+        <pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
+Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre>
+
+
+        <p>If the header <code>MyRequestHeader: myvalue</code> is present on
+        the HTTP request, the response will contain the following header:</p>
+
+        <div class="example"><p><code>
+          MyHeader: D=3775428 t=991424704447256 mytext
+        </code></p></div>
+      </li>
+
+      <li>
+        Enable DAV to work with Apache running HTTP through SSL hardware
+        (<a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">problem
+        description</a>) by replacing <var>https:</var> with
+        <var>http:</var> in the <var>Destination</var> header:
+
+        <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre>
+
+      </li>
+
+      <li>
+        Set the same header value under multiple nonexclusive conditions,
+        but do not duplicate the value in the final header.
+        If all of the following conditions applied to a request (i.e.,
+        if the <code>CGI</code>, <code>NO_CACHE</code> and
+        <code>NO_STORE</code> environment variables all existed for the
+        request):
+
+        <pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI
+Header merge Cache-Control no-cache env=NO_CACHE
+Header merge Cache-Control no-store env=NO_STORE</pre>
+
+
+        <p>then the response would contain the following header:</p>
+
+        <div class="example"><p><code>
+          Cache-Control: no-cache, no-store
+        </code></p></div>
+
+        <p>If <code>append</code> was used instead of <code>merge</code>,
+        then the response would contain the following header:</p>
+
+        <div class="example"><p><code>
+          Cache-Control: no-cache, no-cache, no-store
+        </code></p></div>
+      </li>
+      <li>
+        Set a test cookie if and only if the client didn't send us a cookie
+        <pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre>
+
+      </li>
+      <li>
+        Append a Caching header for responses with a HTTP status code of 200
+        <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre>
+
+      </li>
+
+    </ol>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_headers.html" title="English">&nbsp;en&nbsp;</a> |
index 97ae18b11c414cb5636aeed2a350503672ba4e94..4d2dde37754b64b7f814a2598af18263220d7ea6 100644 (file)
@@ -53,173 +53,6 @@ tardif</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">Chronologie du traitement</a></h2>
-
-    <p>Les directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent
-    s'insérer presque partout dans la configuration du serveur, et on
-    peut limiter leur portée en les plaçant dans des <a href="../sections.html">sections de configuration</a>.</p>
-
-    <p>La chronologie du traitement est importante et est affectée par
-    l'ordre d'apparition des directives dans le fichier de configuration
-    et par leur placement dans les <a href="../sections.html#mergin">sections de configuration</a>. Ainsi,
-    ces deux directives ont un effet différent si leur ordre est inversé
-    :</p>
-
-    <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
-RequestHeader unset MirrorID</pre>
-
-
-    <p>Dans cet ordre, l'en-tête <code>MirrorID</code> n'est pas défini.
-    Si l'ordre des directives était inversé, l'en-tête
-    <code>MirrorID</code> serait défini à "mirror 12".</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="early" id="early">Traitement précoce et traitement
-tardif</a></h2>
-    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peut agir soir précocement, soit
-    tardivement au niveau de la requête. Le mode normal est le mode
-    tardif, lorsque les en-têtes de <em>requête</em> sont définis, immédiatement
-    avant l'exécution du générateur de contenu, et pour les en-têtes de
-    <em>réponse</em>, juste au moment où la réponse est envoyée sur le réseau.
-    Utilisez toujours le mode tardif sur un serveur en production.</p>
-
-    <p>Le mode précoce a été conçu à des fins d'aide aux tests et au
-    débogage pour les développeurs. Les directives définies en utilisant
-    le mot-clé <code>early</code> sont censées agir au tout début du
-    traitement de la requête. Cela signifie que l'on peut les utiliser
-    pour simuler différentes requêtes et définir des situations de test,
-    tout en gardant à l'esprit que les en-têtes peuvent être modifiés à
-    tout moment par d'autres modules avant que le réponse ne soit
-    générée.</p>
-
-    <p>Comme les directives précoces sont traitées avant que le
-    chemin de la requête ne soit parcouru, les en-têtes
-    précoces ne peuvent être définis que dans un contexte de serveur
-    principal ou de serveur virtuel. Les directives précoces ne peuvent
-    pas dépendre d'un chemin de requête, si bien qu'elles échoueront
-    dans des contextes tels que <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-
-    <ol>
-      <li>
-        Copie tous les en-têtes de requête qui commencent par "TS" vers
-       les en-têtes de la réponse :
-
-        <pre class="prettyprint lang-config">Header echo ^TS</pre>
-
-      </li>
-
-      <li>
-        Ajoute à la réponse un en-tête, <code>mon-en-tête</code>, qui
-       contient un horodatage permettant de déterminer le moment où la
-       requête a été reçue, et le temps qui s'est écoulé jusqu'à ce que
-       la requête ait commencé à être servie. Cet en-tête peut être
-       utilisé par le client pour estimer la charge du serveur ou
-       isoler les goulets d'étranglement entre le client et le
-       serveur.
-
-        <pre class="prettyprint lang-config">Header set mon-en-tête "%D %t"</pre>
-
-
-        <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>
-
-        <div class="example"><p><code>
-          mon-en-tête: D=3775428 t=991424704447256
-        </code></p></div>
-      </li>
-
-      <li>
-        Dit Bonjour à Joe
-
-        <div class="example"><p><code>
-          Header set mon-en-tête "Bonjour Joe. Il a fallu %D microsecondes \<br />
-          à Apache pour servir cette requête."
-        </code></p></div>
-
-        <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>
-
-        <pre class="prettyprint lang-config">  Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes à Apache
-          pour servir cette requête."</pre>
-
-      </li>
-
-      <li>
-        Ajoute l'en-tête <code>mon-en-tête</code> à la réponse si et
-       seulement si l'en-tête <code>mon-en-tête-requête</code> est
-       présent dans la requête. Ceci peut s'avérer utile pour générer
-       des en-têtes de réponse "à la tête du client". Notez que cet
-       exemple nécessite les services du module
-       <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>.
-
-        <pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
-Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre>
-
-
-        <p>Si l'en-tête <code>mon-en-tête-requête: mavaleur</code> est
-       présent dans la requête HTTP, la réponse contiendra un en-tête
-       du type :</p>
-
-        <div class="example"><p><code>
-          mon-en-tête: D=3775428 t=991424704447256 montexte
-        </code></p></div>
-      </li>
-
-      <li>
-        Permet à DAV de fonctionner avec Apache sur SSL (voir la <a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">description
-       du problème</a>) en remplaçant <var>https:</var> par
-       <var>http:</var> dans l'en-tête <var>Destination</var> :
-
-        <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre>
-
-      </li>
-
-      <li>
-        Définit la valeur d'un même en-tête sous de multiples conditions
-       non exclusives, mais ne duplique pas une valeur déjà définie
-       dans l'en-tête qui en résulte. Si toutes les conditions
-       suivantes sont satisfaites pour une requête (en d'autres termes,
-       si les trois variables d'environnement <code>CGI</code>,
-       <code>NO_CACHE</code> et <code>NO_STORE</code> existent pour la
-       requête) :
-
-        <pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI
-Header merge Cache-Control no-cache env=NO_CACHE
-Header merge Cache-Control no-store env=NO_STORE</pre>
-
-
-        <p>alors, la réponse contiendra l'en-tête suivant :</p>
-
-        <div class="example"><p><code>
-          Cache-Control: no-cache, no-store
-        </code></p></div>
-
-        <p>Si <code>append</code> avait été utilisé à la place de
-       <code>merge</code>, la réponse aurait contenu l'en-tête suivant
-       :</p>
-
-        <div class="example"><p><code>
-          Cache-Control: no-cache, no-cache, no-store
-        </code></p></div>
-      </li>
-      <li>
-        Définit un cookie de test si et seulement si le client n'envoie
-       pas de cookie
-        <pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre>
-
-      </li>
-      <li>
-        Ajoute un en-tête de mise en cache pour les réponses avec un
-       code d'état HTTP de 200
-        <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre>
-
-      </li>
-
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="header" id="header">Directive</a> <a name="Header" id="Header">Header</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure les en-têtes d'une réponse HTTP</td></tr>
@@ -605,6 +438,173 @@ version 2.4.10</td></tr>
     d'Apache.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">Chronologie du traitement</a></h2>
+
+    <p>Les directives fournies par <code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peuvent
+    s'insérer presque partout dans la configuration du serveur, et on
+    peut limiter leur portée en les plaçant dans des <a href="../sections.html">sections de configuration</a>.</p>
+
+    <p>La chronologie du traitement est importante et est affectée par
+    l'ordre d'apparition des directives dans le fichier de configuration
+    et par leur placement dans les <a href="../sections.html#mergin">sections de configuration</a>. Ainsi,
+    ces deux directives ont un effet différent si leur ordre est inversé
+    :</p>
+
+    <pre class="prettyprint lang-config">RequestHeader append MirrorID "mirror 12"
+RequestHeader unset MirrorID</pre>
+
+
+    <p>Dans cet ordre, l'en-tête <code>MirrorID</code> n'est pas défini.
+    Si l'ordre des directives était inversé, l'en-tête
+    <code>MirrorID</code> serait défini à "mirror 12".</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="early" id="early">Traitement précoce et traitement
+tardif</a></h2>
+    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> peut agir soir précocement, soit
+    tardivement au niveau de la requête. Le mode normal est le mode
+    tardif, lorsque les en-têtes de <em>requête</em> sont définis, immédiatement
+    avant l'exécution du générateur de contenu, et pour les en-têtes de
+    <em>réponse</em>, juste au moment où la réponse est envoyée sur le réseau.
+    Utilisez toujours le mode tardif sur un serveur en production.</p>
+
+    <p>Le mode précoce a été conçu à des fins d'aide aux tests et au
+    débogage pour les développeurs. Les directives définies en utilisant
+    le mot-clé <code>early</code> sont censées agir au tout début du
+    traitement de la requête. Cela signifie que l'on peut les utiliser
+    pour simuler différentes requêtes et définir des situations de test,
+    tout en gardant à l'esprit que les en-têtes peuvent être modifiés à
+    tout moment par d'autres modules avant que le réponse ne soit
+    générée.</p>
+
+    <p>Comme les directives précoces sont traitées avant que le
+    chemin de la requête ne soit parcouru, les en-têtes
+    précoces ne peuvent être définis que dans un contexte de serveur
+    principal ou de serveur virtuel. Les directives précoces ne peuvent
+    pas dépendre d'un chemin de requête, si bien qu'elles échoueront
+    dans des contextes tels que <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
+
+    <ol>
+      <li>
+        Copie tous les en-têtes de requête qui commencent par "TS" vers
+       les en-têtes de la réponse :
+
+        <pre class="prettyprint lang-config">Header echo ^TS</pre>
+
+      </li>
+
+      <li>
+        Ajoute à la réponse un en-tête, <code>mon-en-tête</code>, qui
+       contient un horodatage permettant de déterminer le moment où la
+       requête a été reçue, et le temps qui s'est écoulé jusqu'à ce que
+       la requête ait commencé à être servie. Cet en-tête peut être
+       utilisé par le client pour estimer la charge du serveur ou
+       isoler les goulets d'étranglement entre le client et le
+       serveur.
+
+        <pre class="prettyprint lang-config">Header set mon-en-tête "%D %t"</pre>
+
+
+        <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>
+
+        <div class="example"><p><code>
+          mon-en-tête: D=3775428 t=991424704447256
+        </code></p></div>
+      </li>
+
+      <li>
+        Dit Bonjour à Joe
+
+        <div class="example"><p><code>
+          Header set mon-en-tête "Bonjour Joe. Il a fallu %D microsecondes \<br />
+          à Apache pour servir cette requête."
+        </code></p></div>
+
+        <p>le résultat est l'ajout à la réponse d'un en-tête du type :</p>
+
+        <pre class="prettyprint lang-config">  Header set MyHeader "Bonjour Joe. Il a fallu D=3775428 microsecondes à Apache
+          pour servir cette requête."</pre>
+
+      </li>
+
+      <li>
+        Ajoute l'en-tête <code>mon-en-tête</code> à la réponse si et
+       seulement si l'en-tête <code>mon-en-tête-requête</code> est
+       présent dans la requête. Ceci peut s'avérer utile pour générer
+       des en-têtes de réponse "à la tête du client". Notez que cet
+       exemple nécessite les services du module
+       <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>.
+
+        <pre class="prettyprint lang-config">SetEnvIf MyRequestHeader myvalue HAVE_MyRequestHeader
+Header set MyHeader "%D %t mytext" env=HAVE_MyRequestHeader</pre>
+
+
+        <p>Si l'en-tête <code>mon-en-tête-requête: mavaleur</code> est
+       présent dans la requête HTTP, la réponse contiendra un en-tête
+       du type :</p>
+
+        <div class="example"><p><code>
+          mon-en-tête: D=3775428 t=991424704447256 montexte
+        </code></p></div>
+      </li>
+
+      <li>
+        Permet à DAV de fonctionner avec Apache sur SSL (voir la <a href="http://svn.haxx.se/users/archive-2006-03/0549.shtml">description
+       du problème</a>) en remplaçant <var>https:</var> par
+       <var>http:</var> dans l'en-tête <var>Destination</var> :
+
+        <pre class="prettyprint lang-config">RequestHeader edit Destination ^https: http: early</pre>
+
+      </li>
+
+      <li>
+        Définit la valeur d'un même en-tête sous de multiples conditions
+       non exclusives, mais ne duplique pas une valeur déjà définie
+       dans l'en-tête qui en résulte. Si toutes les conditions
+       suivantes sont satisfaites pour une requête (en d'autres termes,
+       si les trois variables d'environnement <code>CGI</code>,
+       <code>NO_CACHE</code> et <code>NO_STORE</code> existent pour la
+       requête) :
+
+        <pre class="prettyprint lang-config">Header merge Cache-Control no-cache env=CGI
+Header merge Cache-Control no-cache env=NO_CACHE
+Header merge Cache-Control no-store env=NO_STORE</pre>
+
+
+        <p>alors, la réponse contiendra l'en-tête suivant :</p>
+
+        <div class="example"><p><code>
+          Cache-Control: no-cache, no-store
+        </code></p></div>
+
+        <p>Si <code>append</code> avait été utilisé à la place de
+       <code>merge</code>, la réponse aurait contenu l'en-tête suivant
+       :</p>
+
+        <div class="example"><p><code>
+          Cache-Control: no-cache, no-cache, no-store
+        </code></p></div>
+      </li>
+      <li>
+        Définit un cookie de test si et seulement si le client n'envoie
+       pas de cookie
+        <pre class="prettyprint lang-config">Header set Set-Cookie testcookie "expr=-z %{req:Cookie}"</pre>
+
+      </li>
+      <li>
+        Ajoute un en-tête de mise en cache pour les réponses avec un
+       code d'état HTTP de 200
+        <pre class="prettyprint lang-config">Header append Cache-Control s-maxage=600 "expr=%{REQUEST_STATUS} == 200"</pre>
+
+      </li>
+
+    </ol>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index a4a05c629778d6d3f3e8ced6d20f473556e9c6f8..8dce0e9fb79ebe8ca97686516266c614e7bc7bac 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">例</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">処理の順番</a></h2>
-
-    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> のディレクティブはサーバ設定のほぼどこにでも
-    書くことができ、影響する範囲を<a href="../sections.html">設定用セクション</a>で囲むことで限定する
-    ことができます。</p>
-
-    <p>処理の順番は重要で、設定ファイル中の順番と、<a href="../sections.html">設定用セクション</a>内の位置との両方に
-    影響されます。以下の二つのヘッダは順番が逆になると
-    違う結果になります:</p>
-
-    <div class="example"><p><code>
-      RequestHeader append MirrorID "mirror 12"<br />
-      RequestHeader unset MirrorID
-    </code></p></div>
-
-    <p>この順番の場合は、<code>MirrorID</code> ヘッダは設定されません。
-    逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="early" id="early">早期処理、後期処理</a></h2>
-    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> では、リクエストの早期か後期かの
-    どちらで適用するかを選べます。通常は後期モードで、
-    コンテンツ生成が実行される直前にリクエストヘッダがセットされ、
-    レスポンスとして送出される直前にレスポンスヘッダがセットされます。
-    運用中のサーバでは必ず後期モードを使ってください。</p>
-
-    <p>早期モードは開発者向けのテスト/デバッグ用に設計されています。
-    <code>early</code> キーワード指定されたディレクティブによって、
-    リクエスト処理の開始地点になります。
-    つまり、異なるリクエストを試したりテストケースをセットアップするのに
-    活用できる一方で、レスポンスを生成する前に他のモジュールによって
-    ヘッダが書き換えられてしまうかもしれないということを意味します。</p>
-
-    <p>early ディレクティブではリクエストパスの設定が解決される前に
-    処理されるので、メインサーバかバーチャルホストコンテキストでのみ、
-    早期ヘッダをセットできます。early ディレクティブはリクエストパスに
-    依存することはできませんので、<code>&lt;Directory&gt;</code> や
-    <code>&lt;Location&gt;</code> といったコンテキスト内では使用
-    できません。</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">例</a></h2>
-
-    <ol>
-      <li>リクエストヘッダ中の "TS" で始まるフィールドをすべて応答ヘッダに
-        コピーします:
-        <div class="example"><p><code>
-          Header echo ^TS
-        </code></p></div>
-      </li>
-
-      <li>
-        リクエストを受け付けた時刻とリクエストを処理した時間を入れたヘッダ、
-        <code>MyHeader</code> を応答に追加します。このヘッダはクライアントが
-        サーバの負荷を直観的に知るためや、クライアント-サーバ間の
-        ボトルネックを調べるために使うことができます。
-
-        <div class="example"><p><code>
-           Header add MyHeader "%D %t"
-        </code></p></div>
-
-        <p>上記の設定では、以下のようなヘッダが応答に追加されることになります:</p>
-
-        <div class="example"><p><code>
-           MyHeader: D=3775428 t=991424704447256
-        </code></p></div>
-      </li>
-
-      <li>
-        Joe にあいさつをします:
-
-        <div class="example"><p><code>
-           Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
-        </code></p></div>
-
-        <p>以下のようなヘッダが応答に追加されることになります</p>
-
-        <div class="example"><p><code>
-           MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request.
-        </code></p></div>
-      </li>
-
-      <li>リクエストに "MyRequestHeader" があるときに限り <code>MyHeader</code> を応答に
-      付けます。これは、クライアントの要求に応えてヘッダを作成するときに
-      役に立ちます。この例では <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> モジュールが必要なことに
-      注意してください。
-
-        <div class="example"><p><code>
-           SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br />
-           Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
-        </code></p></div>
-
-        <p>もし HTTP リクエストに <code>MyRequestHeader: value</code> ヘッダが
-        あると、応答には以下のようなヘッダが付加されます。</p>
-
-        <div class="example"><p><code>
-           MyHeader: D=3775428 t=991424704447256 mytext
-        </code></p></div>
-      </li>
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>HTTP 応答ヘッダの設定</td></tr>
     生成されたヘッダを上書きしたり修正したりできるようになっています。</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">処理の順番</a></h2>
+
+    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> のディレクティブはサーバ設定のほぼどこにでも
+    書くことができ、影響する範囲を<a href="../sections.html">設定用セクション</a>で囲むことで限定する
+    ことができます。</p>
+
+    <p>処理の順番は重要で、設定ファイル中の順番と、<a href="../sections.html">設定用セクション</a>内の位置との両方に
+    影響されます。以下の二つのヘッダは順番が逆になると
+    違う結果になります:</p>
+
+    <div class="example"><p><code>
+      RequestHeader append MirrorID "mirror 12"<br />
+      RequestHeader unset MirrorID
+    </code></p></div>
+
+    <p>この順番の場合は、<code>MirrorID</code> ヘッダは設定されません。
+    逆になっていると、MirrorID ヘッダは "mirror 12" に設定されます。</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="early" id="early">早期処理、後期処理</a></h2>
+    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code> では、リクエストの早期か後期かの
+    どちらで適用するかを選べます。通常は後期モードで、
+    コンテンツ生成が実行される直前にリクエストヘッダがセットされ、
+    レスポンスとして送出される直前にレスポンスヘッダがセットされます。
+    運用中のサーバでは必ず後期モードを使ってください。</p>
+
+    <p>早期モードは開発者向けのテスト/デバッグ用に設計されています。
+    <code>early</code> キーワード指定されたディレクティブによって、
+    リクエスト処理の開始地点になります。
+    つまり、異なるリクエストを試したりテストケースをセットアップするのに
+    活用できる一方で、レスポンスを生成する前に他のモジュールによって
+    ヘッダが書き換えられてしまうかもしれないということを意味します。</p>
+
+    <p>early ディレクティブではリクエストパスの設定が解決される前に
+    処理されるので、メインサーバかバーチャルホストコンテキストでのみ、
+    早期ヘッダをセットできます。early ディレクティブはリクエストパスに
+    依存することはできませんので、<code>&lt;Directory&gt;</code> や
+    <code>&lt;Location&gt;</code> といったコンテキスト内では使用
+    できません。</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">例</a></h2>
+
+    <ol>
+      <li>リクエストヘッダ中の "TS" で始まるフィールドをすべて応答ヘッダに
+        コピーします:
+        <div class="example"><p><code>
+          Header echo ^TS
+        </code></p></div>
+      </li>
+
+      <li>
+        リクエストを受け付けた時刻とリクエストを処理した時間を入れたヘッダ、
+        <code>MyHeader</code> を応答に追加します。このヘッダはクライアントが
+        サーバの負荷を直観的に知るためや、クライアント-サーバ間の
+        ボトルネックを調べるために使うことができます。
+
+        <div class="example"><p><code>
+           Header add MyHeader "%D %t"
+        </code></p></div>
+
+        <p>上記の設定では、以下のようなヘッダが応答に追加されることになります:</p>
+
+        <div class="example"><p><code>
+           MyHeader: D=3775428 t=991424704447256
+        </code></p></div>
+      </li>
+
+      <li>
+        Joe にあいさつをします:
+
+        <div class="example"><p><code>
+           Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
+        </code></p></div>
+
+        <p>以下のようなヘッダが応答に追加されることになります</p>
+
+        <div class="example"><p><code>
+           MyHeader: Hello Joe. It took D=3775428 microseconds for Apache to serve this request.
+        </code></p></div>
+      </li>
+
+      <li>リクエストに "MyRequestHeader" があるときに限り <code>MyHeader</code> を応答に
+      付けます。これは、クライアントの要求に応えてヘッダを作成するときに
+      役に立ちます。この例では <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> モジュールが必要なことに
+      注意してください。
+
+        <div class="example"><p><code>
+           SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br />
+           Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader
+        </code></p></div>
+
+        <p>もし HTTP リクエストに <code>MyRequestHeader: value</code> ヘッダが
+        あると、応答には以下のようなヘッダが付加されます。</p>
+
+        <div class="example"><p><code>
+           MyHeader: D=3775428 t=991424704447256 mytext
+        </code></p></div>
+      </li>
+    </ol>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index c0be03e7c5a353836ae25c2cd20534bad8a9ec9a..2a33cace21f1782bfa6f4fb3233999615b499b91 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">¿¹Á¦</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="order" id="order">󸮠¼ø¼­</a></h2>
-
-    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>°¡ Á¦°øÇϴ Áö½Ã¾î´Â ¼­¹ö¼³Á¤ÀÇ
-    °ÅÀÇ ¸ðµç Àå¼Ò¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, <a href="../sections.html">¼³Á¤ ¼½¼Ç</a>À¸·Î °¨½Î¼­ Áö½Ã¾îÀÇ
-    ¹üÀ§¸¦ Á¦ÇÑÇÒ ¼öµµ ÀÖ´Ù.</p>
-
-    <p>󸮼ø¼­´Â Áß¿äÇϸç, ¼³Á¤ÆÄÀÏ¿¡ ³ª¿Â ¼ø¼­¿Í <a href="../sections.html#mergin">¼³Á¤ ¼½¼Ç</a>ÀÇ ¿µÇâÀ» ¹Þ´Â´Ù.
-    ´ÙÀ½ µÎ Áö½Ã¾î¸¦ ¹Ý´ë·Î ÀûÀ¸¸é È¿°ú°¡ ´Þ¶óÁø´Ù.</p>
-
-    <div class="example"><p><code>
-      RequestHeader append MirrorID "mirror 12"<br />
-      RequestHeader unset MirrorID
-    </code></p></div>
-
-    <p>À§¿Í °°ÀÌ ÀûÀ¸¸é <code>MirrorID</code> Çì´õ°¡ ³ª¿ÀÁö
-    ¾Ê´Â´Ù. ¹Ý´ë·Î ÀûÀ¸¸é MirrorID Çì´õ¸¦ "mirror 12"·Î ¼³Á¤ÇÑ´Ù.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="early" id="early">À̸¥(early) Ã³¸®¿Í ´ÊÀº(late) Ã³¸®</a></h2>
-    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>¸¦ ¿äû Ãʱ⳪ ³ªÁß¿¡ Àû¿ëÇÒ
-    ¼ö ÀÖ´Ù. º¸ÅëÀº ³»¿ë»ý¼ºÀÚ¸¦ ½ÇÇàÇϱâ Á÷Àü¿¡ ¿äû Çì´õ¸¦
-    ¼³Á¤Çϰí ÀÀ´äÀ» ³×Æ®¿÷¿¡ ¾µ¶§ ÀÀ´ä Çì´õ¸¦ ¼³Á¤Çϴ ´ÊÀº(late)
-    ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. ½ÇÁ¦ ¼­ºñ½ºÇϴ ¼­¹ö¿¡¼­´Â Ç×»ó ´À¸° ¹æ½ÄÀ»
-    »ç¿ëÇ϶ó.</p>
-
-    <p>À̸¥(early) ¹æ½ÄÀº °³¹ßÀÚ¸¦ À§ÇØ °Ë»ç/µð¹ö±ë¿ëÀ¸·Î ¸¸µé¾ú´Ù.
-    <code>early</code> Å°¿öµå¸¦ »ç¿ëÇÏ¿© Á¤ÀÇÇÑ Áö½Ã¾î´Â ¿äûÀ»
-    Ã³¸®Çϱ⠽ÃÀÛÇÒ¶§ ¼³Á¤ÇÑ´Ù. Áï, ´Ù¸¥ ¿äûÀ» ¸ðÀǽÇÇèÇϰųª
-    °Ë»ç¸¦ ÇϱâÀ§ÇØ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ÀÀ´äÀ» »ý¼ºÇϱâ Àü¿¡ ´Ù¸¥
-    ¸ðµâÀÌ ºÒ½Ã¿¡ Çì´õ¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
-
-    <p>¿äû°æ·Î¿¡ ´ëÇÑ ¼³Á¤À» »ìÆìº¸±â Àü¿¡ À̸¥ Áö½Ã¾î¸¦
-    Ã³¸®Çϱ⶧¹®¿¡ À̸¥ Çì´õ Áö½Ã¾î´Â ÁÖ¼­¹öÀ̳ª °¡»óÈ£½ºÆ®
-    »ç¿ëÀå¼Ò¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̸¥ Áö½Ã¾î´Â ¿äû°æ·Î¿¡
-    ÀÇÁ¸ÇÒ ¼ö ¾ø±â¶§¹®¿¡ <code>&lt;Directory&gt;</code>³ª
-    <code>&lt;Location&gt;</code>°°Àº »ç¿ëÀå¼Ò¿¡¼­ »ç¿ëÇÒ ¼ö
-    ¾ø´Ù.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">¿¹Á¦</a></h2>
-
-    <ol>
-      <li>
-        "TS"·Î ½ÃÀÛÇϴ ¸ðµç ¿äû Çì´õ¸¦ ÀÀ´ä Çì´õ·Î º¹»çÇÑ´Ù.
-
-        <div class="example"><p><code>
-          Header echo ^TS
-        </code></p></div>
-      </li>
-
-      <li>
-        ÀÀ´ä¿¡ ¿äûÀ» ¹ÞÀº ½Ã°£°ú ¿äûÀ» ¼­ºñ½ºÇϴµ¥ °É¸± ½Ã°£À»
-        ¾Ë·ÁÁִ <code>MyHeader</code> Çì´õ¸¦ Ãß°¡ÇÑ´Ù. Å¬¶óÀÌ¾ðÆ®´Â
-        ÀÌ Çì´õ¸¦ º¸°í ¼­¹öÀÇ ºÎÇϸ¦ ÃßÁ¤Çϰųª Å¬¶óÀÌ¾ðÆ®¿Í
-        ¼­¹ö°£ÀÇ º´¸ñÁ¡À» Ã£À» ¼ö ÀÖ´Ù.
-
-        <div class="example"><p><code>
-          Header add MyHeader "%D %t"
-        </code></p></div>
-
-        <p>ÀÀ´ä¿¡ ´ÙÀ½°ú °°Àº Çì´õ°¡ »ý±ä´Ù.</p>
-
-        <div class="example"><p><code>
-          MyHeader: D=3775428 t=991424704447256
-        </code></p></div>
-      </li>
-
-      <li>
-        Joe¿¡°Ô ¾È³ç
-
-        <div class="example"><p><code>
-          Header add MyHeader "Hello Joe. It took %D microseconds \<br />
-          for Apache to serve this request."
-        </code></p></div>
-
-        <p>ÀÀ´ä¿¡ ´ÙÀ½°ú °°Àº Çì´õ°¡ »ý±ä´Ù.</p>
-
-        <div class="example"><p><code>
-          MyHeader: Hello Joe. It took D=3775428 microseconds for Apache
-          to serve this request.
-        </code></p></div>
-      </li>
-
-      <li>
-        ¿äû¿¡ "MyRequestHeader" Çì´õ°¡ Àִ °æ¿ì¿¡¸¸ ¼±ÅÃÀûÀ¸·Î
-        ÀÀ´ä¿¡ <code>MyHeader</code>¸¦ º¸³½´Ù. Æ¯Á¤ Å¬¶óÀÌ¾ðÆ®¿¡°Ô¸¸
-        ÀÀ´ä¿¡ Çì´õ¸¦ Ãß°¡ÇÒ¶§ À¯¿ëÇÏ´Ù. ÀÌ ¿¹Á¦°¡ µ¿ÀÛÇÏ·Á¸é
-        <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> ¸ðµâÀÌ ÇÊ¿äÇÏ´Ù.
-
-        <div class="example"><p><code>
-          SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br />
-          Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader<br />
-       </code></p></div>
-
-       <p>HTTP ¿äû¿¡ <code>MyRequestHeader: value</code> Çì´õ°¡
-       ÀÖ´Ù¸é, ÀÀ´ä¿¡ ´ÙÀ½°ú °°Àº Çì´õ°¡ »ý±ä´Ù.</p>
-
-       <div class="example"><p><code>
-         MyHeader: D=3775428 t=991424704447256 mytext
-       </code></p></div>
-      </li>
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Header" id="Header">Header</a> <a name="header" id="header">Áö½Ã¾î</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>HTTP ÀÀ´ä Çì´õ¸¦ ±¸¼ºÇÑ´Ù</td></tr>
     ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="order" id="order">󸮠¼ø¼­</a></h2>
+
+    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>°¡ Á¦°øÇϴ Áö½Ã¾î´Â ¼­¹ö¼³Á¤ÀÇ
+    °ÅÀÇ ¸ðµç Àå¼Ò¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, <a href="../sections.html">¼³Á¤ ¼½¼Ç</a>À¸·Î °¨½Î¼­ Áö½Ã¾îÀÇ
+    ¹üÀ§¸¦ Á¦ÇÑÇÒ ¼öµµ ÀÖ´Ù.</p>
+
+    <p>󸮼ø¼­´Â Áß¿äÇϸç, ¼³Á¤ÆÄÀÏ¿¡ ³ª¿Â ¼ø¼­¿Í <a href="../sections.html#mergin">¼³Á¤ ¼½¼Ç</a>ÀÇ ¿µÇâÀ» ¹Þ´Â´Ù.
+    ´ÙÀ½ µÎ Áö½Ã¾î¸¦ ¹Ý´ë·Î ÀûÀ¸¸é È¿°ú°¡ ´Þ¶óÁø´Ù.</p>
+
+    <div class="example"><p><code>
+      RequestHeader append MirrorID "mirror 12"<br />
+      RequestHeader unset MirrorID
+    </code></p></div>
+
+    <p>À§¿Í °°ÀÌ ÀûÀ¸¸é <code>MirrorID</code> Çì´õ°¡ ³ª¿ÀÁö
+    ¾Ê´Â´Ù. ¹Ý´ë·Î ÀûÀ¸¸é MirrorID Çì´õ¸¦ "mirror 12"·Î ¼³Á¤ÇÑ´Ù.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="early" id="early">À̸¥(early) Ã³¸®¿Í ´ÊÀº(late) Ã³¸®</a></h2>
+    <p><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code>¸¦ ¿äû Ãʱ⳪ ³ªÁß¿¡ Àû¿ëÇÒ
+    ¼ö ÀÖ´Ù. º¸ÅëÀº ³»¿ë»ý¼ºÀÚ¸¦ ½ÇÇàÇϱâ Á÷Àü¿¡ ¿äû Çì´õ¸¦
+    ¼³Á¤Çϰí ÀÀ´äÀ» ³×Æ®¿÷¿¡ ¾µ¶§ ÀÀ´ä Çì´õ¸¦ ¼³Á¤Çϴ ´ÊÀº(late)
+    ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. ½ÇÁ¦ ¼­ºñ½ºÇϴ ¼­¹ö¿¡¼­´Â Ç×»ó ´À¸° ¹æ½ÄÀ»
+    »ç¿ëÇ϶ó.</p>
+
+    <p>À̸¥(early) ¹æ½ÄÀº °³¹ßÀÚ¸¦ À§ÇØ °Ë»ç/µð¹ö±ë¿ëÀ¸·Î ¸¸µé¾ú´Ù.
+    <code>early</code> Å°¿öµå¸¦ »ç¿ëÇÏ¿© Á¤ÀÇÇÑ Áö½Ã¾î´Â ¿äûÀ»
+    Ã³¸®Çϱ⠽ÃÀÛÇÒ¶§ ¼³Á¤ÇÑ´Ù. Áï, ´Ù¸¥ ¿äûÀ» ¸ðÀǽÇÇèÇϰųª
+    °Ë»ç¸¦ ÇϱâÀ§ÇØ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ÀÀ´äÀ» »ý¼ºÇϱâ Àü¿¡ ´Ù¸¥
+    ¸ðµâÀÌ ºÒ½Ã¿¡ Çì´õ¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
+
+    <p>¿äû°æ·Î¿¡ ´ëÇÑ ¼³Á¤À» »ìÆìº¸±â Àü¿¡ À̸¥ Áö½Ã¾î¸¦
+    Ã³¸®Çϱ⶧¹®¿¡ À̸¥ Çì´õ Áö½Ã¾î´Â ÁÖ¼­¹öÀ̳ª °¡»óÈ£½ºÆ®
+    »ç¿ëÀå¼Ò¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̸¥ Áö½Ã¾î´Â ¿äû°æ·Î¿¡
+    ÀÇÁ¸ÇÒ ¼ö ¾ø±â¶§¹®¿¡ <code>&lt;Directory&gt;</code>³ª
+    <code>&lt;Location&gt;</code>°°Àº »ç¿ëÀå¼Ò¿¡¼­ »ç¿ëÇÒ ¼ö
+    ¾ø´Ù.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">¿¹Á¦</a></h2>
+
+    <ol>
+      <li>
+        "TS"·Î ½ÃÀÛÇϴ ¸ðµç ¿äû Çì´õ¸¦ ÀÀ´ä Çì´õ·Î º¹»çÇÑ´Ù.
+
+        <div class="example"><p><code>
+          Header echo ^TS
+        </code></p></div>
+      </li>
+
+      <li>
+        ÀÀ´ä¿¡ ¿äûÀ» ¹ÞÀº ½Ã°£°ú ¿äûÀ» ¼­ºñ½ºÇϴµ¥ °É¸± ½Ã°£À»
+        ¾Ë·ÁÁִ <code>MyHeader</code> Çì´õ¸¦ Ãß°¡ÇÑ´Ù. Å¬¶óÀÌ¾ðÆ®´Â
+        ÀÌ Çì´õ¸¦ º¸°í ¼­¹öÀÇ ºÎÇϸ¦ ÃßÁ¤Çϰųª Å¬¶óÀÌ¾ðÆ®¿Í
+        ¼­¹ö°£ÀÇ º´¸ñÁ¡À» Ã£À» ¼ö ÀÖ´Ù.
+
+        <div class="example"><p><code>
+          Header add MyHeader "%D %t"
+        </code></p></div>
+
+        <p>ÀÀ´ä¿¡ ´ÙÀ½°ú °°Àº Çì´õ°¡ »ý±ä´Ù.</p>
+
+        <div class="example"><p><code>
+          MyHeader: D=3775428 t=991424704447256
+        </code></p></div>
+      </li>
+
+      <li>
+        Joe¿¡°Ô ¾È³ç
+
+        <div class="example"><p><code>
+          Header add MyHeader "Hello Joe. It took %D microseconds \<br />
+          for Apache to serve this request."
+        </code></p></div>
+
+        <p>ÀÀ´ä¿¡ ´ÙÀ½°ú °°Àº Çì´õ°¡ »ý±ä´Ù.</p>
+
+        <div class="example"><p><code>
+          MyHeader: Hello Joe. It took D=3775428 microseconds for Apache
+          to serve this request.
+        </code></p></div>
+      </li>
+
+      <li>
+        ¿äû¿¡ "MyRequestHeader" Çì´õ°¡ Àִ °æ¿ì¿¡¸¸ ¼±ÅÃÀûÀ¸·Î
+        ÀÀ´ä¿¡ <code>MyHeader</code>¸¦ º¸³½´Ù. Æ¯Á¤ Å¬¶óÀÌ¾ðÆ®¿¡°Ô¸¸
+        ÀÀ´ä¿¡ Çì´õ¸¦ Ãß°¡ÇÒ¶§ À¯¿ëÇÏ´Ù. ÀÌ ¿¹Á¦°¡ µ¿ÀÛÇÏ·Á¸é
+        <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> ¸ðµâÀÌ ÇÊ¿äÇÏ´Ù.
+
+        <div class="example"><p><code>
+          SetEnvIf MyRequestHeader value HAVE_MyRequestHeader<br />
+          Header add MyHeader "%D %t mytext" env=HAVE_MyRequestHeader<br />
+       </code></p></div>
+
+       <p>HTTP ¿äû¿¡ <code>MyRequestHeader: value</code> Çì´õ°¡
+       ÀÖ´Ù¸é, ÀÀ´ä¿¡ ´ÙÀ½°ú °°Àº Çì´õ°¡ »ý±ä´Ù.</p>
+
+       <div class="example"><p><code>
+         MyHeader: D=3775428 t=991424704447256 mytext
+       </code></p></div>
+      </li>
+    </ol>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_headers.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 6e6b6aac0bd6eefc0ae99a46e37a831162eacc7c..39163898143e13b37d69b3ac2ab8b7005873b865 100644 (file)
@@ -61,6 +61,25 @@ of <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</
 <li><img alt="" src="../images/down.gif" /> <a href="#consuming">Consuming mod_heartbeat Output</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="HeartbeatAddress" id="HeartbeatAddress">HeartbeatAddress</a> <a name="heartbeataddress" id="heartbeataddress">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Multicast address for heartbeat packets</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>HeartbeatAddress <var>addr:port</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>disabled</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_heartbeat</td></tr>
+</table>
+<p>The <code class="directive">HeartbeatAddress</code> directive specifies the
+multicast address to which <code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code> will send
+status information. This address will usually correspond to a configured
+ <code class="directive"><a href="../mod/mod_heartmonitor.html#heartbeatlisten">HeartbeatListen</a></code> on a
+frontend proxy system.</p>
+<pre class="prettyprint lang-config">HeartbeatAddress 239.0.0.1:27999</pre>
+    
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="consuming" id="consuming">Consuming mod_heartbeat Output</a></h2>
     
@@ -80,25 +99,6 @@ v=1&amp;ready=75&amp;busy=0
     separated by '&amp;', being added in the future.
   </p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="HeartbeatAddress" id="HeartbeatAddress">HeartbeatAddress</a> <a name="heartbeataddress" id="heartbeataddress">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Multicast address for heartbeat packets</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>HeartbeatAddress <var>addr:port</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>disabled</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_heartbeat</td></tr>
-</table>
-<p>The <code class="directive">HeartbeatAddress</code> directive specifies the
-multicast address to which <code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code> will send
-status information. This address will usually correspond to a configured
- <code class="directive"><a href="../mod/mod_heartmonitor.html#heartbeatlisten">HeartbeatListen</a></code> on a
-frontend proxy system.</p>
-<pre class="prettyprint lang-config">HeartbeatAddress 239.0.0.1:27999</pre>
-    
-
 </div>
 </div>
 <div class="bottomlang">
index 83ebcaeb5164db62334173c0b36fc4a520fc46cd..7e1e8cdd69a03b60627acb4277af1e9a530e0796 100644 (file)
@@ -67,6 +67,26 @@ du serveur HTTP Apache</td></tr></table>
 <li><img alt="" src="../images/down.gif" /> <a href="#consuming">Utilisation de la sortie de mod_heartbeat</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="heartbeataddress" id="heartbeataddress">Directive</a> <a name="HeartbeatAddress" id="HeartbeatAddress">HeartbeatAddress</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adresse multicast à laquelle envoyer les requêtes
+heartbeat</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>HeartbeatAddress <var>addr:port</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>disabled</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_heartbeat</td></tr>
+</table>
+    <p>La directive <code class="directive">HeartbeatAddress</code> permet de
+    spécifier l'adresse multicast à laquelle <code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code> va
+    envoyer ses informations. En général, cette adresse correspond à la
+    valeur définie par la directive  <code class="directive"><a href="../mod/mod_heartmonitor.html#heartbeatlisten">HeartbeatListen</a></code> sur le serveur
+    mandataire frontal.</p>
+    <pre class="prettyprint lang-config">HeartbeatAddress 239.0.0.1:27999</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="consuming" id="consuming">Utilisation de la sortie de mod_heartbeat</a></h2>
     
@@ -86,26 +106,6 @@ v=1&amp;ready=75&amp;busy=0
     plus de busy et ready, et toujours séparées par des '&amp;'.
   </p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="heartbeataddress" id="heartbeataddress">Directive</a> <a name="HeartbeatAddress" id="HeartbeatAddress">HeartbeatAddress</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adresse multicast à laquelle envoyer les requêtes
-heartbeat</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>HeartbeatAddress <var>addr:port</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>disabled</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_heartbeat</td></tr>
-</table>
-    <p>La directive <code class="directive">HeartbeatAddress</code> permet de
-    spécifier l'adresse multicast à laquelle <code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code> va
-    envoyer ses informations. En général, cette adresse correspond à la
-    valeur définie par la directive  <code class="directive"><a href="../mod/mod_heartmonitor.html#heartbeatlisten">HeartbeatListen</a></code> sur le serveur
-    mandataire frontal.</p>
-    <pre class="prettyprint lang-config">HeartbeatAddress 239.0.0.1:27999</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 8d8c7c2eebfba2555c2b388a310cee719b862390..f086d626454af97727166241cac9221af8515006 100644 (file)
@@ -61,7 +61,6 @@ use <code class="module"><a href="../mod/mod_slotmem_shm.html">mod_slotmem_shm</
 <li><img alt="" src="../images/down.gif" /> <a href="#heartbeatstorage">HeartbeatStorage</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="HeartbeatListen" id="HeartbeatListen">HeartbeatListen</a> <a name="heartbeatlisten" id="heartbeatlisten">Directive</a></h2>
 <table class="directive">
@@ -116,6 +115,7 @@ heartbeat requests to this server</td></tr>
     <code class="module"><a href="../mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code> is not loaded.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_heartmonitor.html" title="English">&nbsp;en&nbsp;</a> |
index 558e84704cc0cf7a98dd50726abf68577ed9b384..43e6b51cb57372d8f4dd38b0d4f8e1f1b4b156ee 100644 (file)
@@ -62,7 +62,6 @@ configuration suppl
 <li><img alt="" src="../images/down.gif" /> <a href="#heartbeatstorage">HeartbeatStorage</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="heartbeatlisten" id="heartbeatlisten">Directive</a> <a name="HeartbeatListen" id="HeartbeatListen">HeartbeatListen</a></h2>
 <table class="directive">
@@ -123,6 +122,7 @@ des requ
     pas chargé.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_heartmonitor.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 2b990a3890bac777e0c6da87855f0b3560b93a4c..a27189d427d1876b8e26e004cdc7999ca2bdf99d 100644 (file)
@@ -48,7 +48,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a> <a name="identitycheck" id="identitycheck">Directive</a></h2>
 <table class="directive">
@@ -96,6 +95,7 @@ user</td></tr>
     timeout value according to your local network speed.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_ident.html" title="English">&nbsp;en&nbsp;</a> |
index 499f418c4a5a67d3a3e548c66e76f438ba0fd8d8..2f6f4f6c24e1167013a1f1019e102fe1838e54e0 100644 (file)
@@ -50,7 +50,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="identitycheck" id="identitycheck">Directive</a> <a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a></h2>
 <table class="directive">
@@ -105,6 +104,7 @@ ident</td></tr>
     valeur de ce délai en fonction du débit de votre réseau local.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_ident.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index b294db7ee650dd625a6d56b44fb78624e6041f51..ddac05552c1e4913c5613846ed3d53add4e44a86 100644 (file)
@@ -48,7 +48,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a> <a name="identitycheck" id="identitycheck">ディレクティブ</a></h2>
 <table class="directive">
@@ -96,6 +95,7 @@
     合わせてタイムアウト値を調節するのがよいでしょう。</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_ident.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 8d16692065a71940c6f39d3ceec873673c3b582f..74ad72920690011e79845b54a1d860f8b8bdf158 100644 (file)
@@ -49,7 +49,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="IdentityCheck" id="IdentityCheck">IdentityCheck</a> <a name="identitycheck" id="identitycheck">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -93,6 +92,7 @@
     ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_ident.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 1c57a17595946cbcc96d2857b11d9f4a39481cce..68204cb92aaa096837a328ffc057b08815826754 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#referencing">Referencing your mapfile</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default <code>base</code> for imagemap files</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapBase http://servername/</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p>The <code class="directive">ImapBase</code> directive sets the default
+    <code>base</code> used in the imagemap files. Its value is
+    overridden by a <code>base</code> directive within the imagemap
+    file. If not present, the <code>base</code> defaults to
+    <code>http://<var>servername</var>/</code>.</p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default action when an imagemap is called with coordinates
+that are not explicitly mapped</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapDefault nocontent</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p>The <code class="directive">ImapDefault</code> directive sets the default
+    <code>default</code> used in the imagemap files. Its value is
+    overridden by a <code>default</code> directive within the
+    imagemap file. If not present, the <code>default</code> action
+    is <code>nocontent</code>, which means that a <code>204 No
+    Content</code> is sent to the client. In this case, the client
+    should continue to display the original page.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action if no coordinates are given when calling
+an imagemap</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapMenu formatted</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p>The <code class="directive">ImapMenu</code> directive determines the
+    action taken if an imagemap file is called without valid
+    coordinates.</p>
+
+    <dl>
+      <dt><code>none</code></dt>
+      <dd>If ImapMenu is <code>none</code>, no menu is generated,
+      and the <code>default</code> action is performed.</dd>
+
+      <dt><code>formatted</code></dt>
+      <dd>A <code>formatted</code> menu is the simplest menu.
+      Comments in the imagemap file are ignored. A level one header
+      is printed, then an hrule, then the links each on a separate
+      line. The menu has a consistent, plain look close to that of
+      a directory listing.</dd>
+
+      <dt><code>semiformatted</code></dt>
+      <dd>In the <code>semiformatted</code> menu, comments are
+      printed where they occur in the imagemap file. Blank lines
+      are turned into HTML breaks. No header or hrule is printed,
+      but otherwise the menu is the same as a
+      <code>formatted</code> menu.</dd>
+
+      <dt><code>unformatted</code></dt>
+      <dd>Comments are printed, blank lines are ignored. Nothing is
+      printed that does not appear in the imagemap file. All breaks
+      and headers must be included as comments in the imagemap
+      file. This gives you the most flexibility over the appearance
+      of your menus, but requires you to treat your map files as
+      HTML instead of plaintext.</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="features" id="features">New Features</a></h2>
 
       &lt;/a&gt;
     </code></p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default <code>base</code> for imagemap files</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapBase http://servername/</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p>The <code class="directive">ImapBase</code> directive sets the default
-    <code>base</code> used in the imagemap files. Its value is
-    overridden by a <code>base</code> directive within the imagemap
-    file. If not present, the <code>base</code> defaults to
-    <code>http://<var>servername</var>/</code>.</p>
-
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default action when an imagemap is called with coordinates
-that are not explicitly mapped</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapDefault nocontent</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p>The <code class="directive">ImapDefault</code> directive sets the default
-    <code>default</code> used in the imagemap files. Its value is
-    overridden by a <code>default</code> directive within the
-    imagemap file. If not present, the <code>default</code> action
-    is <code>nocontent</code>, which means that a <code>204 No
-    Content</code> is sent to the client. In this case, the client
-    should continue to display the original page.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action if no coordinates are given when calling
-an imagemap</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ImapMenu formatted</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p>The <code class="directive">ImapMenu</code> directive determines the
-    action taken if an imagemap file is called without valid
-    coordinates.</p>
-
-    <dl>
-      <dt><code>none</code></dt>
-      <dd>If ImapMenu is <code>none</code>, no menu is generated,
-      and the <code>default</code> action is performed.</dd>
-
-      <dt><code>formatted</code></dt>
-      <dd>A <code>formatted</code> menu is the simplest menu.
-      Comments in the imagemap file are ignored. A level one header
-      is printed, then an hrule, then the links each on a separate
-      line. The menu has a consistent, plain look close to that of
-      a directory listing.</dd>
-
-      <dt><code>semiformatted</code></dt>
-      <dd>In the <code>semiformatted</code> menu, comments are
-      printed where they occur in the imagemap file. Blank lines
-      are turned into HTML breaks. No header or hrule is printed,
-      but otherwise the menu is the same as a
-      <code>formatted</code> menu.</dd>
-
-      <dt><code>unformatted</code></dt>
-      <dd>Comments are printed, blank lines are ignored. Nothing is
-      printed that does not appear in the imagemap file. All breaks
-      and headers must be included as comments in the imagemap
-      file. This gives you the most flexibility over the appearance
-      of your menus, but requires you to treat your map files as
-      HTML instead of plaintext.</dd>
-    </dl>
-
 </div>
 </div>
 <div class="bottomlang">
index 1ea8f1b3ca6917be9ac9a880dcddb9cf787b9fa3..7c23ab8b07ec006299c78134b696c2bc8229f8de 100644 (file)
 imagemap</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="imapbase" id="imapbase">Directive</a> <a name="ImapBase" id="ImapBase">ImapBase</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Valeur par défaut de la directive <code>base</code> des
+fichiers imagemap</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ImapBase http://nom_serveur/</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p>La directive <code class="directive">ImapBase</code> permet de définir la
+    valeur par défaut de la directive <code>base</code> des fichiers
+    imagemap. Sa valeur est écrasée par la présence éventuelle d'une
+    directive <code>base</code> dans le fichier imagemap. Si cette
+    directive est absente, la valeur par défaut de la directive
+    <code>base</code> est
+    <code>http://<var>nom_serveur</var>/</code>.</p>
+
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="imapdefault" id="imapdefault">Directive</a> <a name="ImapDefault" id="ImapDefault">ImapDefault</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre par défaut lorsqu'un fichier imagemap
+est invoqué avec des coordonnées qui ne correspondent à aucune
+cible</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ImapDefault nocontent</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p>La directive <code class="directive">ImapDefault</code> permet de définir
+    la valeur par défaut de la directive <code>default</code> utilisée
+    dans les fichiers imagemap. Sa valeur est écrasée par la présence
+    éventuelle d'une directive <code>default</code> dans le fichier
+    imagemap. Si cette directive est absente, l'action associée à
+    <code>default</code> est <code>nocontent</code>, ce qui implique
+    l'envoi d'un code de statut <code>204 No Content</code> au client.
+    Dans ce cas, le client doit continuer à afficher la même page.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="imapmenu" id="imapmenu">Directive</a> <a name="ImapMenu" id="ImapMenu">ImapMenu</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre si aucune coordonnée n'est fournie
+lorsqu'on invoque un fichier imagemap</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ImapMenu formatted</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p>La directive <code class="directive">ImapMenu</code> permet de spécifier
+    l'action à entreprendre lorsqu'un fichier imagemap est invoqué sans
+    coordonnées valides.</p>
+
+    <dl>
+      <dt><code>none</code></dt>
+      <dd>Si l'argument d'ImapMenu est <code>none</code>, aucun menu
+      n'est généré, et l'action <code>default</code> est effectuée.</dd>
+
+      <dt><code>formatted</code></dt>
+      <dd>Le menu <code>formatted</code> est le menu le plus simple. Les
+      commentaires du fichier imagemap sont ignorés. Un en-tête de
+      niveau un est affiché, puis un séparateur horizontal, puis chacun
+      des liens sur une ligne séparée. L'aspect du menu est similaire à
+      celui d'un listing de répertoire.</dd>
+
+      <dt><code>semiformatted</code></dt>
+      <dd>Dans le menu <code>semiformatted</code>, les commentaires sont
+      affichés au moment où ils apparaissent dans le fichier imagemap.
+      Les lignes vides sont interprètées comme des lignes de séparation
+      HTML. Aucun en-tête ni séparateur horizontal n'est affiché. À part
+      ces différences, le menu <code>semiformatted</code> est identique
+      au menu <code>formatted</code>.</dd>
+
+      <dt><code>unformatted</code></dt>
+      <dd>Les commentaires sont affichés et les lignes vides sont
+      ignorées. N'est affiché que ce qui apparait dans le fichier
+      imagemap. Toutes les lignes de séparation HTML et les
+      en-têtes doivent être inclus en tant que commentaires dans le
+      fichier imagemap. Cela vous procure une grande souplesse pour
+      définir l'apparence de vos menus, mais vous oblige à rédiger vos
+      fichiers imagemap en HTML, et non en texte plat.</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="features" id="features">Nouvelles fonctionnalités</a></h2>
 
@@ -308,101 +403,6 @@ imagemap</a></h2>
       &lt;/a&gt;
     </code></p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="imapbase" id="imapbase">Directive</a> <a name="ImapBase" id="ImapBase">ImapBase</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Valeur par défaut de la directive <code>base</code> des
-fichiers imagemap</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ImapBase http://nom_serveur/</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p>La directive <code class="directive">ImapBase</code> permet de définir la
-    valeur par défaut de la directive <code>base</code> des fichiers
-    imagemap. Sa valeur est écrasée par la présence éventuelle d'une
-    directive <code>base</code> dans le fichier imagemap. Si cette
-    directive est absente, la valeur par défaut de la directive
-    <code>base</code> est
-    <code>http://<var>nom_serveur</var>/</code>.</p>
-
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="imapdefault" id="imapdefault">Directive</a> <a name="ImapDefault" id="ImapDefault">ImapDefault</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre par défaut lorsqu'un fichier imagemap
-est invoqué avec des coordonnées qui ne correspondent à aucune
-cible</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ImapDefault nocontent</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p>La directive <code class="directive">ImapDefault</code> permet de définir
-    la valeur par défaut de la directive <code>default</code> utilisée
-    dans les fichiers imagemap. Sa valeur est écrasée par la présence
-    éventuelle d'une directive <code>default</code> dans le fichier
-    imagemap. Si cette directive est absente, l'action associée à
-    <code>default</code> est <code>nocontent</code>, ce qui implique
-    l'envoi d'un code de statut <code>204 No Content</code> au client.
-    Dans ce cas, le client doit continuer à afficher la même page.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="imapmenu" id="imapmenu">Directive</a> <a name="ImapMenu" id="ImapMenu">ImapMenu</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre si aucune coordonnée n'est fournie
-lorsqu'on invoque un fichier imagemap</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ImapMenu formatted</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p>La directive <code class="directive">ImapMenu</code> permet de spécifier
-    l'action à entreprendre lorsqu'un fichier imagemap est invoqué sans
-    coordonnées valides.</p>
-
-    <dl>
-      <dt><code>none</code></dt>
-      <dd>Si l'argument d'ImapMenu est <code>none</code>, aucun menu
-      n'est généré, et l'action <code>default</code> est effectuée.</dd>
-
-      <dt><code>formatted</code></dt>
-      <dd>Le menu <code>formatted</code> est le menu le plus simple. Les
-      commentaires du fichier imagemap sont ignorés. Un en-tête de
-      niveau un est affiché, puis un séparateur horizontal, puis chacun
-      des liens sur une ligne séparée. L'aspect du menu est similaire à
-      celui d'un listing de répertoire.</dd>
-
-      <dt><code>semiformatted</code></dt>
-      <dd>Dans le menu <code>semiformatted</code>, les commentaires sont
-      affichés au moment où ils apparaissent dans le fichier imagemap.
-      Les lignes vides sont interprètées comme des lignes de séparation
-      HTML. Aucun en-tête ni séparateur horizontal n'est affiché. À part
-      ces différences, le menu <code>semiformatted</code> est identique
-      au menu <code>formatted</code>.</dd>
-
-      <dt><code>unformatted</code></dt>
-      <dd>Les commentaires sont affichés et les lignes vides sont
-      ignorées. N'est affiché que ce qui apparait dans le fichier
-      imagemap. Toutes les lignes de séparation HTML et les
-      en-têtes doivent être inclus en tant que commentaires dans le
-      fichier imagemap. Cela vous procure une grande souplesse pour
-      définir l'apparence de vos menus, mais vous oblige à rédiger vos
-      fichiers imagemap en HTML, et non en texte plat.</dd>
-    </dl>
-
 </div>
 </div>
 <div class="bottomlang">
index 9d99a0db363d1a18ffb20a0348410cfcd923b310..e8ea7d8377fd2c6436ff184c4075c5b07f8d679d 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#referencing">¸ÊÆÄÀÏ »ç¿ëÇϱâ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>À̹ÌÁö¸Ê ÆÄÀÏ¿¡¼­ <code>base</code> ±âº»°ª</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ImapBase http://servername/</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p><code class="directive">ImapBase</code> Áö½Ã¾î´Â À̹ÌÁö¸Ê ÆÄÀÏ¿¡¼­
+    »ç¿ëÇÒ <code>base</code> ±âº»°ªÀ» ¼³Á¤ÇÑ´Ù. À̹ÌÁö¸Ê ÆÄÀÏ
+    ¾È¿¡¼­ <code>base</code> Áö½Ã¾î¸¦ »ç¿ëÇϸ頿©±â¼­ ¼³Á¤ÇÑ
+    °ªÀº ¹«½ÃÇÑ´Ù. µÑ ¸ðµÎ ¾ø´Ù¸é, <code>base</code> ±âº»°ªÀº
+    <code>http://<var>servername</var>/</code>ÀÌ´Ù.</p>
+
+<h3>Âü°í</h3>
+<ul>
+<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>À̹ÌÁö¸Ê¿¡ ¾î´À ¿µ¿ª¿¡µµ ÇØ´çÇÏÁö ¾Ê´Â ÁÂÇ¥¸¦ ÁØ
+°æ¿ì ±âº» Çൿ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ImapDefault nocontent</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p><code class="directive">ImapDefault</code> Áö½Ã¾î´Â À̹ÌÁö¸Ê
+    ÆÄÀÏ¿¡¼­ »ç¿ëÇÒ <code>default</code> ±âº»°ªÀ» ¼³Á¤ÇÑ´Ù.
+    À̹ÌÁö¸Ê ÆÄÀÏ ¾È¿¡¼­ <code>default</code> Áö½Ã¾î¸¦ »ç¿ëÇϸé
+    ¿©±â¼­ ¼³Á¤ÇÑ °ªÀº ¹«½ÃÇÑ´Ù. µÑ ¸ðµÎ ¾ø´Ù¸é, <code>default</code>
+    ÇൿÀº Å¬¶óÀÌ¾ðÆ®¿¡°Ô <code>204 No Content</code>¸¦ º¸³»´Â
+    <code>nocontent</code>ÀÌ´Ù. ÀÌ °æ¿ì Å¬¶óÀÌ¾ðÆ®´Â ¿ø·¡ ÆäÀÌÁö¸¦
+    ±×´ë·Î º¸¿©Áà¾ß ÇÑ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ÁÂÇ¥¾øÀÌ À̹ÌÁö¸Ê ¿äû½Ã ÃëÇÒ Çൿ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>Indexes</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_imagemap</td></tr>
+</table>
+    <p><code class="directive">ImapMenu</code> Áö½Ã¾î´Â À̹ÌÁö¸Ê ÆÄÀÏ¿¡
+    À¯È¿ÇÑ ÁÂÇ¥¸¦ ÁÖÁö ¾ÊÀº °æ¿ì ÃëÇÒ ÇൿÀ» °áÁ¤ÇÑ´Ù.</p>
+
+    <dl>
+      <dt><code>none</code></dt>
+      <dd>ImapMenu°¡ <code>none</code>À̸é, ¸Þ´º¸¦ ¸¸µéÁö¾Ê°í
+      <code>default</code> ÇൿÀ» ÃëÇÑ´Ù.</dd>
+
+      <dt><code>formatted</code></dt>
+      <dd><code>formatted</code> ¸Þ´º´Â °¡Àå °£´ÜÇÑ ¸Þ´º´Ù.
+      À̹ÌÁö¸Ê ÆÄÀÏÀÇ ÁÖ¼®Àº ¹«½ÃÇÑ´Ù. °¡Àå Å« Ç¥Á¦¿Í ¼öÁ÷¼±À»
+      Ãâ·ÂÇϰí, ¸µÅ©¸¦ ÇÑÁÙ¾¿ Ãâ·ÂÇÑ´Ù. ¸Þ´º´Â ÀϰüµÇ°í ÆòÀÌÇϸç,
+      µð·ºÅ丮 ¸ñ·Ï°ú Èí»çÇÏ´Ù.</dd>
+
+      <dt><code>semiformatted</code></dt>
+      <dd><code>semiformatted</code> ¸Þ´º´Â À̹ÌÁö¸Ê ÆÄÀÏ¿¡
+      ³ª¿À´Â ÁÖ¼®À» Ãâ·ÂÇÑ´Ù. ºóÁÙÀº HTML Çà¹Ù²ÞÀ¸·Î º¯È¯ÇÑ´Ù.
+      Ç¥Á¦³ª ¼öÁ÷¼±À» ±×¸®Áö ¾ÊÁö¸¸, ³ª¸ÓÁö´Â <code>formatted</code>
+      ¸Þ´º¿Í °°´Ù.</dd>
+
+      <dt><code>unformatted</code></dt>
+      <dd>ÁÖ¼®Àº Ãâ·ÂÇϰí, ºóÁÙÀº ¹«½ÃÇÑ´Ù. À̹ÌÁö¸Ê ÆÄÀÏ¿¡
+      Àִ ³»¿ë¸¸ Ãâ·ÂÇÑ´Ù. À̹ÌÁö¸Ê ÆÄÀÏÀÇ ÁÖ¼®¿¡ ÇÊ¿äÇÑ ¸ðµç
+      Çà¹Ù²Þ°ú Ç¥Á¦¸¦ Àû¾î¾ß ÇÑ´Ù. ¸Þ´ºÀÇ ¿Ü°üÀ» °¡Àå ÀÚÀ¯ÀÚÁ¦·Î
+      ²Ù¹Ð ¼ö ÀÖÁö¸¸, À̹ÌÁö¸Ê ÆÄÀÏÀ» »ç½Ç»ó ÀϹݠ¹®ÀÚÆÄÀÏÀÌ
+      ¾Æ´Ñ HTML·Î ºÁ¾ß ÇÑ´Ù.</dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="features" id="features">»õ·Î¿î ±â´É</a></h2>
 
       &lt;/a&gt;
     </code></p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ImapBase" id="ImapBase">ImapBase</a> <a name="imapbase" id="imapbase">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>À̹ÌÁö¸Ê ÆÄÀÏ¿¡¼­ <code>base</code> ±âº»°ª</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ImapBase map|referer|<var>URL</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ImapBase http://servername/</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p><code class="directive">ImapBase</code> Áö½Ã¾î´Â À̹ÌÁö¸Ê ÆÄÀÏ¿¡¼­
-    »ç¿ëÇÒ <code>base</code> ±âº»°ªÀ» ¼³Á¤ÇÑ´Ù. À̹ÌÁö¸Ê ÆÄÀÏ
-    ¾È¿¡¼­ <code>base</code> Áö½Ã¾î¸¦ »ç¿ëÇϸ頿©±â¼­ ¼³Á¤ÇÑ
-    °ªÀº ¹«½ÃÇÑ´Ù. µÑ ¸ðµÎ ¾ø´Ù¸é, <code>base</code> ±âº»°ªÀº
-    <code>http://<var>servername</var>/</code>ÀÌ´Ù.</p>
-
-<h3>Âü°í</h3>
-<ul>
-<li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ImapDefault" id="ImapDefault">ImapDefault</a> <a name="imapdefault" id="imapdefault">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>À̹ÌÁö¸Ê¿¡ ¾î´À ¿µ¿ª¿¡µµ ÇØ´çÇÏÁö ¾Ê´Â ÁÂÇ¥¸¦ ÁØ
-°æ¿ì ±âº» Çൿ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ImapDefault error|nocontent|map|referer|<var>URL</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ImapDefault nocontent</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p><code class="directive">ImapDefault</code> Áö½Ã¾î´Â À̹ÌÁö¸Ê
-    ÆÄÀÏ¿¡¼­ »ç¿ëÇÒ <code>default</code> ±âº»°ªÀ» ¼³Á¤ÇÑ´Ù.
-    À̹ÌÁö¸Ê ÆÄÀÏ ¾È¿¡¼­ <code>default</code> Áö½Ã¾î¸¦ »ç¿ëÇϸé
-    ¿©±â¼­ ¼³Á¤ÇÑ °ªÀº ¹«½ÃÇÑ´Ù. µÑ ¸ðµÎ ¾ø´Ù¸é, <code>default</code>
-    ÇൿÀº Å¬¶óÀÌ¾ðÆ®¿¡°Ô <code>204 No Content</code>¸¦ º¸³»´Â
-    <code>nocontent</code>ÀÌ´Ù. ÀÌ °æ¿ì Å¬¶óÀÌ¾ðÆ®´Â ¿ø·¡ ÆäÀÌÁö¸¦
-    ±×´ë·Î º¸¿©Áà¾ß ÇÑ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ImapMenu" id="ImapMenu">ImapMenu</a> <a name="imapmenu" id="imapmenu">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ÁÂÇ¥¾øÀÌ À̹ÌÁö¸Ê ¿äû½Ã ÃëÇÒ Çൿ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ImapMenu none|formatted|semiformatted|unformatted</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>Indexes</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_imagemap</td></tr>
-</table>
-    <p><code class="directive">ImapMenu</code> Áö½Ã¾î´Â À̹ÌÁö¸Ê ÆÄÀÏ¿¡
-    À¯È¿ÇÑ ÁÂÇ¥¸¦ ÁÖÁö ¾ÊÀº °æ¿ì ÃëÇÒ ÇൿÀ» °áÁ¤ÇÑ´Ù.</p>
-
-    <dl>
-      <dt><code>none</code></dt>
-      <dd>ImapMenu°¡ <code>none</code>À̸é, ¸Þ´º¸¦ ¸¸µéÁö¾Ê°í
-      <code>default</code> ÇൿÀ» ÃëÇÑ´Ù.</dd>
-
-      <dt><code>formatted</code></dt>
-      <dd><code>formatted</code> ¸Þ´º´Â °¡Àå °£´ÜÇÑ ¸Þ´º´Ù.
-      À̹ÌÁö¸Ê ÆÄÀÏÀÇ ÁÖ¼®Àº ¹«½ÃÇÑ´Ù. °¡Àå Å« Ç¥Á¦¿Í ¼öÁ÷¼±À»
-      Ãâ·ÂÇϰí, ¸µÅ©¸¦ ÇÑÁÙ¾¿ Ãâ·ÂÇÑ´Ù. ¸Þ´º´Â ÀϰüµÇ°í ÆòÀÌÇϸç,
-      µð·ºÅ丮 ¸ñ·Ï°ú Èí»çÇÏ´Ù.</dd>
-
-      <dt><code>semiformatted</code></dt>
-      <dd><code>semiformatted</code> ¸Þ´º´Â À̹ÌÁö¸Ê ÆÄÀÏ¿¡
-      ³ª¿À´Â ÁÖ¼®À» Ãâ·ÂÇÑ´Ù. ºóÁÙÀº HTML Çà¹Ù²ÞÀ¸·Î º¯È¯ÇÑ´Ù.
-      Ç¥Á¦³ª ¼öÁ÷¼±À» ±×¸®Áö ¾ÊÁö¸¸, ³ª¸ÓÁö´Â <code>formatted</code>
-      ¸Þ´º¿Í °°´Ù.</dd>
-
-      <dt><code>unformatted</code></dt>
-      <dd>ÁÖ¼®Àº Ãâ·ÂÇϰí, ºóÁÙÀº ¹«½ÃÇÑ´Ù. À̹ÌÁö¸Ê ÆÄÀÏ¿¡
-      Àִ ³»¿ë¸¸ Ãâ·ÂÇÑ´Ù. À̹ÌÁö¸Ê ÆÄÀÏÀÇ ÁÖ¼®¿¡ ÇÊ¿äÇÑ ¸ðµç
-      Çà¹Ù²Þ°ú Ç¥Á¦¸¦ Àû¾î¾ß ÇÑ´Ù. ¸Þ´ºÀÇ ¿Ü°üÀ» °¡Àå ÀÚÀ¯ÀÚÁ¦·Î
-      ²Ù¹Ð ¼ö ÀÖÁö¸¸, À̹ÌÁö¸Ê ÆÄÀÏÀ» »ç½Ç»ó ÀϹݠ¹®ÀÚÆÄÀÏÀÌ
-      ¾Æ´Ñ HTML·Î ºÁ¾ß ÇÑ´Ù.</dd>
-    </dl>
-
 </div>
 </div>
 <div class="bottomlang">
index df0000eeaf8b5e10637bcf5d5192744194137a31..1a4f2d79501655fbf7a3c3234f295694834804b4 100644 (file)
 <li><a href="../howto/ssi.html">SSI Tutorial</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enabling" id="enabling">Enabling Server-Side Includes</a></h2>
-    
-
-    <p>Server Side Includes are implemented by the
-    <code>INCLUDES</code> <a href="../filter.html">filter</a>. If
-    documents containing server-side include directives are given
-    the extension .shtml, the following directives will make Apache
-    parse them and assign the resulting document the mime type of
-    <code>text/html</code>:</p>
-
-    <pre class="prettyprint lang-config">AddType text/html .shtml
-AddOutputFilter INCLUDES .shtml</pre>
+<div class="directive-section"><h2><a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a> <a name="ssiendtag" id="ssiendtag">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>String that ends an include element</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>This directive changes the string that <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+    looks for to mark the end of an include element.</p>
 
+    <pre class="prettyprint lang-config">SSIEndTag "%&gt;"</pre>
 
-    <p>The following directive must be given for the directories
-    containing the shtml files (typically in a
-    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> section,
-    but this directive is also valid in <code>.htaccess</code> files if
-    <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> <code>Options</code>
-    is set):</p>
 
-    <pre class="prettyprint lang-config">Options +Includes</pre>
 
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a> <a name="ssierrormsg" id="ssierrormsg">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Error message displayed when there is an SSI
+error</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
+directive]"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>The <code class="directive">SSIErrorMsg</code> directive changes the error
+    message displayed when <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> encounters an
+    error. For production servers you may consider changing the default
+    error message to <code>"&lt;!-- Error --&gt;"</code> so that
+    the message is not presented to the user.</p>
 
-    <p>For backwards compatibility, the <code>server-parsed</code>
-    <a href="../handler.html">handler</a> also activates the
-    INCLUDES filter. As well, Apache will activate the INCLUDES
-    filter for any document with mime type
-    <code>text/x-server-parsed-html</code> or
-    <code>text/x-server-parsed-html3</code> (and the resulting
-    output will have the mime type <code>text/html</code>).</p>
+    <p>This directive has the same effect as the <code>&lt;!--#config
+    errmsg=<var>message</var> --&gt;</code> element.</p>
 
-    <p>For more information, see our <a href="../howto/ssi.html">Tutorial on Server Side Includes</a>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="pathinfo" id="pathinfo">PATH_INFO with Server Side Includes</a></h2>
-    
+    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&gt;"</pre>
 
-    <p>Files processed for server-side includes no longer accept
-    requests with <code>PATH_INFO</code> (trailing pathname information)
-    by default.  You can use the <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> directive to
-    configure the server to accept requests with <code>PATH_INFO</code>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="elements" id="elements">Available Elements</a></h2>
-    <p>The document is parsed as an HTML document, with special
-    commands embedded as SGML comments. A command has the syntax: </p>
 
-    <div class="example"><p><code>
-      &lt;!--#<var>element</var> <var>attribute</var>=<var>value</var>
-      <var>attribute</var>=<var>value</var> ... --&gt;
-    </code></p></div>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIETag" id="SSIETag">SSIETag</a> <a name="ssietag" id="ssietag">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls whether ETags are generated by the server.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIETag on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIETag off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.2.15 and later.</td></tr>
+</table>
+      <p>Under normal circumstances, a file filtered by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+        may contain elements that are either dynamically generated, or that may
+        have changed independently of the original file. As a result, by default
+        the server is asked not to generate an <code>ETag</code> header for the
+        response by adding <code>no-etag</code> to the request notes.</p>
 
-    <p>The value will often be enclosed in double quotes, but single
-    quotes (<code>'</code>) and backticks (<code>`</code>) are also
-    possible. Many commands only allow a single attribute-value pair.
-    Note that the comment terminator (<code>--&gt;</code>) should be
-    preceded by whitespace to ensure that it isn't considered part of
-    an SSI token. Note that the leading <code>&lt;!--#</code> is <em>one</em>
-    token and may not contain any whitespaces.</p>
+      <p>The <code class="directive">SSIETag</code> directive suppresses this
+        behaviour, and allows the server to generate an <code>ETag</code> header.
+        This can be used to enable caching of the output. Note that a backend server
+        or dynamic content generator may generate an ETag of its own, ignoring
+        <code>no-etag</code>, and this ETag will be passed by
+        <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> regardless of the value of this setting.
+        <code class="directive">SSIETag</code> can take on the following values:</p>
 
-    <p>The allowed elements are listed in the following table:</p>
+      <dl>
 
-    <table class="bordered">
-    <tr><th>Element</th><th>Description</th></tr>
-    <tr><td><code><a href="#element.config">config</a></code></td>
-        <td>configure output formats</td></tr>
-    <tr><td><code><a href="#element.echo">echo</a></code></td>
-        <td>print variables</td></tr>
-    <tr><td><code><a href="#element.exec">exec</a></code></td>
-        <td>execute external programs</td></tr>
-    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
-        <td>print size of a file</td></tr>
-    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
-        <td>print last modification time of a file</td></tr>
-    <tr><td><code><a href="#element.include">include</a></code></td>
-        <td>include a file</td></tr>
-    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
-        <td>print all available variables</td></tr>
-    <tr><td><code><a href="#element.set">set</a></code></td>
-        <td>set a value of a variable</td></tr>
-    </table>
+        <dt><code>off</code></dt>
+        <dd><code>no-etag</code> will be added to the request notes, and the server
+          is asked not to generate an ETag. Where a server ignores the value of
+          <code>no-etag</code> and generates an ETag anyway, the ETag will be
+          respected.</dd>
 
-    <p>SSI elements may be defined by modules other than
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>. In fact, the <code><a href="#element.exec">exec</a></code> element is provided by
-    <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, and will only be available if this
-    module is loaded.</p>
+        <dt><code>on</code></dt>
+        <dd>Existing ETags will be respected, and ETags generated by the server will
+          be passed on in the response.</dd>
 
-    <h3><a name="element.config" id="element.config">The config Element</a></h3>
-      <p>This command controls various aspects of the parsing. The
-      valid attributes are:</p>
+      </dl>
 
-      <dl>
-      <dt><code>echomsg</code> (<em>Apache 2.1 and later</em>)</dt>
-      <dd>
-      <p>The value is a message that is sent back to the
-      client if the <code><a href="#element.echo">echo</a></code> element
-      attempts to echo an undefined variable. This overrides any <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code> directives.</p>
 
-      <div class="example"><p><code>
-        &lt;!--#config echomsg="[Value Undefined]" --&gt;
-      </code></p></div>
-      </dd>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSILastModified" id="SSILastModified">SSILastModified</a> <a name="ssilastmodified" id="ssilastmodified">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls whether <code>Last-Modified</code> headers are generated by the
+server.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSILastModified on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSILastModified off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.2.15 and later.</td></tr>
+</table>
+      <p>Under normal circumstances, a file filtered by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+        may contain elements that are either dynamically generated, or that may
+        have changed independently of the original file. As a result, by default
+        the <code>Last-Modified</code> header is stripped from the response.</p>
 
-      <dt><code>errmsg</code></dt>
-      <dd><p>The value is a message that is sent back to the
-      client if an error occurs while parsing the
-      document. This overrides any <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code> directives.</p>
-      
-      <div class="example"><p><code>
-       &lt;!--#config errmsg="[Oops, something broke.]" --&gt;
-      </code></p></div>
-      </dd>
+      <p>The <code class="directive">SSILastModified</code> directive overrides this
+        behaviour, and allows the <code>Last-Modified</code> header to be respected
+        if already present, or set if the header is not already present. This can
+        be used to enable caching of the output. <code class="directive">SSILastModified</code>
+        can take on the following values:</p>
 
-      <dt><code>sizefmt</code></dt>
-      <dd><p>The value sets the format to be used when displaying
-      the size of a file. Valid values are <code>bytes</code>
-      for a count in bytes, or <code>abbrev</code> for a count
-      in Kb or Mb as appropriate, for example a size of 1024 bytes
-      will be printed as "1K".</p>
+      <dl>
 
-      <div class="example"><p><code>
-      &lt;!--#config sizefmt="abbrev" --&gt;
-      </code></p></div>
-      </dd>
+        <dt><code>off</code></dt>
+        <dd>The <code>Last-Modified</code> header will be stripped from responses,
+          unless the <code class="directive"><a href="#xbithack">XBitHack</a></code> directive
+          is set to <code>full</code> as described below.</dd>
 
-      <dt><code>timefmt</code></dt>
-      <dd><p>The value is a string to be used by the
-      <code>strftime(3)</code> library routine when printing
-      dates.</p>
-      
-      <div class="example"><p><code>
-      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
-      </code></p></div>
+        <dt><code>on</code></dt>
+        <dd>The <code>Last-Modified</code> header will be respected if already
+          present in a response, and added to the response if the response is a
+          file and the header is missing. The
+          <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> directive
+          takes precedence over <code class="directive"><a href="#xbithack">XBitHack</a></code>.</dd>
 
-      </dd>
-      
       </dl>
-     
 
-    <h3><a name="element.echo" id="element.echo">The echo Element</a></h3>
-      <p>This command prints one of the <a href="#includevars">include
-      variables</a> defined below. If the variable is unset, the result is
-      determined by the <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code> directive. Any dates printed are
-      subject to the currently configured <code>timefmt</code>.</p>
-
-      <p>Attributes:</p>
 
-      <dl>
-      <dt><code>var</code></dt>
-      <dd>The value is the name of the variable to print.</dd>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a> <a name="ssilegacyexprparser" id="ssilegacyexprparser">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable compatibility mode for conditional expressions.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later.</td></tr>
+</table>
+    <p>As of version 2.3.13, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> has switched to the
+    new <a href="../expr.html">ap_expr</a> syntax for conditional expressions
+    in <code>#if</code> flow control elements.  This directive allows to
+    switch to the <a href="#legacyexpr">old syntax</a> which is compatible
+    with Apache HTTPD version 2.2.x and earlier.
+    </p>
 
-      <dt><code>decoding</code></dt>
-      <dd><p>Specifies whether Apache should strip an encoding from
-      the variable before processing the variable further. The default
-      is <code>none</code>, where no decoding will be done. If set to
-      <code>url</code>, then URL decoding (also known as %-encoding;
-      this is appropriate for use within URLs in links, etc.) will be
-      performed. If set to <code>urlencoded</code>,
-      application/x-www-form-urlencoded compatible encoding (found in
-      query strings) will be stripped. If set to <code>base64</code>,
-      base64 will be decoded, and if set to <code>entity</code>, HTML
-      entity encoding will be stripped. Decoding is done prior to any
-      further encoding on the variable. Multiple encodings can be
-      stripped by specifying more than one comma separated encoding.
-      The decoding setting will remain in effect until the next decoding
-      attribute is encountered, or the element ends.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a> <a name="ssistarttag" id="ssistarttag">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>String that starts an include element</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>This directive changes the string that <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+    looks for to mark an include element to process.</p>
 
-      <p>The <code>decoding</code> attribute must <em>precede</em> the
-      corresponding <code>var</code> attribute to be effective.</p>
-      </dd>
+    <p>You may want to use this option if you have 2 servers parsing the
+    output of a file each processing different commands (possibly at
+    different times).</p>
 
-      <dt><code>encoding</code></dt>
-      <dd><p>Specifies how Apache should encode special characters
-      contained in the variable before outputting them. If set
-      to <code>none</code>, no encoding will be done. If set to
-      <code>url</code>, then URL encoding (also known as %-encoding;
-      this is appropriate for use within URLs in links, etc.) will be
-      performed. If set to <code>urlencoded</code>,
-      application/x-www-form-urlencoded compatible encoding will be
-      performed instead, and should be used with query strings. If set
-      to <code>base64</code>, base64 encoding will be performed. At
-      the start of an <code>echo</code> element, the default is set to
-      <code>entity</code>, resulting in entity encoding (which is
-      appropriate in the context of a block-level HTML element,
-      <em>e.g.</em> a paragraph of text). This can be changed by adding
-      an <code>encoding</code> attribute, which will remain in effect
-      until the next <code>encoding</code> attribute is encountered or
-      the element ends, whichever comes first.</p>
+    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
+      SSIEndTag   "%&gt;"</pre>
 
-      <p>The <code>encoding</code> attribute must <em>precede</em> the
-      corresponding <code>var</code> attribute to be effective.</p>
 
-      <div class="warning">
-        In order to avoid cross-site scripting issues, you should
-        <em>always</em> encode user supplied data.
-      </div>
+    <p>The example given above, which also specifies a matching
+    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, will
+    allow you to use SSI directives as shown in the example
+    below:</p>
 
-      <div class="example"><h3>Example</h3><p><code>
-        &lt;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
-      </code></p></div>
-      </dd>
-      </dl>
-     
+    <div class="example"><h3>SSI directives with alternate start and end tags</h3><p><code>
+      &lt;%printenv %&gt;
+    </code></p></div>
 
-    <h3><a name="element.exec" id="element.exec">The exec Element</a></h3>
-      <p>The <code>exec</code> command executes a given shell command or
-      CGI script. It requires <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> to be present
-      in the server. If <code class="directive"><a href="../mod/core.html#options">Options</a></code>
-      <code>IncludesNOEXEC</code> is set, this command is completely
-      disabled. The valid attributes are:</p>
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a> <a name="ssitimeformat" id="ssitimeformat">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the format in which date strings are
+displayed</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSITimeFormat <var>formatstring</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+<p>This directive changes the format in which date strings are displayed
+    when echoing <code>DATE</code> environment variables. The
+    <var>formatstring</var> is as in <code>strftime(3)</code> from the
+    C standard library.</p>
 
-      <dl>
-      <dt><code>cgi</code></dt>
-      <dd><p>The value specifies a (%-encoded) URL-path to
-      the CGI script. If the path does not begin with a slash (/),
-      then it is taken to be relative to the current
-      document. The document referenced by this path is
-      invoked as a CGI script, even if the server would not
-      normally recognize it as such. However, the directory
-      containing the script must be enabled for CGI scripts
-      (with <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
-      or <code class="directive"><a href="../mod/core.html#options">Options</a></code>
-      <code>ExecCGI</code>).</p>
+    <p>This directive has the same effect as the <code>&lt;!--#config
+    timefmt=<var>formatstring</var> --&gt;</code> element.</p>
 
-      <p>The CGI script is given the <code>PATH_INFO</code> and query
-      string (<code>QUERY_STRING</code>) of the original request from the
-      client; these <em>cannot</em> be specified in the URL path. The
-      include variables will be available to the script in addition to
-      the standard <a href="mod_cgi.html">CGI</a> environment.</p>
+    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
 
-      <div class="example"><h3>Example</h3><p><code>
-        &lt;!--#exec cgi="/cgi-bin/example.cgi" --&gt;
-      </code></p></div>
 
-      <p>If the script returns a <code>Location:</code> header instead of
-      output, then this will be translated into an HTML anchor.</p>
+    <p>The above directive would cause times to be displayed in the
+    format "22:26, June 14, 2002".</p>
 
-      <p>The <code><a href="#includevirtual">include virtual</a></code>
-      element should be used in preference to <code>exec cgi</code>. In
-      particular, if you need to pass additional arguments to a CGI program,
-      using the query string, this cannot be done with <code>exec
-      cgi</code>, but can be done with <code>include virtual</code>, as
-      shown here:</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a> <a name="ssiundefinedecho" id="ssiundefinedecho">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>String displayed when an unset variable is echoed</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIUndefinedEcho <var>string</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>This directive changes the string that <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+    displays when a variable is not set and "echoed".</p>
 
-      <div class="example"><p><code>
-        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
-      </code></p></div>
-      </dd>
+    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- undef --&gt;"</pre>
 
-      <dt><code>cmd</code></dt>
-      <dd><p>The server will execute the given string using
-      <code>/bin/sh</code>. The <a href="#includevars">include variables</a> are available to the command, in addition
-      to the usual set of CGI variables.</p>
 
-      <p>The use of <code><a href="#includevirtual">#include virtual</a></code> is almost always prefered to using
-      either <code>#exec cgi</code> or <code>#exec cmd</code>. The former
-      (<code>#include virtual</code>) uses the standard Apache sub-request
-      mechanism to include files or scripts. It is much better tested and
-      maintained.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="XBitHack" id="XBitHack">XBitHack</a> <a name="xbithack" id="xbithack">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Parse SSI directives in files with the execute bit
+set</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>XBitHack on|off|full</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>XBitHack off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>The <code class="directive">XBitHack</code> directive controls the parsing
+    of ordinary html documents. This directive only affects files associated
+    with the <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME-type</a> <code>text/html</code>. <code class="directive">XBitHack</code> can take on the following values:</p>
 
-      <p>In addition, on some platforms, like Win32, and on unix when
-      using <a href="../suexec.html">suexec</a>, you cannot pass arguments
-      to a command in an <code>exec</code> directive, or otherwise include
-      spaces in the command. Thus, while the following will work under a
-      non-suexec configuration on unix, it will not produce the desired
-      result under Win32, or when running suexec:</p>
+    <dl>
+      <dt><code>off</code></dt>
+      <dd>No special treatment of executable files.</dd>
 
-      <div class="example"><p><code>
-        &lt;!--#exec cmd="perl /path/to/perlscript arg1 arg2" --&gt;
-      </code></p></div>
-      </dd>
-      </dl>
-     
+      <dt><code>on</code></dt>
+      <dd>Any <code>text/html</code> file that has the user-execute bit
+      set will be treated as a server-parsed html document.</dd>
 
-    <h3><a name="element.fsize" id="element.fsize">The fsize Element</a></h3>
-      <p>This command prints the size of the specified file, subject
-      to the <code>sizefmt</code> format specification. Attributes:</p>
+      <dt><code>full</code></dt>
+      <dd>As for <code>on</code> but also test the group-execute bit.
+      If it is set, then set the <code>Last-modified</code> date of the
+      returned file to be the last modified time of the file. If
+      it is not set, then no last-modified date is sent. Setting
+      this bit allows clients and proxies to cache the result of
+      the request.
 
-      <dl>
-      <dt><code>file</code></dt>
-      <dd>The value is a path relative to the directory
-      containing the current document being parsed.
+      <div class="note"><h3>Note</h3>
+      <p>You would not want to use the full option, unless you assure the
+      group-execute bit is unset for every SSI script which might <code>#include</code> a CGI or otherwise produces different output on
+      each hit (or could potentially change on subsequent requests).</p>
 
-    <div class="example"><p><code>
-        This file is &lt;!--#fsize file="mod_include.html" --&gt; bytes.
-    </code></p></div>
+      <p>The <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code>
+      directive takes precedence over the
+      <code class="directive"><a href="#xbithack">XBitHack</a></code> directive when
+      <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> is set to
+      <code>on</code>.</p>
+      </div>
 
-    The value of <code>file</code> cannot start with a slash
-    (<code>/</code>), nor can it contain <code>../</code> so as to 
-    refer to a file above the current directory or outside of the
-    document root. Attempting to so will result in the error message:
-    <code>The given path was above the root path</code>.
       </dd>
+    </dl>
 
-      <dt><code>virtual</code></dt>
-      <dd>The value is a (%-encoded) URL-path. If it does not begin with
-      a slash (/) then it is taken to be relative to the current document.
-      Note, that this does <em>not</em> print the size of any CGI output,
-      but the size of the CGI script itself.</dd>
-      </dl>
 
-    <div class="example"><p><code>
-        This file is &lt;!--#fsize virtual="/docs/mod/mod_include.html" --&gt; bytes.
-    </code></p></div>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enabling" id="enabling">Enabling Server-Side Includes</a></h2>
+    
 
-      <p>Note that in many cases these two are exactly the same thing.
-      However, the <code>file</code> attribute doesn't respect URL-space
-      aliases.</p>
-     
+    <p>Server Side Includes are implemented by the
+    <code>INCLUDES</code> <a href="../filter.html">filter</a>. If
+    documents containing server-side include directives are given
+    the extension .shtml, the following directives will make Apache
+    parse them and assign the resulting document the mime type of
+    <code>text/html</code>:</p>
 
-    <h3><a name="element.flastmod" id="element.flastmod">The flastmod Element</a></h3>
-      <p>This command prints the last modification date of the
-      specified file, subject to the <code>timefmt</code> format
-      specification. The attributes are the same as for the
-      <code><a href="#element.fsize">fsize</a></code> command.</p>
-     
+    <pre class="prettyprint lang-config">AddType text/html .shtml
+AddOutputFilter INCLUDES .shtml</pre>
 
-    <h3><a name="element.include" id="element.include">The include Element</a></h3>
-      <p>This command inserts the text of another document or file
-      into the parsed file. Any included file is subject to the usual
-      access control. If the directory containing the parsed file has
-      <a href="core.html#options">Options</a>
-      <code>IncludesNOEXEC</code> set, then only documents with a text
-      <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME-type</a> (<code>text/plain</code>,
-      <code>text/html</code> etc.) will be included. Otherwise CGI
-      scripts are invoked as normal using the complete URL given in
-      the command, including any query string.</p>
 
-      <p>An attribute defines the location of the document, and may
-      appear more than once in an include element; an inclusion is
-      done for each attribute given to the include command in turn.
-      The valid attributes are:</p>
+    <p>The following directive must be given for the directories
+    containing the shtml files (typically in a
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> section,
+    but this directive is also valid in <code>.htaccess</code> files if
+    <code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> <code>Options</code>
+    is set):</p>
 
-      <dl>
-      <dt><code>file</code></dt>
-      <dd>The value is a path relative to the directory
-      containing the current document being parsed. It cannot
-      contain <code>../</code>, nor can it be an absolute path.
-      Therefore, you cannot include files that are outside of the
-      document root, or above the current document in the directory
-      structure. The <code>virtual</code> attribute should always be
-      used in preference to this one.</dd>
+    <pre class="prettyprint lang-config">Options +Includes</pre>
 
-      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
-      <dd><p>The value is a (%-encoded) URL-path. The URL cannot contain a
-      scheme or hostname, only a path and an optional query string. If it
-      does not begin with a slash (/) then it is taken to be relative to the
-      current document.</p>
 
-      <p>A URL is constructed from the attribute, and the output the
-      server would return if the URL were accessed by the client is
-      included in the parsed output. Thus included files can be nested.</p>
+    <p>For backwards compatibility, the <code>server-parsed</code>
+    <a href="../handler.html">handler</a> also activates the
+    INCLUDES filter. As well, Apache will activate the INCLUDES
+    filter for any document with mime type
+    <code>text/x-server-parsed-html</code> or
+    <code>text/x-server-parsed-html3</code> (and the resulting
+    output will have the mime type <code>text/html</code>).</p>
 
-      <p>If the specified URL is a CGI program, the program will be
-      executed and its output inserted in place of the directive in the
-      parsed file. You may include a query string in a CGI url:</p>
+    <p>For more information, see our <a href="../howto/ssi.html">Tutorial on Server Side Includes</a>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="pathinfo" id="pathinfo">PATH_INFO with Server Side Includes</a></h2>
+    
 
-      <div class="example"><p><code>
-        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
-      </code></p></div>
+    <p>Files processed for server-side includes no longer accept
+    requests with <code>PATH_INFO</code> (trailing pathname information)
+    by default.  You can use the <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> directive to
+    configure the server to accept requests with <code>PATH_INFO</code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="elements" id="elements">Available Elements</a></h2>
+    <p>The document is parsed as an HTML document, with special
+    commands embedded as SGML comments. A command has the syntax: </p>
 
-      <p><code>include virtual</code> should be used in preference
-      to <code>exec cgi</code> to include the output of CGI programs
-      into an HTML document.</p>
+    <div class="example"><p><code>
+      &lt;!--#<var>element</var> <var>attribute</var>=<var>value</var>
+      <var>attribute</var>=<var>value</var> ... --&gt;
+    </code></p></div>
 
-      <p>If the <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>
-      directive is correctly configured and valid for this included
-      file, attempts to POST requests to the enclosing HTML document
-      will be passed through to subrequests as POST requests as well.
-      Without the directive, all subrequests are processed as GET
-      requests.</p>
+    <p>The value will often be enclosed in double quotes, but single
+    quotes (<code>'</code>) and backticks (<code>`</code>) are also
+    possible. Many commands only allow a single attribute-value pair.
+    Note that the comment terminator (<code>--&gt;</code>) should be
+    preceded by whitespace to ensure that it isn't considered part of
+    an SSI token. Note that the leading <code>&lt;!--#</code> is <em>one</em>
+    token and may not contain any whitespaces.</p>
+
+    <p>The allowed elements are listed in the following table:</p>
+
+    <table class="bordered">
+    <tr><th>Element</th><th>Description</th></tr>
+    <tr><td><code><a href="#element.config">config</a></code></td>
+        <td>configure output formats</td></tr>
+    <tr><td><code><a href="#element.echo">echo</a></code></td>
+        <td>print variables</td></tr>
+    <tr><td><code><a href="#element.exec">exec</a></code></td>
+        <td>execute external programs</td></tr>
+    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
+        <td>print size of a file</td></tr>
+    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
+        <td>print last modification time of a file</td></tr>
+    <tr><td><code><a href="#element.include">include</a></code></td>
+        <td>include a file</td></tr>
+    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
+        <td>print all available variables</td></tr>
+    <tr><td><code><a href="#element.set">set</a></code></td>
+        <td>set a value of a variable</td></tr>
+    </table>
+
+    <p>SSI elements may be defined by modules other than
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>. In fact, the <code><a href="#element.exec">exec</a></code> element is provided by
+    <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, and will only be available if this
+    module is loaded.</p>
+
+    <h3><a name="element.config" id="element.config">The config Element</a></h3>
+      <p>This command controls various aspects of the parsing. The
+      valid attributes are:</p>
+
+      <dl>
+      <dt><code>echomsg</code> (<em>Apache 2.1 and later</em>)</dt>
+      <dd>
+      <p>The value is a message that is sent back to the
+      client if the <code><a href="#element.echo">echo</a></code> element
+      attempts to echo an undefined variable. This overrides any <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code> directives.</p>
 
+      <div class="example"><p><code>
+        &lt;!--#config echomsg="[Value Undefined]" --&gt;
+      </code></p></div>
       </dd>
 
-      <dt><code>onerror</code></dt>
-      <dd><p>The value is a (%-encoded) URL-path which is shown should a
-      previous attempt to include a file or virtual attribute failed.
-      To be effective, this attribute must be specified after the
-      file or virtual attributes being covered. If the attempt to
-      include the onerror path fails, or if onerror is not specified, the
-      default error message will be included.</p>
+      <dt><code>errmsg</code></dt>
+      <dd><p>The value is a message that is sent back to the
+      client if an error occurs while parsing the
+      document. This overrides any <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code> directives.</p>
+      
+      <div class="example"><p><code>
+       &lt;!--#config errmsg="[Oops, something broke.]" --&gt;
+      </code></p></div>
+      </dd>
+
+      <dt><code>sizefmt</code></dt>
+      <dd><p>The value sets the format to be used when displaying
+      the size of a file. Valid values are <code>bytes</code>
+      for a count in bytes, or <code>abbrev</code> for a count
+      in Kb or Mb as appropriate, for example a size of 1024 bytes
+      will be printed as "1K".</p>
 
       <div class="example"><p><code>
-        # Simple example<br />
-        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&gt;
+      &lt;!--#config sizefmt="abbrev" --&gt;
       </code></p></div>
+      </dd>
 
+      <dt><code>timefmt</code></dt>
+      <dd><p>The value is a string to be used by the
+      <code>strftime(3)</code> library routine when printing
+      dates.</p>
+      
       <div class="example"><p><code>
-        # Dedicated onerror paths<br />
-        &lt;!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" --&gt;
+      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
       </code></p></div>
 
       </dd>
+      
       </dl>
      
 
-    <h3><a name="element.printenv" id="element.printenv">The printenv Element</a></h3>
-      <p>This prints out a plain text listing of all existing variables and
-      their values. Special characters are entity encoded (see the <code><a href="#element.echo">echo</a></code> element for details)
-      before being output. There are no attributes.</p>
-
-      <div class="example"><h3>Example</h3><p><code>
-        &lt;pre&gt;
-          &lt;!--#printenv --&gt;
-        &lt;/pre&gt;
-      </code></p></div>
-     
+    <h3><a name="element.echo" id="element.echo">The echo Element</a></h3>
+      <p>This command prints one of the <a href="#includevars">include
+      variables</a> defined below. If the variable is unset, the result is
+      determined by the <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code> directive. Any dates printed are
+      subject to the currently configured <code>timefmt</code>.</p>
 
-    <h3><a name="element.set" id="element.set">The set Element</a></h3>
-      <p>This sets the value of a variable. Attributes:</p>
+      <p>Attributes:</p>
 
       <dl>
       <dt><code>var</code></dt>
-      <dd>The name of the variable to set.</dd>
-
-      <dt><code>value</code></dt>
-      <dd>The value to give a variable.</dd>
+      <dd>The value is the name of the variable to print.</dd>
 
       <dt><code>decoding</code></dt>
       <dd><p>Specifies whether Apache should strip an encoding from
       the variable before processing the variable further. The default
       is <code>none</code>, where no decoding will be done. If set to
-      <code>url</code>, <code>urlencoded</code>, <code>base64</code>
-      or <code>entity</code>, URL decoding,
-      application/x-www-form-urlencoded decoding, base64 decoding or HTML
-      entity decoding will be performed respectively. More than one
-      decoding can be specified by separating with commas. The decoding
-      setting will remain in effect until the next decoding attribute
-      is encountered, or the element ends. The <code>decoding</code>
-      attribute must <em>precede</em> the corresponding
-      <code>var</code> attribute to be effective.</p>
+      <code>url</code>, then URL decoding (also known as %-encoding;
+      this is appropriate for use within URLs in links, etc.) will be
+      performed. If set to <code>urlencoded</code>,
+      application/x-www-form-urlencoded compatible encoding (found in
+      query strings) will be stripped. If set to <code>base64</code>,
+      base64 will be decoded, and if set to <code>entity</code>, HTML
+      entity encoding will be stripped. Decoding is done prior to any
+      further encoding on the variable. Multiple encodings can be
+      stripped by specifying more than one comma separated encoding.
+      The decoding setting will remain in effect until the next decoding
+      attribute is encountered, or the element ends.</p>
+
+      <p>The <code>decoding</code> attribute must <em>precede</em> the
+      corresponding <code>var</code> attribute to be effective.</p>
       </dd>
 
       <dt><code>encoding</code></dt>
       <dd><p>Specifies how Apache should encode special characters
-      contained in the variable before setting them. The default is
-      <code>none</code>, where no encoding will be done. If set to
-      <code>url</code>, <code>urlencoding</code>, <code>base64</code>
-      or <code>entity</code>, URL encoding,
-      application/x-www-form-urlencoded encoding, base64 encoding or
-      HTML entity encoding will be performed respectively. More than
-      one encoding can be specified by separating with commas. The
-      encoding setting will remain in effect until the next encoding
-      attribute is encountered, or the element ends. The
-      <code>encoding</code> attribute must <em>precede</em> the
-      corresponding <code>var</code> attribute to be effective.
-      Encodings are applied after all decodings have been
-      stripped.</p>
-      </dd>
-      </dl>
+      contained in the variable before outputting them. If set
+      to <code>none</code>, no encoding will be done. If set to
+      <code>url</code>, then URL encoding (also known as %-encoding;
+      this is appropriate for use within URLs in links, etc.) will be
+      performed. If set to <code>urlencoded</code>,
+      application/x-www-form-urlencoded compatible encoding will be
+      performed instead, and should be used with query strings. If set
+      to <code>base64</code>, base64 encoding will be performed. At
+      the start of an <code>echo</code> element, the default is set to
+      <code>entity</code>, resulting in entity encoding (which is
+      appropriate in the context of a block-level HTML element,
+      <em>e.g.</em> a paragraph of text). This can be changed by adding
+      an <code>encoding</code> attribute, which will remain in effect
+      until the next <code>encoding</code> attribute is encountered or
+      the element ends, whichever comes first.</p>
+
+      <p>The <code>encoding</code> attribute must <em>precede</em> the
+      corresponding <code>var</code> attribute to be effective.</p>
+
+      <div class="warning">
+        In order to avoid cross-site scripting issues, you should
+        <em>always</em> encode user supplied data.
+      </div>
 
       <div class="example"><h3>Example</h3><p><code>
-        &lt;!--#set var="category" value="help" --&gt;
+        &lt;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
       </code></p></div>
+      </dd>
+      </dl>
      
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="includevars" id="includevars">Include Variables</a></h2>
-    
 
-    <p>In addition to the variables in the standard CGI environment,
-    these are available for the <code>echo</code> command, for
-    <code>if</code> and <code>elif</code>, and to any program
-    invoked by the document.</p>
+    <h3><a name="element.exec" id="element.exec">The exec Element</a></h3>
+      <p>The <code>exec</code> command executes a given shell command or
+      CGI script. It requires <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> to be present
+      in the server. If <code class="directive"><a href="../mod/core.html#options">Options</a></code>
+      <code>IncludesNOEXEC</code> is set, this command is completely
+      disabled. The valid attributes are:</p>
 
-    <dl>
-      <dt><code>DATE_GMT</code></dt>
-      <dd>The current date in Greenwich Mean Time.</dd>
+      <dl>
+      <dt><code>cgi</code></dt>
+      <dd><p>The value specifies a (%-encoded) URL-path to
+      the CGI script. If the path does not begin with a slash (/),
+      then it is taken to be relative to the current
+      document. The document referenced by this path is
+      invoked as a CGI script, even if the server would not
+      normally recognize it as such. However, the directory
+      containing the script must be enabled for CGI scripts
+      (with <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
+      or <code class="directive"><a href="../mod/core.html#options">Options</a></code>
+      <code>ExecCGI</code>).</p>
 
-      <dt><code>DATE_LOCAL</code></dt>
-      <dd>The current date in the local time zone.</dd>
+      <p>The CGI script is given the <code>PATH_INFO</code> and query
+      string (<code>QUERY_STRING</code>) of the original request from the
+      client; these <em>cannot</em> be specified in the URL path. The
+      include variables will be available to the script in addition to
+      the standard <a href="mod_cgi.html">CGI</a> environment.</p>
 
-      <dt><code>DOCUMENT_NAME</code></dt>
-      <dd>The filename (excluding directories) of the document
-      requested by the user.</dd>
+      <div class="example"><h3>Example</h3><p><code>
+        &lt;!--#exec cgi="/cgi-bin/example.cgi" --&gt;
+      </code></p></div>
 
-      <dt><code>DOCUMENT_URI</code></dt>
-      <dd>The (%-decoded) URL path of the document requested by the
-      user. Note that in the case of nested include files, this is
-      <em>not</em> the URL for the current document.  Note also that
-      if the URL is modified internally (e.g. by an <code class="directive"><a href="../mod/mod_alias.html#alias">alias</a></code> or <code class="directive"><a href="../mod/mod_dir.html#directoryindex">directoryindex</a></code>), the modified
-      URL is shown.</dd>
+      <p>If the script returns a <code>Location:</code> header instead of
+      output, then this will be translated into an HTML anchor.</p>
 
-      <dt><code>LAST_MODIFIED</code></dt>
-      <dd>The last modification date of the document requested by
-      the user.</dd>
+      <p>The <code><a href="#includevirtual">include virtual</a></code>
+      element should be used in preference to <code>exec cgi</code>. In
+      particular, if you need to pass additional arguments to a CGI program,
+      using the query string, this cannot be done with <code>exec
+      cgi</code>, but can be done with <code>include virtual</code>, as
+      shown here:</p>
 
-      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
-      <dd>If a query string is present, this variable contains the
-      (%-decoded) query string, which is <em>escaped</em> for shell
-      usage (special characters like <code>&amp;</code> etc. are
-      preceded by backslashes).</dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="substitution" id="substitution">Variable Substitution</a></h2>
+      <div class="example"><p><code>
+        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
+      </code></p></div>
+      </dd>
 
-    <p>Variable substitution is done within quoted strings in most
-    cases where they may reasonably occur as an argument to an SSI
-    directive. This includes the <code>config</code>,
-    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
-    <code>include</code>, <code>echo</code>, and <code>set</code>
-    directives. If <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> is set to <code>on</code>,
-    substitution also occurs in the arguments to conditional operators.
-    You can insert a literal dollar sign into the string using backslash
-    quoting:</p>
+      <dt><code>cmd</code></dt>
+      <dd><p>The server will execute the given string using
+      <code>/bin/sh</code>. The <a href="#includevars">include variables</a> are available to the command, in addition
+      to the usual set of CGI variables.</p>
 
-    <div class="example"><p><code>
-      &lt;!--#set var="cur" value="\$test" --&gt;
-    </code></p></div>
+      <p>The use of <code><a href="#includevirtual">#include virtual</a></code> is almost always prefered to using
+      either <code>#exec cgi</code> or <code>#exec cmd</code>. The former
+      (<code>#include virtual</code>) uses the standard Apache sub-request
+      mechanism to include files or scripts. It is much better tested and
+      maintained.</p>
 
-    <p>If a variable reference needs to be substituted in the
-    middle of a character sequence that might otherwise be
-    considered a valid identifier in its own right, it can be
-    disambiguated by enclosing the reference in braces,
-    <em>a la</em> shell substitution:</p>
+      <p>In addition, on some platforms, like Win32, and on unix when
+      using <a href="../suexec.html">suexec</a>, you cannot pass arguments
+      to a command in an <code>exec</code> directive, or otherwise include
+      spaces in the command. Thus, while the following will work under a
+      non-suexec configuration on unix, it will not produce the desired
+      result under Win32, or when running suexec:</p>
+
+      <div class="example"><p><code>
+        &lt;!--#exec cmd="perl /path/to/perlscript arg1 arg2" --&gt;
+      </code></p></div>
+      </dd>
+      </dl>
+     
+
+    <h3><a name="element.fsize" id="element.fsize">The fsize Element</a></h3>
+      <p>This command prints the size of the specified file, subject
+      to the <code>sizefmt</code> format specification. Attributes:</p>
+
+      <dl>
+      <dt><code>file</code></dt>
+      <dd>The value is a path relative to the directory
+      containing the current document being parsed.
 
     <div class="example"><p><code>
-      &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
+        This file is &lt;!--#fsize file="mod_include.html" --&gt; bytes.
     </code></p></div>
 
-    <p>This will result in the <code>Zed</code> variable being set
-    to "<code>X_Y</code>" if <code>REMOTE_HOST</code> is
-    "<code>X</code>" and <code>REQUEST_METHOD</code> is
-    "<code>Y</code>".</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="flowctrl" id="flowctrl">Flow Control Elements</a></h2>
-    
+    The value of <code>file</code> cannot start with a slash
+    (<code>/</code>), nor can it contain <code>../</code> so as to 
+    refer to a file above the current directory or outside of the
+    document root. Attempting to so will result in the error message:
+    <code>The given path was above the root path</code>.
+      </dd>
 
-    <p>The basic flow control elements are:</p>
+      <dt><code>virtual</code></dt>
+      <dd>The value is a (%-encoded) URL-path. If it does not begin with
+      a slash (/) then it is taken to be relative to the current document.
+      Note, that this does <em>not</em> print the size of any CGI output,
+      but the size of the CGI script itself.</dd>
+      </dl>
 
     <div class="example"><p><code>
-      &lt;!--#if expr="<var>test_condition</var>" --&gt;<br />
-      &lt;!--#elif expr="<var>test_condition</var>" --&gt;<br />
-      &lt;!--#else --&gt;<br />
-      &lt;!--#endif --&gt;
+        This file is &lt;!--#fsize virtual="/docs/mod/mod_include.html" --&gt; bytes.
     </code></p></div>
 
-    <p>The <code>if</code> element works like an if statement in a
-    programming language. The test condition is evaluated and if
-    the result is true, then the text until the next <code>elif</code>,
-    <code>else</code> or <code>endif</code> element is included in the
-    output stream.</p>
+      <p>Note that in many cases these two are exactly the same thing.
+      However, the <code>file</code> attribute doesn't respect URL-space
+      aliases.</p>
+     
 
-    <p>The <code>elif</code> or <code>else</code> statements are used
-    to put text into the output stream if the original
-    <var>test_condition</var> was false. These elements are optional.</p>
+    <h3><a name="element.flastmod" id="element.flastmod">The flastmod Element</a></h3>
+      <p>This command prints the last modification date of the
+      specified file, subject to the <code>timefmt</code> format
+      specification. The attributes are the same as for the
+      <code><a href="#element.fsize">fsize</a></code> command.</p>
+     
 
-    <p>The <code>endif</code> element ends the <code>if</code> element
-    and is required.</p>
+    <h3><a name="element.include" id="element.include">The include Element</a></h3>
+      <p>This command inserts the text of another document or file
+      into the parsed file. Any included file is subject to the usual
+      access control. If the directory containing the parsed file has
+      <a href="core.html#options">Options</a>
+      <code>IncludesNOEXEC</code> set, then only documents with a text
+      <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME-type</a> (<code>text/plain</code>,
+      <code>text/html</code> etc.) will be included. Otherwise CGI
+      scripts are invoked as normal using the complete URL given in
+      the command, including any query string.</p>
 
-    <p><var>test_condition</var> is a boolean expression which follows the
-    <a href="../expr.html">ap_expr</a> syntax. The syntax can be changed
-    to be compatible with Apache HTTPD 2.2.x using <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>.</p>
+      <p>An attribute defines the location of the document, and may
+      appear more than once in an include element; an inclusion is
+      done for each attribute given to the include command in turn.
+      The valid attributes are:</p>
 
-    <p>The SSI variables set with the <code>var</code> element are exported
-    into the request environment and can be accessed with the
-    <code>reqenv</code> function. As a short-cut, the function name
-    <code>v</code> is also available inside <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
+      <dl>
+      <dt><code>file</code></dt>
+      <dd>The value is a path relative to the directory
+      containing the current document being parsed. It cannot
+      contain <code>../</code>, nor can it be an absolute path.
+      Therefore, you cannot include files that are outside of the
+      document root, or above the current document in the directory
+      structure. The <code>virtual</code> attribute should always be
+      used in preference to this one.</dd>
 
-    <p>The below example will print "from local net" if client IP address
-    belongs to the 10.0.0.0/8 subnet.</p>
+      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
+      <dd><p>The value is a (%-encoded) URL-path. The URL cannot contain a
+      scheme or hostname, only a path and an optional query string. If it
+      does not begin with a slash (/) then it is taken to be relative to the
+      current document.</p>
 
-    <div class="example"><p><code>
-      &lt;!--#if expr='-R "10.0.0.0/8"' --&gt;<br />
-      <span class="indent">
-        from local net<br />
-      </span>
-      &lt;!--#else --&gt;<br />
-      <span class="indent">
-        from somewhere else<br />
-      </span>
-      &lt;!--#endif --&gt;
-    </code></p></div>
+      <p>A URL is constructed from the attribute, and the output the
+      server would return if the URL were accessed by the client is
+      included in the parsed output. Thus included files can be nested.</p>
 
-    <p>The below example will print "foo is bar" if the variable
-    <code>foo</code> is set to the value "bar".</p>
+      <p>If the specified URL is a CGI program, the program will be
+      executed and its output inserted in place of the directive in the
+      parsed file. You may include a query string in a CGI url:</p>
 
-    <div class="example"><p><code>
-      &lt;!--#if expr='v("foo") = "bar"' --&gt;<br />
-      <span class="indent">
-        foo is bar<br />
-      </span>
-      &lt;!--#endif --&gt;
-    </code></p></div>
+      <div class="example"><p><code>
+        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
+      </code></p></div>
 
-    <div class="note"><h3>Reference Documentation</h3>
-    <p>See also: <a href="../expr.html">Expressions in Apache HTTP Server</a>,
-    for a complete reference and examples. The <em>restricted</em> functions
-    are not available inside <code class="module"><a href="../mod/mod_include.html">mod_include</a></code></p>
-    </div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="legacyexpr" id="legacyexpr">Legacy expression syntax</a></h2>
-    
+      <p><code>include virtual</code> should be used in preference
+      to <code>exec cgi</code> to include the output of CGI programs
+      into an HTML document.</p>
 
-    <p>This section describes the syntax of the <code>#if expr</code>
-    element if <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>
-    is set to <code>on</code>.</p>
+      <p>If the <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code>
+      directive is correctly configured and valid for this included
+      file, attempts to POST requests to the enclosing HTML document
+      will be passed through to subrequests as POST requests as well.
+      Without the directive, all subrequests are processed as GET
+      requests.</p>
 
-    <dl>
-      <dt><code><var>string</var></code></dt>
-      <dd>true if <var>string</var> is not empty</dd>
+      </dd>
 
-      <dt><code><var>-A string</var></code></dt>
-      <dd><p>true if the URL represented by the string is accessible by
-      configuration, false otherwise. This is useful where content on a
-      page is to be hidden from users who are not authorized to view the
-      URL, such as a link to that URL. Note that the URL is only tested
-      for whether access would be granted, not whether the URL exists.</p>
+      <dt><code>onerror</code></dt>
+      <dd><p>The value is a (%-encoded) URL-path which is shown should a
+      previous attempt to include a file or virtual attribute failed.
+      To be effective, this attribute must be specified after the
+      file or virtual attributes being covered. If the attempt to
+      include the onerror path fails, or if onerror is not specified, the
+      default error message will be included.</p>
 
-      <div class="example"><h3>Example</h3><p><code>
-        &lt;!--#if expr="-A /private" --&gt;<br />
-        <span class="indent">
-          Click &lt;a href="/private"&gt;here&lt;/a&gt; to access private
-          information.<br />
-        </span>
-        &lt;!--#endif --&gt;
+      <div class="example"><p><code>
+        # Simple example<br />
+        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&gt;
       </code></p></div>
-      </dd>
 
-      <dt><code><var>string1</var> = <var>string2</var><br />
-      <var>string1</var> == <var>string2</var><br />
-      <var>string1</var> != <var>string2</var></code></dt>
+      <div class="example"><p><code>
+        # Dedicated onerror paths<br />
+        &lt;!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" --&gt;
+      </code></p></div>
 
-      <dd><p>Compare <var>string1</var> with <var>string2</var>. If
-      <var>string2</var> has the form <code>/<var>string2</var>/</code>
-      then it is treated as a regular expression. Regular expressions are
-      implemented by the <a href="http://www.pcre.org">PCRE</a> engine and
-      have the same syntax as those in <a href="http://www.perl.com">perl
-      5</a>. Note that <code>==</code> is just an alias for <code>=</code>
-      and behaves exactly the same way.</p>
+      </dd>
+      </dl>
+     
 
-      <p>If you are matching positive (<code>=</code> or <code>==</code>), you
-      can capture grouped parts of the regular expression. The captured parts
-      are stored in the special variables <code>$1</code> ..
-      <code>$9</code>. The whole string matched by the regular expression is
-      stored in the special variable <code>$0</code></p>
+    <h3><a name="element.printenv" id="element.printenv">The printenv Element</a></h3>
+      <p>This prints out a plain text listing of all existing variables and
+      their values. Special characters are entity encoded (see the <code><a href="#element.echo">echo</a></code> element for details)
+      before being output. There are no attributes.</p>
 
       <div class="example"><h3>Example</h3><p><code>
-        &lt;!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --&gt;<br />
-        <span class="indent">
-          &lt;!--#set var="session" value="$1" --&gt;<br />
-        </span>
-        &lt;!--#endif --&gt;
+        &lt;pre&gt;
+          &lt;!--#printenv --&gt;
+        &lt;/pre&gt;
       </code></p></div>
-      </dd>
-
-      <dt><code><var>string1</var> &lt; <var>string2</var><br />
-       <var>string1</var> &lt;= <var>string2</var><br />
-       <var>string1</var> &gt; <var>string2</var><br />
-       <var>string1</var> &gt;= <var>string2</var></code></dt>
-
-      <dd>Compare <var>string1</var> with <var>string2</var>. Note, that
-      strings are compared <em>literally</em> (using
-      <code>strcmp(3)</code>). Therefore the string "100" is less than
-      "20".</dd>
-
-      <dt><code>( <var>test_condition</var> )</code></dt>
-      <dd>true if <var>test_condition</var> is true</dd>
-
-      <dt><code>! <var>test_condition</var></code></dt>
-      <dd>true if <var>test_condition</var> is false</dd>
-
-      <dt><code><var>test_condition1</var> &amp;&amp;
-        <var>test_condition2</var></code></dt>
-      <dd>true if both <var>test_condition1</var> and
-      <var>test_condition2</var> are true</dd>
-
-      <dt><code><var>test_condition1</var> ||
-        <var>test_condition2</var></code></dt>
-      <dd>true if either <var>test_condition1</var> or
-      <var>test_condition2</var> is true</dd>
-    </dl>
-
-    <p>"<code>=</code>" and "<code>!=</code>" bind more tightly than
-    "<code>&amp;&amp;</code>" and "<code>||</code>". "<code>!</code>" binds
-    most tightly. Thus, the following are equivalent:</p>
+     
 
-    <div class="example"><p><code>
-      &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;<br />
-      &lt;!--#if expr="($a = test1) &amp;&amp; ($b = test2)" --&gt;
-    </code></p></div>
+    <h3><a name="element.set" id="element.set">The set Element</a></h3>
+      <p>This sets the value of a variable. Attributes:</p>
 
-    <p>The boolean operators <code>&amp;&amp;</code> and <code>||</code>
-    share the same priority. So if you want to bind such an operator more
-    tightly, you should use parentheses.</p>
+      <dl>
+      <dt><code>var</code></dt>
+      <dd>The name of the variable to set.</dd>
 
-    <p>Anything that's not recognized as a variable or an operator
-    is treated as a string. Strings can also be quoted:
-    <code>'string'</code>. Unquoted strings can't contain whitespace
-    (blanks and tabs) because it is used to separate tokens such as
-    variables. If multiple strings are found in a row, they are
-    concatenated using blanks. So,</p>
+      <dt><code>value</code></dt>
+      <dd>The value to give a variable.</dd>
 
-    <div class="example"><p><code><var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var></code> results in <code><var>string1</var>&nbsp;<var>string2</var></code><br />
-      <br />
-      and<br />
-      <br />
-      <code>'<var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var>'</code> results in <code><var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var></code>.</p></div>
+      <dt><code>decoding</code></dt>
+      <dd><p>Specifies whether Apache should strip an encoding from
+      the variable before processing the variable further. The default
+      is <code>none</code>, where no decoding will be done. If set to
+      <code>url</code>, <code>urlencoded</code>, <code>base64</code>
+      or <code>entity</code>, URL decoding,
+      application/x-www-form-urlencoded decoding, base64 decoding or HTML
+      entity decoding will be performed respectively. More than one
+      decoding can be specified by separating with commas. The decoding
+      setting will remain in effect until the next decoding attribute
+      is encountered, or the element ends. The <code>decoding</code>
+      attribute must <em>precede</em> the corresponding
+      <code>var</code> attribute to be effective.</p>
+      </dd>
 
-    <div class="note"><h3>Optimization of Boolean Expressions</h3>
-      <p>If the expressions become more complex and slow down processing
-      significantly, you can try to optimize them according to the
-      evaluation rules:</p>
-      <ul>
-      <li>Expressions are evaluated from left to right</li>
-      <li>Binary boolean operators (<code>&amp;&amp;</code> and <code>||</code>)
-          are short circuited wherever possible. In conclusion with the rule
-          above that means, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> evaluates at first
-          the left expression. If the left result is sufficient to determine
-          the end result, processing stops here. Otherwise it evaluates the
-          right side and computes the end result from both left and right
-          results.</li>
-      <li>Short circuit evaluation is turned off as long as there are regular
-          expressions to deal with. These must be evaluated to fill in the
-          backreference variables (<code>$1</code> .. <code>$9</code>).</li>
-      </ul>
-      <p>If you want to look how a particular expression is handled, you can
-      recompile <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> using the
-      <code>-DDEBUG_INCLUDE</code> compiler option. This inserts for every
-      parsed expression tokenizer information, the parse tree and how it is
-      evaluated into the output sent to the client.</p>
-    </div>
+      <dt><code>encoding</code></dt>
+      <dd><p>Specifies how Apache should encode special characters
+      contained in the variable before setting them. The default is
+      <code>none</code>, where no encoding will be done. If set to
+      <code>url</code>, <code>urlencoding</code>, <code>base64</code>
+      or <code>entity</code>, URL encoding,
+      application/x-www-form-urlencoded encoding, base64 encoding or
+      HTML entity encoding will be performed respectively. More than
+      one encoding can be specified by separating with commas. The
+      encoding setting will remain in effect until the next encoding
+      attribute is encountered, or the element ends. The
+      <code>encoding</code> attribute must <em>precede</em> the
+      corresponding <code>var</code> attribute to be effective.
+      Encodings are applied after all decodings have been
+      stripped.</p>
+      </dd>
+      </dl>
 
-    <div class="note"><h3>Escaping slashes in regex strings</h3>
-     <p>All slashes which are not intended to act as delimiters in your regex must
-     be escaped.  This is regardless of their meaning to the regex engine.</p>
-    </div>
+      <div class="example"><h3>Example</h3><p><code>
+        &lt;!--#set var="category" value="help" --&gt;
+      </code></p></div>
+     
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="includevars" id="includevars">Include Variables</a></h2>
+    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a> <a name="ssiendtag" id="ssiendtag">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>String that ends an include element</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>This directive changes the string that <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-    looks for to mark the end of an include element.</p>
+    <p>In addition to the variables in the standard CGI environment,
+    these are available for the <code>echo</code> command, for
+    <code>if</code> and <code>elif</code>, and to any program
+    invoked by the document.</p>
 
-    <pre class="prettyprint lang-config">SSIEndTag "%&gt;"</pre>
+    <dl>
+      <dt><code>DATE_GMT</code></dt>
+      <dd>The current date in Greenwich Mean Time.</dd>
 
+      <dt><code>DATE_LOCAL</code></dt>
+      <dd>The current date in the local time zone.</dd>
 
+      <dt><code>DOCUMENT_NAME</code></dt>
+      <dd>The filename (excluding directories) of the document
+      requested by the user.</dd>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a> <a name="ssierrormsg" id="ssierrormsg">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Error message displayed when there is an SSI
-error</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
-directive]"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>The <code class="directive">SSIErrorMsg</code> directive changes the error
-    message displayed when <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> encounters an
-    error. For production servers you may consider changing the default
-    error message to <code>"&lt;!-- Error --&gt;"</code> so that
-    the message is not presented to the user.</p>
+      <dt><code>DOCUMENT_URI</code></dt>
+      <dd>The (%-decoded) URL path of the document requested by the
+      user. Note that in the case of nested include files, this is
+      <em>not</em> the URL for the current document.  Note also that
+      if the URL is modified internally (e.g. by an <code class="directive"><a href="../mod/mod_alias.html#alias">alias</a></code> or <code class="directive"><a href="../mod/mod_dir.html#directoryindex">directoryindex</a></code>), the modified
+      URL is shown.</dd>
 
-    <p>This directive has the same effect as the <code>&lt;!--#config
-    errmsg=<var>message</var> --&gt;</code> element.</p>
+      <dt><code>LAST_MODIFIED</code></dt>
+      <dd>The last modification date of the document requested by
+      the user.</dd>
 
-    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&gt;"</pre>
+      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
+      <dd>If a query string is present, this variable contains the
+      (%-decoded) query string, which is <em>escaped</em> for shell
+      usage (special characters like <code>&amp;</code> etc. are
+      preceded by backslashes).</dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="substitution" id="substitution">Variable Substitution</a></h2>
 
+    <p>Variable substitution is done within quoted strings in most
+    cases where they may reasonably occur as an argument to an SSI
+    directive. This includes the <code>config</code>,
+    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
+    <code>include</code>, <code>echo</code>, and <code>set</code>
+    directives. If <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> is set to <code>on</code>,
+    substitution also occurs in the arguments to conditional operators.
+    You can insert a literal dollar sign into the string using backslash
+    quoting:</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIETag" id="SSIETag">SSIETag</a> <a name="ssietag" id="ssietag">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls whether ETags are generated by the server.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIETag on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIETag off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.2.15 and later.</td></tr>
-</table>
-      <p>Under normal circumstances, a file filtered by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-        may contain elements that are either dynamically generated, or that may
-        have changed independently of the original file. As a result, by default
-        the server is asked not to generate an <code>ETag</code> header for the
-        response by adding <code>no-etag</code> to the request notes.</p>
+    <div class="example"><p><code>
+      &lt;!--#set var="cur" value="\$test" --&gt;
+    </code></p></div>
 
-      <p>The <code class="directive">SSIETag</code> directive suppresses this
-        behaviour, and allows the server to generate an <code>ETag</code> header.
-        This can be used to enable caching of the output. Note that a backend server
-        or dynamic content generator may generate an ETag of its own, ignoring
-        <code>no-etag</code>, and this ETag will be passed by
-        <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> regardless of the value of this setting.
-        <code class="directive">SSIETag</code> can take on the following values:</p>
+    <p>If a variable reference needs to be substituted in the
+    middle of a character sequence that might otherwise be
+    considered a valid identifier in its own right, it can be
+    disambiguated by enclosing the reference in braces,
+    <em>a la</em> shell substitution:</p>
 
-      <dl>
+    <div class="example"><p><code>
+      &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
+    </code></p></div>
 
-        <dt><code>off</code></dt>
-        <dd><code>no-etag</code> will be added to the request notes, and the server
-          is asked not to generate an ETag. Where a server ignores the value of
-          <code>no-etag</code> and generates an ETag anyway, the ETag will be
-          respected.</dd>
+    <p>This will result in the <code>Zed</code> variable being set
+    to "<code>X_Y</code>" if <code>REMOTE_HOST</code> is
+    "<code>X</code>" and <code>REQUEST_METHOD</code> is
+    "<code>Y</code>".</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="flowctrl" id="flowctrl">Flow Control Elements</a></h2>
+    
 
-        <dt><code>on</code></dt>
-        <dd>Existing ETags will be respected, and ETags generated by the server will
-          be passed on in the response.</dd>
+    <p>The basic flow control elements are:</p>
 
-      </dl>
+    <div class="example"><p><code>
+      &lt;!--#if expr="<var>test_condition</var>" --&gt;<br />
+      &lt;!--#elif expr="<var>test_condition</var>" --&gt;<br />
+      &lt;!--#else --&gt;<br />
+      &lt;!--#endif --&gt;
+    </code></p></div>
 
+    <p>The <code>if</code> element works like an if statement in a
+    programming language. The test condition is evaluated and if
+    the result is true, then the text until the next <code>elif</code>,
+    <code>else</code> or <code>endif</code> element is included in the
+    output stream.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSILastModified" id="SSILastModified">SSILastModified</a> <a name="ssilastmodified" id="ssilastmodified">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls whether <code>Last-Modified</code> headers are generated by the
-server.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSILastModified on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSILastModified off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.2.15 and later.</td></tr>
-</table>
-      <p>Under normal circumstances, a file filtered by <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-        may contain elements that are either dynamically generated, or that may
-        have changed independently of the original file. As a result, by default
-        the <code>Last-Modified</code> header is stripped from the response.</p>
+    <p>The <code>elif</code> or <code>else</code> statements are used
+    to put text into the output stream if the original
+    <var>test_condition</var> was false. These elements are optional.</p>
 
-      <p>The <code class="directive">SSILastModified</code> directive overrides this
-        behaviour, and allows the <code>Last-Modified</code> header to be respected
-        if already present, or set if the header is not already present. This can
-        be used to enable caching of the output. <code class="directive">SSILastModified</code>
-        can take on the following values:</p>
+    <p>The <code>endif</code> element ends the <code>if</code> element
+    and is required.</p>
 
-      <dl>
+    <p><var>test_condition</var> is a boolean expression which follows the
+    <a href="../expr.html">ap_expr</a> syntax. The syntax can be changed
+    to be compatible with Apache HTTPD 2.2.x using <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>.</p>
 
-        <dt><code>off</code></dt>
-        <dd>The <code>Last-Modified</code> header will be stripped from responses,
-          unless the <code class="directive"><a href="#xbithack">XBitHack</a></code> directive
-          is set to <code>full</code> as described below.</dd>
+    <p>The SSI variables set with the <code>var</code> element are exported
+    into the request environment and can be accessed with the
+    <code>reqenv</code> function. As a short-cut, the function name
+    <code>v</code> is also available inside <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
 
-        <dt><code>on</code></dt>
-        <dd>The <code>Last-Modified</code> header will be respected if already
-          present in a response, and added to the response if the response is a
-          file and the header is missing. The
-          <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> directive
-          takes precedence over <code class="directive"><a href="#xbithack">XBitHack</a></code>.</dd>
+    <p>The below example will print "from local net" if client IP address
+    belongs to the 10.0.0.0/8 subnet.</p>
 
-      </dl>
+    <div class="example"><p><code>
+      &lt;!--#if expr='-R "10.0.0.0/8"' --&gt;<br />
+      <span class="indent">
+        from local net<br />
+      </span>
+      &lt;!--#else --&gt;<br />
+      <span class="indent">
+        from somewhere else<br />
+      </span>
+      &lt;!--#endif --&gt;
+    </code></p></div>
 
+    <p>The below example will print "foo is bar" if the variable
+    <code>foo</code> is set to the value "bar".</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a> <a name="ssilegacyexprparser" id="ssilegacyexprparser">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable compatibility mode for conditional expressions.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.13 and later.</td></tr>
-</table>
-    <p>As of version 2.3.13, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> has switched to the
-    new <a href="../expr.html">ap_expr</a> syntax for conditional expressions
-    in <code>#if</code> flow control elements.  This directive allows to
-    switch to the <a href="#legacyexpr">old syntax</a> which is compatible
-    with Apache HTTPD version 2.2.x and earlier.
-    </p>
+    <div class="example"><p><code>
+      &lt;!--#if expr='v("foo") = "bar"' --&gt;<br />
+      <span class="indent">
+        foo is bar<br />
+      </span>
+      &lt;!--#endif --&gt;
+    </code></p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a> <a name="ssistarttag" id="ssistarttag">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>String that starts an include element</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>This directive changes the string that <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-    looks for to mark an include element to process.</p>
+    <div class="note"><h3>Reference Documentation</h3>
+    <p>See also: <a href="../expr.html">Expressions in Apache HTTP Server</a>,
+    for a complete reference and examples. The <em>restricted</em> functions
+    are not available inside <code class="module"><a href="../mod/mod_include.html">mod_include</a></code></p>
+    </div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="legacyexpr" id="legacyexpr">Legacy expression syntax</a></h2>
+    
 
-    <p>You may want to use this option if you have 2 servers parsing the
-    output of a file each processing different commands (possibly at
-    different times).</p>
+    <p>This section describes the syntax of the <code>#if expr</code>
+    element if <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>
+    is set to <code>on</code>.</p>
 
-    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
-      SSIEndTag   "%&gt;"</pre>
+    <dl>
+      <dt><code><var>string</var></code></dt>
+      <dd>true if <var>string</var> is not empty</dd>
 
+      <dt><code><var>-A string</var></code></dt>
+      <dd><p>true if the URL represented by the string is accessible by
+      configuration, false otherwise. This is useful where content on a
+      page is to be hidden from users who are not authorized to view the
+      URL, such as a link to that URL. Note that the URL is only tested
+      for whether access would be granted, not whether the URL exists.</p>
 
-    <p>The example given above, which also specifies a matching
-    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, will
-    allow you to use SSI directives as shown in the example
-    below:</p>
+      <div class="example"><h3>Example</h3><p><code>
+        &lt;!--#if expr="-A /private" --&gt;<br />
+        <span class="indent">
+          Click &lt;a href="/private"&gt;here&lt;/a&gt; to access private
+          information.<br />
+        </span>
+        &lt;!--#endif --&gt;
+      </code></p></div>
+      </dd>
 
-    <div class="example"><h3>SSI directives with alternate start and end tags</h3><p><code>
-      &lt;%printenv %&gt;
-    </code></p></div>
+      <dt><code><var>string1</var> = <var>string2</var><br />
+      <var>string1</var> == <var>string2</var><br />
+      <var>string1</var> != <var>string2</var></code></dt>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a> <a name="ssitimeformat" id="ssitimeformat">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the format in which date strings are
-displayed</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSITimeFormat <var>formatstring</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-<p>This directive changes the format in which date strings are displayed
-    when echoing <code>DATE</code> environment variables. The
-    <var>formatstring</var> is as in <code>strftime(3)</code> from the
-    C standard library.</p>
+      <dd><p>Compare <var>string1</var> with <var>string2</var>. If
+      <var>string2</var> has the form <code>/<var>string2</var>/</code>
+      then it is treated as a regular expression. Regular expressions are
+      implemented by the <a href="http://www.pcre.org">PCRE</a> engine and
+      have the same syntax as those in <a href="http://www.perl.com">perl
+      5</a>. Note that <code>==</code> is just an alias for <code>=</code>
+      and behaves exactly the same way.</p>
 
-    <p>This directive has the same effect as the <code>&lt;!--#config
-    timefmt=<var>formatstring</var> --&gt;</code> element.</p>
+      <p>If you are matching positive (<code>=</code> or <code>==</code>), you
+      can capture grouped parts of the regular expression. The captured parts
+      are stored in the special variables <code>$1</code> ..
+      <code>$9</code>. The whole string matched by the regular expression is
+      stored in the special variable <code>$0</code></p>
 
-    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
+      <div class="example"><h3>Example</h3><p><code>
+        &lt;!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --&gt;<br />
+        <span class="indent">
+          &lt;!--#set var="session" value="$1" --&gt;<br />
+        </span>
+        &lt;!--#endif --&gt;
+      </code></p></div>
+      </dd>
 
+      <dt><code><var>string1</var> &lt; <var>string2</var><br />
+       <var>string1</var> &lt;= <var>string2</var><br />
+       <var>string1</var> &gt; <var>string2</var><br />
+       <var>string1</var> &gt;= <var>string2</var></code></dt>
 
-    <p>The above directive would cause times to be displayed in the
-    format "22:26, June 14, 2002".</p>
+      <dd>Compare <var>string1</var> with <var>string2</var>. Note, that
+      strings are compared <em>literally</em> (using
+      <code>strcmp(3)</code>). Therefore the string "100" is less than
+      "20".</dd>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a> <a name="ssiundefinedecho" id="ssiundefinedecho">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>String displayed when an unset variable is echoed</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SSIUndefinedEcho <var>string</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>This directive changes the string that <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-    displays when a variable is not set and "echoed".</p>
+      <dt><code>( <var>test_condition</var> )</code></dt>
+      <dd>true if <var>test_condition</var> is true</dd>
 
-    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- undef --&gt;"</pre>
+      <dt><code>! <var>test_condition</var></code></dt>
+      <dd>true if <var>test_condition</var> is false</dd>
 
+      <dt><code><var>test_condition1</var> &amp;&amp;
+        <var>test_condition2</var></code></dt>
+      <dd>true if both <var>test_condition1</var> and
+      <var>test_condition2</var> are true</dd>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="XBitHack" id="XBitHack">XBitHack</a> <a name="xbithack" id="xbithack">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Parse SSI directives in files with the execute bit
-set</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>XBitHack on|off|full</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>XBitHack off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>The <code class="directive">XBitHack</code> directive controls the parsing
-    of ordinary html documents. This directive only affects files associated
-    with the <a class="glossarylink" href="../glossary.html#mime-type" title="see glossary">MIME-type</a> <code>text/html</code>. <code class="directive">XBitHack</code> can take on the following values:</p>
+      <dt><code><var>test_condition1</var> ||
+        <var>test_condition2</var></code></dt>
+      <dd>true if either <var>test_condition1</var> or
+      <var>test_condition2</var> is true</dd>
+    </dl>
 
-    <dl>
-      <dt><code>off</code></dt>
-      <dd>No special treatment of executable files.</dd>
+    <p>"<code>=</code>" and "<code>!=</code>" bind more tightly than
+    "<code>&amp;&amp;</code>" and "<code>||</code>". "<code>!</code>" binds
+    most tightly. Thus, the following are equivalent:</p>
 
-      <dt><code>on</code></dt>
-      <dd>Any <code>text/html</code> file that has the user-execute bit
-      set will be treated as a server-parsed html document.</dd>
+    <div class="example"><p><code>
+      &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;<br />
+      &lt;!--#if expr="($a = test1) &amp;&amp; ($b = test2)" --&gt;
+    </code></p></div>
 
-      <dt><code>full</code></dt>
-      <dd>As for <code>on</code> but also test the group-execute bit.
-      If it is set, then set the <code>Last-modified</code> date of the
-      returned file to be the last modified time of the file. If
-      it is not set, then no last-modified date is sent. Setting
-      this bit allows clients and proxies to cache the result of
-      the request.
+    <p>The boolean operators <code>&amp;&amp;</code> and <code>||</code>
+    share the same priority. So if you want to bind such an operator more
+    tightly, you should use parentheses.</p>
 
-      <div class="note"><h3>Note</h3>
-      <p>You would not want to use the full option, unless you assure the
-      group-execute bit is unset for every SSI script which might <code>#include</code> a CGI or otherwise produces different output on
-      each hit (or could potentially change on subsequent requests).</p>
+    <p>Anything that's not recognized as a variable or an operator
+    is treated as a string. Strings can also be quoted:
+    <code>'string'</code>. Unquoted strings can't contain whitespace
+    (blanks and tabs) because it is used to separate tokens such as
+    variables. If multiple strings are found in a row, they are
+    concatenated using blanks. So,</p>
 
-      <p>The <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code>
-      directive takes precedence over the
-      <code class="directive"><a href="#xbithack">XBitHack</a></code> directive when
-      <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> is set to
-      <code>on</code>.</p>
-      </div>
+    <div class="example"><p><code><var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var></code> results in <code><var>string1</var>&nbsp;<var>string2</var></code><br />
+      <br />
+      and<br />
+      <br />
+      <code>'<var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var>'</code> results in <code><var>string1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>string2</var></code>.</p></div>
 
-      </dd>
-    </dl>
+    <div class="note"><h3>Optimization of Boolean Expressions</h3>
+      <p>If the expressions become more complex and slow down processing
+      significantly, you can try to optimize them according to the
+      evaluation rules:</p>
+      <ul>
+      <li>Expressions are evaluated from left to right</li>
+      <li>Binary boolean operators (<code>&amp;&amp;</code> and <code>||</code>)
+          are short circuited wherever possible. In conclusion with the rule
+          above that means, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> evaluates at first
+          the left expression. If the left result is sufficient to determine
+          the end result, processing stops here. Otherwise it evaluates the
+          right side and computes the end result from both left and right
+          results.</li>
+      <li>Short circuit evaluation is turned off as long as there are regular
+          expressions to deal with. These must be evaluated to fill in the
+          backreference variables (<code>$1</code> .. <code>$9</code>).</li>
+      </ul>
+      <p>If you want to look how a particular expression is handled, you can
+      recompile <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> using the
+      <code>-DDEBUG_INCLUDE</code> compiler option. This inserts for every
+      parsed expression tokenizer information, the parse tree and how it is
+      evaluated into the output sent to the client.</p>
+    </div>
 
+    <div class="note"><h3>Escaping slashes in regex strings</h3>
+     <p>All slashes which are not intended to act as delimiters in your regex must
+     be escaped.  This is regardless of their meaning to the regex engine.</p>
+    </div>
 
 </div>
 </div>
index 712416d0310c341e4f032352082f0f22de9793d5..31379ca0736dce923978c905d328ff8c3dd62102 100644 (file)
@@ -72,1092 +72,1092 @@ Includes ou SSI)</td></tr>
 <li><a href="../howto/ssi.html">Tutoriel SSI</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="enabling" id="enabling">Activation des SSI</a></h2>
-    
-
-    <p>Les SSI sont implémentés par le <a href="../filter.html">filtre</a> <code>INCLUDES</code>. Si des
-    documents contenant des directives SSI possèdent une extension
-    .shtml, les directives suivantes indiqueront à Apache de les
-    interpréter et d'assigner le type MIME
-    <code>text/html</code> au document obtenu :</p>
-
-    <pre class="prettyprint lang-config">AddType text/html .shtml
-AddOutputFilter INCLUDES .shtml</pre>
-
-
-    <p>L'option suivante doit être définie pour les répertoires qui
-    contiennent les fichiers shtml (en général dans une section
-    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, mais
-    cette option peut également être définie dans un fichier
-    <code>.htaccess</code> si <code><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> Options</code> a été défini pour le
-    répertoire considéré) :</p>
-
-    <pre class="prettyprint lang-config">Options +Includes</pre>
-
+<div class="directive-section"><h2><a name="ssiendtag" id="ssiendtag">Directive</a> <a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chaîne qui termine l'élément include</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>Cette directive permet de modifier la chaîne que
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> interprète comme la fin d'un élément
+    include.</p>
 
-    <p>Pour des raisons de compatibilité ascendante, le <a href="../handler.html">gestionnaire</a>  <code>server-parsed</code>
-    peut aussi activer le filtre INCLUDES. Ainsi, Apache va activer le
-    filtre INCLUDES pour tout document de type MIME
-    <code>text/x-server-parsed-html</code> ou
-    <code>text/x-server-parsed-html3</code> (et le document obtenu aura
-    pour type MIME <code>text/html</code>).</p>
+    <pre class="prettyprint lang-config">SSIEndTag "%&gt;"</pre>
 
-    <p>Pour plus d'informations, voyez notre <a href="../howto/ssi.html">Tutoriel SSI</a>.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="pathinfo" id="pathinfo">PATH_INFO et SSI</a></h2>
-    
 
-    <p>Les fichiers traités dans le cadre des SSI n'acceptent plus par
-    défaut les requêtes avec <code>PATH_INFO</code> (les informations
-    relatives au chemin en fin de requête). La directive <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> permet de configurer le
-    serveur de façon à ce qu'il accepte ce genre de requête.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="elements" id="elements">Eléments disponibles</a></h2>
-    <p>Le document est interprété comme un document HTML, avec des
-    commandes spéciales incluses sous forme de commentaires SGML. La
-    syntaxe d'une commande est la suivante : </p>
 
-    <div class="example"><p><code>
-      &lt;!--#<var>élément</var> <var>attribut</var>=<var>valeur</var>
-      <var>attribut</var>=<var>valeur</var> ... --&gt;
-    </code></p></div>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssierrormsg" id="ssierrormsg">Directive</a> <a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Message d'erreur affiché lorsqu'une erreur SSI
+survient</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
+directive]"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>La directive <code class="directive">SSIErrorMsg</code> permet de
+    modifier le message d'erreur affiché lorsqu'une erreur SSI survient.
+    Pour les serveurs en production, il est recommandé de modifier le
+    message d'erreur par défaut en <code>"&lt;!-- Error
+    --&gt;"</code>, de façon à ce que le message ne soit pas
+    présenté à l'utilisateur.</p>
 
-    <p>Les valeurs sont souvent entourées de guillemets, mais on peut
-    aussi utiliser des apostrophes (<code>'</code>) ou des apostrophes
-    inverses (<code>`</code>). De nombreuses commandes n'acceptent
-    qu'une seule paire attribut-valeur. Notez que le terminateur de
-    commentaire (<code>--&gt;</code>) doit être précédé d'un espace afin
-    d'être sûr qu'il ne soit pas considéré comme un élément de commande
-    SSI. Notez aussi que le délimiteur de début <code>&lt;!--#</code>
-    est <em>un</em> élément de commande et ne doit donc pas contenir
-    d'espace.</p>
+    <p>Cette directive a le même effet que l'élément
+    <code>&lt;!--#config errmsg=<var>message</var> --&gt;</code>.</p>
 
-    <p>La table suivante contient la liste des éléments autorisés :</p>
+    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&gt;"</pre>
 
-    <table class="bordered">
-    <tr><th>Elément</th><th>Description</th></tr>
-    <tr><td><code><a href="#element.config">config</a></code></td>
-        <td>configure les formats de sortie</td></tr>
-    <tr><td><code><a href="#element.echo">echo</a></code></td>
-        <td>affiche le contenu de variables</td></tr>
-    <tr><td><code><a href="#element.exec">exec</a></code></td>
-        <td>exécute des programmes externes</td></tr>
-    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
-        <td>affiche la taille d'un fichier</td></tr>
-    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
-        <td>affiche la date de dernière modification d'un fichier</td></tr>
-    <tr><td><code><a href="#element.include">include</a></code></td>
-        <td>inclut un fichier</td></tr>
-    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
-        <td>affiche toutes les variables disponibles</td></tr>
-    <tr><td><code><a href="#element.set">set</a></code></td>
-        <td>définit la valeur d'une variable</td></tr>
-    </table>
 
-    <p>Les éléments SSI peuvent être définis par d'autres modules que
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>. À ce titre, l'élément <code><a href="#element.exec">exec</a></code> est fourni par
-    <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, et ne sera disponible que si ce module est
-    chargé.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssietag" id="ssietag">Directive</a> <a name="SSIETag" id="SSIETag">SSIETag</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si des en-têtes ETags sont générés par le serveur.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIETag on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIETag off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.2.15 du serveur HTTP
+Apache.</td></tr>
+</table>
+      <p>Dans le cas général, un fichier filtré par
+      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> peut contenir des éléments soit
+      générés dynamiquement, soit éventuellement modifiés indépendemment
+      du fichier original. En conséquence, il est demandé par défaut au
+      serveur de ne pas générer d'en-tête <code>ETag</code> à la réponse
+      en ajoutant <code>no-etag</code> aux informations de requête.</p>
 
-    <h3><a name="element.config" id="element.config">L'élément config</a></h3>
-      <p>Cette commande contrôle divers aspects de l'interprétation. Les
-      attributs valides sont :</p>
+      <p>Ce comportement peut être modifié via la directive
+      <code class="directive">SSIETag</code> qui permet au serveur de générer un
+      en-tête <code>ETag</code>. On peut aussi l'utiliser pour la mise
+      en cache de la sortie. Notez qu'un serveur d'arrière-plan ou un
+      générateur de contenu dynamique peut lui-même générer un en-tête
+      <code>ETag</code>, en ignorant l'information <code>no-etag</code>,
+      cet en-tête <code>ETag</code> étant transmis par
+      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sans tenir compte de la définition de
+      la présente directive. La directive <code class="directive">SSIETag</code>
+      peut prendre une des valeurs suivantes :</p>
 
       <dl>
-      <dt><code>echomsg</code> (<em>Versions 2.1 et supérieures
-      d'Apache</em>)</dt>
-      <dd><p>La valeur est un message qui sera envoyé au client si
-      l'élément <code><a href="#element.echo">echo</a></code> tente
-      d'afficher le contenu d'une variable non définie. Cet attribut
-      l'emporte sur toute directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>.</p>
-
-      <div class="example"><p><code>
-        &lt;!--#config echomsg="[Valeur non définie]" --&gt;
-      </code></p></div>
-      </dd>
 
-      <dt><code>errmsg</code></dt>
-      <dd><p>La valeur est un message qui sera envoyé au client si une
-      erreur survient lors de l'interprétation du document. Cet attribut
-      l'emporte sur toute directive <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code>.</p>
+        <dt><code>off</code></dt>
+        <dd><code>no-etag</code> sera ajouté aux informations de
+       requête, et il sera demandé au serveur de ne pas générer
+       d'en-tête <code>ETag</code>. Lorsqu'un serveur ignore la valeur
+       de <code>no-etag</code> et génère tout de même un en-tête
+       <code>ETag</code>, ce dernier sera respecté.</dd>
 
-      <div class="example"><p><code>
-       &lt;!--#config errmsg="[Zut, quelque chose s'est mal passé.]" --&gt;
-      </code></p></div>
-      </dd>
+        <dt><code>on</code></dt>
+        <dd>Les en-têtes <code>ETag</code> existants seront respectés,
+       et ceux générés par le serveur seront ajoutés à la réponse.</dd>
 
-      <dt><code>sizefmt</code></dt>
-      <dd><p>La valeur définit l'unité employée lors de l'affichage de la
-      taille d'un fichier. Les valeurs possibles sont <code>bytes</code>
-      pour une taille en octets, ou <code>abbrev</code> pour une taille
-      en Ko ou Mo selon son importance ; par exemple, une taille de 1024
-      octets sera affichée sous la forme "1K".</p>
+      </dl>
 
-      <div class="example"><p><code>
-      &lt;!--#config sizefmt="abbrev" --&gt;
-      </code></p></div>
 
-      </dd>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssilastmodified" id="ssilastmodified">Directive</a> <a name="SSILastModified" id="SSILastModified">SSILastModified</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si des en-têtes <code>Last-Modified</code> sont
+générés par le serveur.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILastModified on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSILastModified off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.2.15 du serveur HTTP
+Apache.</td></tr>
+</table>
+      <p>Dans le cas général, un fichier filtré par
+      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> peut contenir des éléments soit
+      générés dynamiquement, soit éventuellement modifiés indépendemment
+      du fichier original. En conséquence, l'en-tête
+      <code>Last-Modified</code> est supprimé par défaut de la réponse.</p>
 
-      <dt><code>timefmt</code></dt>
-      <dd><p>La valeur est une chaîne que pourra utiliser la fonction de la
-      bibliothèque standard <code>strftime(3)</code> lors de l'affichage
-      des dates.</p>
+      <p>La directive <code class="directive">SSILastModified</code> permet de
+      modifier ce comportement en faisant en sorte que l'en-tête
+      <code>Last-Modified</code> soit respecté s'il est déjà présent, ou
+      défini dans le cas contraire. On peut aussi l'utiliser pour la mise
+      en cache de la sortie. La directive
+      <code class="directive">SSILastModified</code> peut prendre une des
+      valeurs suivantes :</p>
 
-      <div class="example"><p><code>
-      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
-      </code></p></div>
+      <dl>
 
-      </dd>
-      </dl>
-     
+        <dt><code>off</code></dt>
+        <dd>L'en-tête <code>Last-Modified</code> sera supprimé des
+       réponses, à moins que la directive <code class="directive"><a href="#xbithack">XBitHack</a></code> ne soit définie à
+       <code>full</code> comme décrit plus loin.</dd>
 
-    <h3><a name="element.echo" id="element.echo">L'élément echo</a></h3>
-      <p>Cette commande affiche le contenu d'une des <a href="#includevars">variables include</a> définies ci-dessous. Si
-      la variable n'est pas définie, le résultat est déterminé par la
-      valeur de la directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>. Le format d'affichage des dates est
-      défini par l'attribut <code>timefmt</code> de la commande
-      config.</p>
+        <dt><code>on</code></dt>
+        <dd>L'en-tête <code>Last-Modified</code> sera respecté s'il est
+       déjà présent, et ajouté à la réponse si cette dernière est un
+       fichier et si l'en-tête est manquant. La directive <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> l'emporte sur
+       la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</dd>
 
-      <p>Attributs:</p>
+      </dl>
 
-      <dl>
-      <dt><code>var</code></dt>
-      <dd>La valeur est le nom de la variable à afficher.</dd>
 
-      <dt><code>decoding</code></dt>
-      <dd><p>Spécifie si Apache doit effectuer un décodage dans la
-      variable avant son traitement ultérieur. La valeur par défaut est
-      <code>none</code>, et dans ce cas, aucun décodage n'est effectué.
-      Si la valeur est <code>url</code>, un décodage de type URL sera
-      effectué (il s'agit du codage de type %-encoding utilisé dans les
-      URLs des liens, etc...). Si la valeur est <code>urlencoded</code>,
-      c'est un décodage des éléments de type
-      application/x-www-form-urlencode (que l'on trouve dans les chaînes
-      de paramètres) qui sera effectué. Si la valeur est
-      <code>base64</code>, un
-      decodage de type base64 sera effectué, et si elle est
-      <code>entity</code>, c'est un décodage des entités HTML qui sera
-      effectué. Ce décodage est effectué avant tout codage ultérieur de
-      la variable. Il est possible d'effectuer plusieurs décodages en
-      spécifiant plusieurs valeurs séparées par des virgules. Les
-      spécifications de décodages restent valables jusqu'au prochain
-      attribut de décodage, ou la fin de l'élément.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssilegacyexprparser" id="ssilegacyexprparser">Directive</a> <a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le mode de compatibilité pour les expressions
+conditionnelles.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.13.</td></tr>
+</table>
+    <p>Depuis la version 2.3.13, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> a adopté
+    la nouvelle syntaxe <a href="../expr.html">ap_expr</a> pour ses
+    expressions conditionnelles dans les éléments de contrôle de flux
+    <code>#if</code>. Cette directive permet de réactiver l'<a href="#legacyexpr">ancienne syntaxe</a> qui est compatible avec les
+    versions 2.2.x et antérieures d'Apache HTTPD.
+    </p>
 
-      <p>Pour être pris en compte, l'attribut de <code>décodage</code>
-      doit <em>précéder</em> l'attribut <code>var</code> correspondant.</p>
-      </dd>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssistarttag" id="ssistarttag">Directive</a> <a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chaîne qui marque le début d'un élément
+include</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>Cette directive permet de modifier la chaîne que
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> interprète comme le début d'un élément
+    include.</p>
 
-      <dt><code>encoding</code></dt>
-      <dd><p>Spécifie la manière dont Apache va coder les caractères
-      spéciaux que la variable contient avant leur affichage. S'il est
-      défini à <code>none</code>, aucun codage ne sera effectué. S'il
-      est défini à <code>url</code>, un codage de type URL sera effectué
-      (aussi connu sous le nom de codage avec caractères % , il convient
-      pour les URLS des liens, etc...). S'il est défini à
-      <code>urlencoded</code>, c'est un codage compatible
-      application/x-www-form-urlencoded qui sera effectué (à utiliser
-      dans les chaînes de paramètres). S'il est défini à
-      <code>base64</code>, c'est un encodage de type base64 qui sera
-      effectué. Au début d'un élément
-      <code>echo</code>, la valeur par défaut est définie à
-      <code>entity</code>, ce qui correspond à un codage de type entité
-      (codage qui convient pour un élément HTML de type bloc, comme le
-      paragraphe d'un texte). Cette valeur par défaut peut être modifiée
-      en ajoutant un attribut <code>encoding</code>, qui fera effet
-      jusqu'à la définition d'un nouvel attribut <code>encoding</code>
-      ou la fin de l'élément echo.</p>
+    <p>Cette option peut vous être utile si vous avez deux serveurs qui
+    interprètent un fichier avec des commandes différentes (et
+    éventuellement à des moments différents).</p>
 
-      <p>Pour produire son effet, l'attribut <code>encoding</code> doit
-      précéder l'attribut <code>var</code> concerné.</p>
+    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
+      SSIEndTag   "%&gt;"</pre>
 
-      <div class="warning">
-        Afin de prévenir les attaques de type cross-site scripting, il
-       est recommandé de <em>toujours</em> encoder les données fournies
-       par les utilisateurs.
-      </div>
 
-      <div class="example"><h3>Example</h3><p><code>
-        &lt;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
-      </code></p></div>
-      </dd>
-      </dl>
-     
+    <p>Avec l'exemple ci-dessus, qui définit aussi une directive
+    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, vous pourrez
+    inscrire des directives SSI comme dans l'exemple suivant :</p>
 
-    <h3><a name="element.exec" id="element.exec">L'élément exec</a></h3>
-      <p>La commande <code>exec</code> exécute la commande shell ou le
-      script spécifié. Elle nécessite le chargement du module
-      <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>. Si <code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>IncludesNOEXEC</code> est
-      définie, cette commande est désactivée. Les attributs disponibles
-      sont :</p>
+    <div class="example"><h3>Directives SSI avec marques de début et de fin
+    personnalisées</h3><p><code>
+      &lt;%printenv %&gt;
+    </code></p></div>
 
-      <dl>
-      <dt><code>cgi</code></dt>
-      <dd><p>La valeur spécifie un chemin URL vers le script CGI (encodé
-      avec caractères %). Si le chemin ne commence pas par un slash (/),
-      il est considéré comme relatif au document courant. Le document
-      référencé par ce chemin est invoqué en tant que script CGI, même
-      s'il n'est pas censé être reconnu comme tel par le serveur. Les
-      scripts CGI doivent cependant être activés dans le répertoire qui
-      contient les scripts (via la directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ou l'<code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>ExecCGI</code>).</p>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssitimeformat" id="ssitimeformat">Directive</a> <a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du format d'affichage des dates</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSITimeFormat <var>chaîne de formatage</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+<p>Cette directive permet de modifier le format d'affichage des
+variables d'environnement <code>DATE</code>. La <var>chaîne de
+formatage</var> est identique à celle de la fonction
+<code>strftime(3)</code> de la bibliothèque C standard.</p>
 
-      <p>Le <code>PATH_INFO</code> et la chaîne d'arguments
-      (<code>QUERY_STRING</code>) de la requête originale du client sont
-      fournis au script CGI ; ils <em>ne peuvent pas</em> être spécifiés
-      dans le chemin de l'URL. Le script disposera des variables include
-      en plus de l'environnement standard <a href="mod_cgi.html">CGI</a>.</p>
+    <p>Cette directive a le même effet que l'élément
+    <code>&lt;!--#config timefmt=<var>chaîne de formatage</var>
+    --&gt;</code>.</p>
 
-      <div class="example"><h3>Exemple</h3><p><code>
-        &lt;!--#exec cgi="/cgi-bin/exemple.cgi" --&gt;
-      </code></p></div>
+    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
 
-      <p>Si, à la place d'un flux de sortie, le script renvoie un
-      en-tête <code>Location:</code>, ce dernier sera traduit en ancrage
-      HTML.</p>
 
-      <p>L'élément <code><a href="#includevirtual">include
-      virtual</a></code> doit être préféré à <code>exec cgi</code>. En
-      particulier, si vous devez transmettre des arguments
-      supplémentaires à un programme CGI en utilisant la chaîne
-      d'arguments de la requête, c'est impossible avec <code>exec
-      cgi</code>, mais vous pouvez y parvenir avec <code>include
-      virtual</code> comme suit :</p>
+    <p>Avec l'exemple ci-dessus, les dates seront affichées dans le
+    style "22:26, June 14, 2002".</p>
 
-      <div class="example"><p><code>
-        &lt;!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --&gt;
-      </code></p></div>
-      </dd>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ssiundefinedecho" id="ssiundefinedecho">Directive</a> <a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chaîne à afficher lorsqu'on tente d'extraire le contenu
+d'une variable non définie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIUndefinedEcho <var>chaîne</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>Cette directive permet de modifier la chaîne affichée par
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> lorsqu'on tente d'extraire le contenu
+    d'une variable non définie.</p>
 
-      <dt><code>cmd</code></dt>
-      <dd><p>Le serveur va exécuter la commande fournie en utilisant
-      <code>/bin/sh</code>. La commande dispose des <a href="#includevars">variables include</a>, en plus du jeu habituel
-      de variables CGI.</p>
+    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- nondef --&gt;"</pre>
 
-      <p>Il est toujours préférable d'utiliser <code><a href="#includevirtual">#include virtual</a></code> à la place de
-      <code>#exec cgi</code> ou <code>#exec cmd</code>. <code>#include
-      virtual</code> utilise le mécanisme standard des sous-requêtes
-      d'Apache pour inclure des fichiers ou des scripts. Il a fait
-      l'objet de tests plus approfondis et sa maintenance est mieux
-      suivie.</p>
 
-      <p>De plus, sur certaines plate-formes, comme Win32, et sous unix,
-      si l'on utilise <a href="../suexec.html">suexec</a>, il est
-      impossible de transmettre des arguments à une commande dans une
-      directive <code>exec</code>, à moins d'insérer des espaces dans la
-      commande. Ainsi, alors que ce qui suit fonctionnera sous unix avec
-      une configuration sans suexec, l'effet produit ne sera pas celui
-      désiré sous Win32, ou dans le cas de l'utilisation de suexec
-      :</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xbithack" id="xbithack">Directive</a> <a name="XBitHack" id="XBitHack">XBitHack</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interprète les directives SSI dans les fichiers dont le bit
+d'exécution est positionné</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>XBitHack on|off|full</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>XBitHack off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
+</table>
+    <p>La directive <code class="directive">XBitHack</code> permet de contrôler
+    l'interprétation des documents html standards. Elle n'affecte que
+    les fichiers dont le <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> est
+    <code>text/html</code>. <code class="directive">XBitHack</code> peut prendre
+    les valeurs suivantes :</p>
+
+    <dl>
+      <dt><code>off</code></dt>
+      <dd>Aucun traitement particulier pour les fichiers
+      exécutables.</dd>
+
+      <dt><code>on</code></dt>
+      <dd>Tout fichier <code>text/html</code> dont le bit d'exécution
+      est positionné pour le propriétaire sera traité en tant que
+      document html interprété par le serveur.</dd>
+
+      <dt><code>full</code></dt>
+      <dd>Identique à <code>on</code>, avec test du bit d'exécution pour
+      le groupe. Si ce dernier est positionné, la date de <code>dernière
+      modification</code> du fichier renvoyé est définie à la date de
+      dernière modification du fichier. Dans le cas contraire, aucune
+      date de dernière modification n'est renvoyée. Le positionnement de
+      ce bit permet aux clients et aux mandataires de gérer la mise en
+      cache du résultat de la requête.
+
+      <div class="note"><h3>Note</h3>
+      <p>Il est recommandé de n'utiliser l'option full que dans le cas
+      où vous êtes certain que le bit d'exécution du groupe est non
+      positionné pour les scripts SSI qui pourraient effectuer l'<code>#include</code> d'un programme CGI ou bien produire des sorties
+      différentes à chaque accès (ou seraient susceptibles d'être
+      modifiées au cours des requêtes ultérieures).</p>
+
+      <p>Lorsqu'elle est définie à <code>on</code>, la directive
+      <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code>
+      l'emporte sur la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</p>
+      </div>
 
-      <div class="example"><p><code>
-        &lt;!--#exec cmd="perl /chemin/vers/script_perl arg1 arg2" --&gt;
-      </code></p></div>
       </dd>
-      </dl>
-     
+    </dl>
 
-    <h3><a name="element.fsize" id="element.fsize">L'élément fsize</a></h3>
-      <p>Cette commande permet d'afficher la taille du fichier spécifié
-      en fonction des spécifications de format de <code>sizefmt</code>.
-      Attributs :</p>
 
-      <dl>
-      <dt><code>file</code></dt>
-      <dd>La valeur est le chemin du fichier, relatif au répertoire
-      contenant le document en cours d'interprétation.
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="enabling" id="enabling">Activation des SSI</a></h2>
+    
+
+    <p>Les SSI sont implémentés par le <a href="../filter.html">filtre</a> <code>INCLUDES</code>. Si des
+    documents contenant des directives SSI possèdent une extension
+    .shtml, les directives suivantes indiqueront à Apache de les
+    interpréter et d'assigner le type MIME
+    <code>text/html</code> au document obtenu :</p>
+
+    <pre class="prettyprint lang-config">AddType text/html .shtml
+AddOutputFilter INCLUDES .shtml</pre>
+
+
+    <p>L'option suivante doit être définie pour les répertoires qui
+    contiennent les fichiers shtml (en général dans une section
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, mais
+    cette option peut également être définie dans un fichier
+    <code>.htaccess</code> si <code><code class="directive"><a href="../mod/core.html#allowoverride">AllowOverride</a></code> Options</code> a été défini pour le
+    répertoire considéré) :</p>
 
-      <div class="example"><p><code>
-        Ce fichier a une taille de &lt;!--#fsize file="mod_include.html"
-       --&gt; octets.
-    </code></p></div>
+    <pre class="prettyprint lang-config">Options +Includes</pre>
 
-    La valeur de <code>file</code> ne peut pas faire référence à un
-    fichier situé à un niveau supérieur de l'arborescence du répertoire
-    courant ou en dehors de la racine des documents ; il ne peut donc
-    ni commencer par un slash, ni contenir la séquence de caractères
-    <code>../</code>. Si c'est le cas, le message d'erreur <code>The
-    given path was above the root path</code> sera renvoyé.
-      </dd>
 
-      <dt><code>virtual</code></dt>
-      <dd>La valeur est un chemin URL (codé avec caractères %). S'il ne
-      commence pas par un slash (/), il est considéré comme relatif au
-      document courant. Notez que cette commande n'affiche <em>pas</em>
-      la taille de la sortie d'un programme CGI, mais la taille du
-      programme CGI lui-même.</dd>
-      </dl>
+    <p>Pour des raisons de compatibilité ascendante, le <a href="../handler.html">gestionnaire</a>  <code>server-parsed</code>
+    peut aussi activer le filtre INCLUDES. Ainsi, Apache va activer le
+    filtre INCLUDES pour tout document de type MIME
+    <code>text/x-server-parsed-html</code> ou
+    <code>text/x-server-parsed-html3</code> (et le document obtenu aura
+    pour type MIME <code>text/html</code>).</p>
 
-      <div class="example"><p><code>
-        Ce fichier a une taille de &lt;!--#fsize
-       virtual="/docs/mod/mod_include.html" --&gt; octets.
-    </code></p></div>
+    <p>Pour plus d'informations, voyez notre <a href="../howto/ssi.html">Tutoriel SSI</a>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="pathinfo" id="pathinfo">PATH_INFO et SSI</a></h2>
+    
 
-      <p>Notez que dans la plupart des cas, ces deux attributs sont
-      identiques. Cependant, l'attribut <code>file</code> ne respecte
-      pas les aliases URL-space.</p>
-     
+    <p>Les fichiers traités dans le cadre des SSI n'acceptent plus par
+    défaut les requêtes avec <code>PATH_INFO</code> (les informations
+    relatives au chemin en fin de requête). La directive <code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code> permet de configurer le
+    serveur de façon à ce qu'il accepte ce genre de requête.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="elements" id="elements">Eléments disponibles</a></h2>
+    <p>Le document est interprété comme un document HTML, avec des
+    commandes spéciales incluses sous forme de commentaires SGML. La
+    syntaxe d'une commande est la suivante : </p>
 
-    <h3><a name="element.flastmod" id="element.flastmod">L'élément flastmod</a></h3>
-      <p>Cette commande permet d'afficher la date de dernière
-      modification du fichier spécifié, en fonction des spécifications
-      de format de <code>timefmt</code>. Les attributs sont les mêmes
-      que ceux de la commande <code><a href="#element.fsize">fsize</a></code>.</p>
-     
+    <div class="example"><p><code>
+      &lt;!--#<var>élément</var> <var>attribut</var>=<var>valeur</var>
+      <var>attribut</var>=<var>valeur</var> ... --&gt;
+    </code></p></div>
 
-    <h3><a name="element.include" id="element.include">L'élément include</a></h3>
-      <p>Cette commande permet d'insérer le texte d'un autre document ou
-      fichier dans le fichier en cours d'interprétation. Tout fichier
-      inclus est soumis au contrôle d'accès habituel. Si <a href="core.html#options">Options</a> <code>IncludesNOEXEC</code>
-      est défini pour le répertoire contenant le fichier
-      interprété, seuls les documents possèdant un
-      <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> de type texte
-      (<code>text/plain</code>, <code>text/html</code>, etc...) seront
-      inclus. Les scripts CGI, quant à eux, sont invoqués de manière
-      habituelle en utilisant l'URL complète fournie avec la commande, y
-      compris toute chaîne d'arguments éventuelle.</p>
+    <p>Les valeurs sont souvent entourées de guillemets, mais on peut
+    aussi utiliser des apostrophes (<code>'</code>) ou des apostrophes
+    inverses (<code>`</code>). De nombreuses commandes n'acceptent
+    qu'une seule paire attribut-valeur. Notez que le terminateur de
+    commentaire (<code>--&gt;</code>) doit être précédé d'un espace afin
+    d'être sûr qu'il ne soit pas considéré comme un élément de commande
+    SSI. Notez aussi que le délimiteur de début <code>&lt;!--#</code>
+    est <em>un</em> élément de commande et ne doit donc pas contenir
+    d'espace.</p>
 
-      <p>Un attribut définit le chemin du document à inclure, et peut
-      apparaître plusieurs fois dans l'élément à inclure ; en retour, pour
-      chaque attribut fourni à la commande include, une inclusion est
-      effectuée. Les attributs disponibles sont :</p>
+    <p>La table suivante contient la liste des éléments autorisés :</p>
 
-      <dl>
-      <dt><code>file</code></dt>
-      <dd>La valeur est un chemin relatif au répertoire contenant le
-      fichier en cours d'interprétation. Elle ne peut ni contenir
-      <code>../</code>, ni être un chemin absolu. Ainsi, vous ne pouvez
-      pas inclure de fichiers situés en dehors de l'arborescence du
-      site web ou dans un niveau supérieur à celui du fichier courant
-      dans cette arborescence. Il est toujours préférable d'utiliser
-      l'attribut <code>virtual</code>.</dd>
+    <table class="bordered">
+    <tr><th>Elément</th><th>Description</th></tr>
+    <tr><td><code><a href="#element.config">config</a></code></td>
+        <td>configure les formats de sortie</td></tr>
+    <tr><td><code><a href="#element.echo">echo</a></code></td>
+        <td>affiche le contenu de variables</td></tr>
+    <tr><td><code><a href="#element.exec">exec</a></code></td>
+        <td>exécute des programmes externes</td></tr>
+    <tr><td><code><a href="#element.fsize">fsize</a></code></td>
+        <td>affiche la taille d'un fichier</td></tr>
+    <tr><td><code><a href="#element.flastmod">flastmod</a></code></td>
+        <td>affiche la date de dernière modification d'un fichier</td></tr>
+    <tr><td><code><a href="#element.include">include</a></code></td>
+        <td>inclut un fichier</td></tr>
+    <tr><td><code><a href="#element.printenv">printenv</a></code></td>
+        <td>affiche toutes les variables disponibles</td></tr>
+    <tr><td><code><a href="#element.set">set</a></code></td>
+        <td>définit la valeur d'une variable</td></tr>
+    </table>
 
-      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
-      <dd><p>La valeur est un chemin URL (codé avec caractères %). L'URL
-      ne peut contenir qu'un chemin et une chaîne d'arguments
-      éventuelle, à l'exclusion de tout protocole ou nom d'hôte. S'il ne
-      commence pas par un slash (/), il est considéré comme relatif au
-      document courant.</p>
+    <p>Les éléments SSI peuvent être définis par d'autres modules que
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>. À ce titre, l'élément <code><a href="#element.exec">exec</a></code> est fourni par
+    <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>, et ne sera disponible que si ce module est
+    chargé.</p>
 
-      <p>Une URL est construite à partir de l'attribut, et la sortie que
-      renverrait le serveur si l'URL était accédée par le client est
-      incluse dans la sortie interprétée. Les inclusions de fichiers
-      peuvent ainsi être imbriquées.</p>
+    <h3><a name="element.config" id="element.config">L'élément config</a></h3>
+      <p>Cette commande contrôle divers aspects de l'interprétation. Les
+      attributs valides sont :</p>
 
-      <p>Si l'URL spécifiée correspond à un programme CGI, le programme
-      sera exécuté, et son flux de sortie inséré à la place de la
-      directive dans le fichier interprété. Vous pouvez insérer une
-      chaîne d'arguments dans une URL correspond à un programme CGI
-      :</p>
+      <dl>
+      <dt><code>echomsg</code> (<em>Versions 2.1 et supérieures
+      d'Apache</em>)</dt>
+      <dd><p>La valeur est un message qui sera envoyé au client si
+      l'élément <code><a href="#element.echo">echo</a></code> tente
+      d'afficher le contenu d'une variable non définie. Cet attribut
+      l'emporte sur toute directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>.</p>
 
       <div class="example"><p><code>
-        &lt;!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --&gt;
+        &lt;!--#config echomsg="[Valeur non définie]" --&gt;
       </code></p></div>
+      </dd>
 
-      <p><code>include virtual</code> doit être préféré à <code>exec
-      cgi</code> pour inclure le flux de sortie d'un programme CGI dans
-      un document HTML.</p>
-
-      <p>Si la directive <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> est correctement
-      définie et valide pour le fichier inclus, les tentatives de
-      requêtes POST vers le document HTML qui inclut des fichiers seront
-      transmises aux sous-requêtes en tant que requêtes POST
-      elles-mêmes. Sans cette directive, toutes les sous-requêtes sont
-      traitées en tant que requêtes GET.</p>
+      <dt><code>errmsg</code></dt>
+      <dd><p>La valeur est un message qui sera envoyé au client si une
+      erreur survient lors de l'interprétation du document. Cet attribut
+      l'emporte sur toute directive <code class="directive"><a href="#ssierrormsg">SSIErrorMsg</a></code>.</p>
 
+      <div class="example"><p><code>
+       &lt;!--#config errmsg="[Zut, quelque chose s'est mal passé.]" --&gt;
+      </code></p></div>
       </dd>
 
-      <dt><code>onerror</code></dt>
-      <dd><p>La valeur est un chemin-URL (codé-%) qui est affiché si une
-      tentative précédente d'inclure un fichier ou un attribut virtuel a
-      échoué. Pour produire son effet, cet attribut doit être spécifié
-      après le fichier ou les attributs virtuels concernés. Si la
-      tentative d'inclure le chemin onerror échoue, ou si onerror n'est
-      pas spécifié, c'est le message d'erreur par défaut qui sera
-      inclus.</p>
+      <dt><code>sizefmt</code></dt>
+      <dd><p>La valeur définit l'unité employée lors de l'affichage de la
+      taille d'un fichier. Les valeurs possibles sont <code>bytes</code>
+      pour une taille en octets, ou <code>abbrev</code> pour une taille
+      en Ko ou Mo selon son importance ; par exemple, une taille de 1024
+      octets sera affichée sous la forme "1K".</p>
 
       <div class="example"><p><code>
-        # Exemple simple<br />
-        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&gt;
+      &lt;!--#config sizefmt="abbrev" --&gt;
       </code></p></div>
 
+      </dd>
+
+      <dt><code>timefmt</code></dt>
+      <dd><p>La valeur est une chaîne que pourra utiliser la fonction de la
+      bibliothèque standard <code>strftime(3)</code> lors de l'affichage
+      des dates.</p>
+
       <div class="example"><p><code>
-        # Chemins onerror dédiés<br />
-        &lt;!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" --&gt;
+      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
       </code></p></div>
 
       </dd>
       </dl>
      
 
-    <h3><a name="element.printenv" id="element.printenv">L'élément printenv</a></h3>
-      <p>Cette commande affiche la liste en mode texte de toutes les variables et de
-      leurs valeurs. Les caractères spéciaux sont encodés <code>entity</code> avant
-      d'être affichés (se reporter à l'élément <code><a href="#element.echo">echo</a></code> pour plus de détails). Cette
-      commande ne comporte pas d'attributs.</p>
-
-      <div class="example"><h3>Exemple</h3><p><code>
-        &lt;pre&gt;
-          &lt;!--#printenv --&gt;
-        &lt;/pre&gt;
-      </code></p></div>
-     
+    <h3><a name="element.echo" id="element.echo">L'élément echo</a></h3>
+      <p>Cette commande affiche le contenu d'une des <a href="#includevars">variables include</a> définies ci-dessous. Si
+      la variable n'est pas définie, le résultat est déterminé par la
+      valeur de la directive <code class="directive"><a href="#ssiundefinedecho">SSIUndefinedEcho</a></code>. Le format d'affichage des dates est
+      défini par l'attribut <code>timefmt</code> de la commande
+      config.</p>
 
-    <h3><a name="element.set" id="element.set">L'élément set</a></h3>
-      <p>Cette commande permet de définir la valeur d'une variable. Les
-      attributs sont :</p>
+      <p>Attributs:</p>
 
       <dl>
       <dt><code>var</code></dt>
-      <dd>Le nom de la variable à définir.</dd>
+      <dd>La valeur est le nom de la variable à afficher.</dd>
 
-      <dt><code>value</code></dt>
-      <dd>La valeur à affecter à la variable.</dd>
       <dt><code>decoding</code></dt>
       <dd><p>Spécifie si Apache doit effectuer un décodage dans la
       variable avant son traitement ultérieur. La valeur par défaut est
       <code>none</code>, et dans ce cas, aucun décodage n'est effectué.
-      Si la valeur est <code>url</code>, <code>urlencoded</code>,
-      <code>base64</code> ou
-      <code>entity</code>, c'est un décodage de type URL,
-      application/x-www-form-urlencoded, base64 ou
-      entité HTML qui sera respectivement effectué. Il est possible
-      d'effectuer plusieurs décodages en
+      Si la valeur est <code>url</code>, un décodage de type URL sera
+      effectué (il s'agit du codage de type %-encoding utilisé dans les
+      URLs des liens, etc...). Si la valeur est <code>urlencoded</code>,
+      c'est un décodage des éléments de type
+      application/x-www-form-urlencode (que l'on trouve dans les chaînes
+      de paramètres) qui sera effectué. Si la valeur est
+      <code>base64</code>, un
+      decodage de type base64 sera effectué, et si elle est
+      <code>entity</code>, c'est un décodage des entités HTML qui sera
+      effectué. Ce décodage est effectué avant tout codage ultérieur de
+      la variable. Il est possible d'effectuer plusieurs décodages en
       spécifiant plusieurs valeurs séparées par des virgules. Les
       spécifications de décodages restent valables jusqu'au prochain
-      attribut de décodage, ou la fin de l'élément. Pour être pris en
-      compte, l'attribut de <code>décodage</code>
+      attribut de décodage, ou la fin de l'élément.</p>
+
+      <p>Pour être pris en compte, l'attribut de <code>décodage</code>
       doit <em>précéder</em> l'attribut <code>var</code> correspondant.</p>
       </dd>
 
       <dt><code>encoding</code></dt>
-      <dd><p>Spécifie la manière dont Apache va encoder les caractères
+      <dd><p>Spécifie la manière dont Apache va coder les caractères
       spéciaux que la variable contient avant leur affichage. S'il est
-      défini à <code>none</code>, aucun encodage ne sera effectué. Si la
-      valeur est <code>url</code>, <code>urlencoding</code>,
-      <code>base64</code> ou
-      <code>entity</code>, c'est un encodage de type URL,
-      application/x-www-form-urlencoded, base64 ou
-      entité HTML qui sera respectivement effectué. Il est possible de
-      spécifier plusieurs types d'encodage en les séparant par des
-      virgules. La spécification du type d'encodage fera effet
-      jusqu'à la définition d'un nouvel attribut encoding
-      ou la fin de l'élément. Pour produire son effet, l'attribut <code>encoding</code> doit
-      précéder l'attribut <code>var</code> concerné. Les encodages sont
-      effectués après les opérations de décodage.</p>
-      </dd>
+      défini à <code>none</code>, aucun codage ne sera effectué. S'il
+      est défini à <code>url</code>, un codage de type URL sera effectué
+      (aussi connu sous le nom de codage avec caractères % , il convient
+      pour les URLS des liens, etc...). S'il est défini à
+      <code>urlencoded</code>, c'est un codage compatible
+      application/x-www-form-urlencoded qui sera effectué (à utiliser
+      dans les chaînes de paramètres). S'il est défini à
+      <code>base64</code>, c'est un encodage de type base64 qui sera
+      effectué. Au début d'un élément
+      <code>echo</code>, la valeur par défaut est définie à
+      <code>entity</code>, ce qui correspond à un codage de type entité
+      (codage qui convient pour un élément HTML de type bloc, comme le
+      paragraphe d'un texte). Cette valeur par défaut peut être modifiée
+      en ajoutant un attribut <code>encoding</code>, qui fera effet
+      jusqu'à la définition d'un nouvel attribut <code>encoding</code>
+      ou la fin de l'élément echo.</p>
 
-      </dl>
+      <p>Pour produire son effet, l'attribut <code>encoding</code> doit
+      précéder l'attribut <code>var</code> concerné.</p>
 
-      <div class="example"><h3>Exemple</h3><p><code>
-        &lt;!--#set var="category" value="help" --&gt;
+      <div class="warning">
+        Afin de prévenir les attaques de type cross-site scripting, il
+       est recommandé de <em>toujours</em> encoder les données fournies
+       par les utilisateurs.
+      </div>
+
+      <div class="example"><h3>Example</h3><p><code>
+        &lt;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
       </code></p></div>
+      </dd>
+      </dl>
      
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="includevars" id="includevars">Variables include</a></h2>
-    
-
-    <p>À l'instar des variables de l'environnement CGI standard, ces
-    variables sont mises à la disposition de la commande
-    <code>echo</code>, des opérateurs conditionnels <code>if</code> et
-    <code>elif</code>, et de tout programme invoqué par le document.</p>
 
-    <dl>
-      <dt><code>DATE_GMT</code></dt>
-      <dd>La date GMT (Greenwich Mean Time) courante.</dd>
+    <h3><a name="element.exec" id="element.exec">L'élément exec</a></h3>
+      <p>La commande <code>exec</code> exécute la commande shell ou le
+      script spécifié. Elle nécessite le chargement du module
+      <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>. Si <code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>IncludesNOEXEC</code> est
+      définie, cette commande est désactivée. Les attributs disponibles
+      sont :</p>
 
-      <dt><code>DATE_LOCAL</code></dt>
-      <dd>La date locale courante.</dd>
+      <dl>
+      <dt><code>cgi</code></dt>
+      <dd><p>La valeur spécifie un chemin URL vers le script CGI (encodé
+      avec caractères %). Si le chemin ne commence pas par un slash (/),
+      il est considéré comme relatif au document courant. Le document
+      référencé par ce chemin est invoqué en tant que script CGI, même
+      s'il n'est pas censé être reconnu comme tel par le serveur. Les
+      scripts CGI doivent cependant être activés dans le répertoire qui
+      contient les scripts (via la directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ou l'<code class="directive"><a href="../mod/core.html#options">Options</a></code> <code>ExecCGI</code>).</p>
 
-      <dt><code>DOCUMENT_NAME</code></dt>
-      <dd>Le nom de base du fichier demandé par l'utilisateur (sans son
-      chemin).</dd>
+      <p>Le <code>PATH_INFO</code> et la chaîne d'arguments
+      (<code>QUERY_STRING</code>) de la requête originale du client sont
+      fournis au script CGI ; ils <em>ne peuvent pas</em> être spécifiés
+      dans le chemin de l'URL. Le script disposera des variables include
+      en plus de l'environnement standard <a href="mod_cgi.html">CGI</a>.</p>
 
-      <dt><code>DOCUMENT_URI</code></dt>
-      <dd>Le chemin URL (caractères % décodés) du document demandé par
-      l'utilisateur. Notez que dans le cas d'inclusions de fichiers
-      imbriquées, il ne s'agit <em>pas</em> de l'URL du document
-      courant. Notez également que si l'URL est modifiée en interne (par
-      exemple via une directive <code class="directive"><a href="../mod/mod_alias.html#alias">alias</a></code> ou <code class="directive"><a href="../mod/mod_dir.html#directoryindex">directoryindex</a></code>), c'est l'URL modifiée
-      que contiendra la variable.</dd>
+      <div class="example"><h3>Exemple</h3><p><code>
+        &lt;!--#exec cgi="/cgi-bin/exemple.cgi" --&gt;
+      </code></p></div>
 
-      <dt><code>LAST_MODIFIED</code></dt>
-      <dd>La date de dernière modification du document demandé par
-      l'utilisateur.</dd>
+      <p>Si, à la place d'un flux de sortie, le script renvoie un
+      en-tête <code>Location:</code>, ce dernier sera traduit en ancrage
+      HTML.</p>
 
-      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
-      <dd>Si une chaîne d'arguments est présente, elle sera affectée à
-      cette variable, les caractères % décodés, et éventuellement
-      <em>échappés</em> pour qu'ils ne soient pas interprétés par le
-      shell (les caractères spéciaux comme <code>&amp;</code>,etc...
-      sont précédés d'anti-slashes).</dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="substitution" id="substitution">Substitution de variable</a></h2>
+      <p>L'élément <code><a href="#includevirtual">include
+      virtual</a></code> doit être préféré à <code>exec cgi</code>. En
+      particulier, si vous devez transmettre des arguments
+      supplémentaires à un programme CGI en utilisant la chaîne
+      d'arguments de la requête, c'est impossible avec <code>exec
+      cgi</code>, mais vous pouvez y parvenir avec <code>include
+      virtual</code> comme suit :</p>
 
-    <p>Une substitution de variable à l'intérieur d'une chaîne entre
-    guillemets s'effectue dans la plupart des situations où cette
-    dernière peut raisonablement constituer un argument d'une directive
-    SSI. Sont concernées les directives <code>config</code>,
-    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
-    <code>include</code>, <code>echo</code>, et <code>set</code>. Si la
-    directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est définie à
-    <code>on</code>, la substitution s'effectue aussi dans les arguments
-    des opérateurs conditionnels. Vous pouvez insérer
-    un signe dollar en tant que caractère littéral dans une chaîne en
-    utilisant un anti-slash :</p>
+      <div class="example"><p><code>
+        &lt;!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --&gt;
+      </code></p></div>
+      </dd>
 
-    <div class="example"><p><code>
-      &lt;!--#set var="cur" value="\$test" --&gt;
-    </code></p></div>
+      <dt><code>cmd</code></dt>
+      <dd><p>Le serveur va exécuter la commande fournie en utilisant
+      <code>/bin/sh</code>. La commande dispose des <a href="#includevars">variables include</a>, en plus du jeu habituel
+      de variables CGI.</p>
 
-    <p>Si une référence de variable doit être substituée au beau milieu
-    d'une séquence de caractères qui pourrait être elle-même considérée
-    comme un identifiant valide, l'ambiguïté peut être levée en
-    entourant la référence d'accolades, à la manière du shell :</p>
+      <p>Il est toujours préférable d'utiliser <code><a href="#includevirtual">#include virtual</a></code> à la place de
+      <code>#exec cgi</code> ou <code>#exec cmd</code>. <code>#include
+      virtual</code> utilise le mécanisme standard des sous-requêtes
+      d'Apache pour inclure des fichiers ou des scripts. Il a fait
+      l'objet de tests plus approfondis et sa maintenance est mieux
+      suivie.</p>
 
-    <div class="example"><p><code>
-      &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
-    </code></p></div>
+      <p>De plus, sur certaines plate-formes, comme Win32, et sous unix,
+      si l'on utilise <a href="../suexec.html">suexec</a>, il est
+      impossible de transmettre des arguments à une commande dans une
+      directive <code>exec</code>, à moins d'insérer des espaces dans la
+      commande. Ainsi, alors que ce qui suit fonctionnera sous unix avec
+      une configuration sans suexec, l'effet produit ne sera pas celui
+      désiré sous Win32, ou dans le cas de l'utilisation de suexec
+      :</p>
 
-    <p>Dans cet exemple, la variable <code>Zed</code> se verra affecter
-    la valeur "<code>X_Y</code>" si <code>REMOTE_HOST</code> et
-    <code>REQUEST_METHOD</code> contiennent respectivement
-    "<code>X</code>" et "<code>Y</code>".</p>
+      <div class="example"><p><code>
+        &lt;!--#exec cmd="perl /chemin/vers/script_perl arg1 arg2" --&gt;
+      </code></p></div>
+      </dd>
+      </dl>
+     
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="flowctrl" id="flowctrl">Eléments de contrôle d'inclusion conditionnelle</a></h2>
-    
+    <h3><a name="element.fsize" id="element.fsize">L'élément fsize</a></h3>
+      <p>Cette commande permet d'afficher la taille du fichier spécifié
+      en fonction des spécifications de format de <code>sizefmt</code>.
+      Attributs :</p>
 
-    <p>Les éléments de base du contrôle d'inclusion conditionnelle sont
-    :</p>
+      <dl>
+      <dt><code>file</code></dt>
+      <dd>La valeur est le chemin du fichier, relatif au répertoire
+      contenant le document en cours d'interprétation.
 
-    <div class="example"><p><code>
-      &lt;!--#if expr="<var>test_condition</var>" --&gt;<br />
-      &lt;!--#elif expr="<var>test_condition</var>" --&gt;<br />
-      &lt;!--#else --&gt;<br />
-      &lt;!--#endif --&gt;
+      <div class="example"><p><code>
+        Ce fichier a une taille de &lt;!--#fsize file="mod_include.html"
+       --&gt; octets.
     </code></p></div>
 
-    <p>L'élément <code>if</code> fonctionne de la même manière que
-    la directive if d'un langage de programmation. La condition est
-    évaluée et si le résultat est vrai, le texte qui suit jusqu'au
-    prochain élément <code>elif</code>, <code>else</code> ou
-    <code>endif</code> sera inclus dans le flux de sortie.</p>
-
-    <p>Les éléments <code>elif</code> ou <code>else</code> permettent
-    d'insérer du texte dans le flux de sortie si
-    <var>test_condition</var> s'est révélé faux. Ces éléments sont
-    optionnels.</p>
-
-    <p>L'élément <code>endif</code> termine le bloc de traitement
-    conditionnel <code>if</code> et est obligatoire.</p>
-
-    <p><var>test_condition</var> est une expression booléenne qui
-    emprunte la syntaxe <a href="../expr.html">ap_expr</a>. La directive
-    <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>
-    permet de modifier cette syntaxe pour la rendre compatible avec
-    Apache HTTPD 2.2.x.</p>
-
-    <p>Le jeu de variables SSI avec l'élément <code>var</code> sont
-    exportées vers l'environnement de la requête et sont accessibles via
-    la fonction <code>reqenv</code>. Pour faire simple, le nom de
-    fonction <code>v</code> est aussi disponible dans le module
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
+    La valeur de <code>file</code> ne peut pas faire référence à un
+    fichier situé à un niveau supérieur de l'arborescence du répertoire
+    courant ou en dehors de la racine des documents ; il ne peut donc
+    ni commencer par un slash, ni contenir la séquence de caractères
+    <code>../</code>. Si c'est le cas, le message d'erreur <code>The
+    given path was above the root path</code> sera renvoyé.
+      </dd>
 
-    <p>Dans l'exemple suivant, "depuis le réseau local"  sera affiché si
-    l'adresse IP du client appartient au sous-réseau 10.0.0.0/8.</p>
+      <dt><code>virtual</code></dt>
+      <dd>La valeur est un chemin URL (codé avec caractères %). S'il ne
+      commence pas par un slash (/), il est considéré comme relatif au
+      document courant. Notez que cette commande n'affiche <em>pas</em>
+      la taille de la sortie d'un programme CGI, mais la taille du
+      programme CGI lui-même.</dd>
+      </dl>
 
-    <div class="example"><p><code>
-      &lt;!--#if expr='-R "10.0.0.0/8"' --&gt;<br />
-      <span class="indent">
-        depuis le réseau local<br />
-      </span>
-      &lt;!--#else --&gt;<br />
-      <span class="indent">
-        depuis ailleurs<br />
-      </span>
-      &lt;!--#endif --&gt;
+      <div class="example"><p><code>
+        Ce fichier a une taille de &lt;!--#fsize
+       virtual="/docs/mod/mod_include.html" --&gt; octets.
     </code></p></div>
 
-    <p>Dans l'exemple suivant, "foo vaut bar" sera affiché si la variable
-    <code>foo</code> contient la valeur "bar".</p>
+      <p>Notez que dans la plupart des cas, ces deux attributs sont
+      identiques. Cependant, l'attribut <code>file</code> ne respecte
+      pas les aliases URL-space.</p>
+     
 
-    <div class="example"><p><code>
-      &lt;!--#if expr='v("foo") = "bar"' --&gt;<br />
-      <span class="indent">
-        foo vaut bar<br />
-      </span>
-      &lt;!--#endif --&gt;
-    </code></p></div>
+    <h3><a name="element.flastmod" id="element.flastmod">L'élément flastmod</a></h3>
+      <p>Cette commande permet d'afficher la date de dernière
+      modification du fichier spécifié, en fonction des spécifications
+      de format de <code>timefmt</code>. Les attributs sont les mêmes
+      que ceux de la commande <code><a href="#element.fsize">fsize</a></code>.</p>
+     
+
+    <h3><a name="element.include" id="element.include">L'élément include</a></h3>
+      <p>Cette commande permet d'insérer le texte d'un autre document ou
+      fichier dans le fichier en cours d'interprétation. Tout fichier
+      inclus est soumis au contrôle d'accès habituel. Si <a href="core.html#options">Options</a> <code>IncludesNOEXEC</code>
+      est défini pour le répertoire contenant le fichier
+      interprété, seuls les documents possèdant un
+      <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> de type texte
+      (<code>text/plain</code>, <code>text/html</code>, etc...) seront
+      inclus. Les scripts CGI, quant à eux, sont invoqués de manière
+      habituelle en utilisant l'URL complète fournie avec la commande, y
+      compris toute chaîne d'arguments éventuelle.</p>
 
-    <div class="note"><h3>Documentation de référence</h3>
-    <p>Voir aussi <a href="../expr.html">Les expressions dans le serveur
-    HTTP Apache</a> pour une référence complète et des exemples. Les
-    fonctions <em>restricted</em> ne sont pas disponibles dans
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
-    </div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="legacyexpr" id="legacyexpr">Syntaxe des expressions héritée</a></h2>
-    
+      <p>Un attribut définit le chemin du document à inclure, et peut
+      apparaître plusieurs fois dans l'élément à inclure ; en retour, pour
+      chaque attribut fourni à la commande include, une inclusion est
+      effectuée. Les attributs disponibles sont :</p>
 
-    <p>Cette section décrit la syntaxe de l'élément <code>#if
-    expr</code> dans le cas où la directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est définie à
-    <code>on</code>.</p>
+      <dl>
+      <dt><code>file</code></dt>
+      <dd>La valeur est un chemin relatif au répertoire contenant le
+      fichier en cours d'interprétation. Elle ne peut ni contenir
+      <code>../</code>, ni être un chemin absolu. Ainsi, vous ne pouvez
+      pas inclure de fichiers situés en dehors de l'arborescence du
+      site web ou dans un niveau supérieur à celui du fichier courant
+      dans cette arborescence. Il est toujours préférable d'utiliser
+      l'attribut <code>virtual</code>.</dd>
 
-    <dl>
-      <dt><code><var>chaîne</var></code></dt>
-      <dd>vrai si <var>chaîne</var> n'est pas vide</dd>
+      <dt><code><a id="includevirtual" name="includevirtual">virtual</a></code></dt>
+      <dd><p>La valeur est un chemin URL (codé avec caractères %). L'URL
+      ne peut contenir qu'un chemin et une chaîne d'arguments
+      éventuelle, à l'exclusion de tout protocole ou nom d'hôte. S'il ne
+      commence pas par un slash (/), il est considéré comme relatif au
+      document courant.</p>
 
-      <dt><code><var>-A string</var></code></dt>
-      <dd><p>vrai si l'URL que contient la chaîne est accessible du
-      point de vue de la configuration, faux sinon. Il
-      s'avère utile lorsqu'un lien vers une URL doit être caché aux
-      utilisateurs qui ne sont pas autorisés à voir cette URL. Notez que
-      le test porte sur l'autorisation d'accès à l'URL, et non sur son
-      existence.</p>
+      <p>Une URL est construite à partir de l'attribut, et la sortie que
+      renverrait le serveur si l'URL était accédée par le client est
+      incluse dans la sortie interprétée. Les inclusions de fichiers
+      peuvent ainsi être imbriquées.</p>
 
-      <div class="example"><h3>Exemple</h3><p><code>
-        &lt;!--#if expr="-A /prive" --&gt;<br />
-        <span class="indent">
-          Cliquez &lt;a href="/prive"&gt;ici&lt;/a&gt; pour accéder aux
-         informations privées.<br />
-        </span>
-        &lt;!--#endif --&gt;
-      </code></p></div>
-      </dd>
+      <p>Si l'URL spécifiée correspond à un programme CGI, le programme
+      sera exécuté, et son flux de sortie inséré à la place de la
+      directive dans le fichier interprété. Vous pouvez insérer une
+      chaîne d'arguments dans une URL correspond à un programme CGI
+      :</p>
 
-      <dt><code><var>chaîne1</var> = <var>chaîne2</var><br />
-      <var>chaîne1</var> == <var>chaîne2</var><br />
-      <var>chaîne1</var> != <var>chaîne2</var></code></dt>
+      <div class="example"><p><code>
+        &lt;!--#include virtual="/cgi-bin/exemple.cgi?argument=valeur" --&gt;
+      </code></p></div>
 
-      <dd><p>Compare <var>chaîne1</var> à <var>chaîne2</var>. Si
-      <var>chaîne2</var> est de la forme
-      <code>/<var>chaîne2</var>/</code>, elle est traitée comme une
-      expression rationnelle. Les expressions rationnelles sont
-      implémentées par le moteur <a href="http://www.pcre.org">PCRE</a>
-      et possèdent la même syntaxe que celles de <a href="http://www.perl.com">perl 5</a>. Notez que <code>==</code>
-      n'est qu'un alias pour <code>=</code> et se comporte exactement de
-      la même manière que ce dernier.</p>
+      <p><code>include virtual</code> doit être préféré à <code>exec
+      cgi</code> pour inclure le flux de sortie d'un programme CGI dans
+      un document HTML.</p>
 
-      <p>Si vous faites une comparaison directe (<code>=</code> ou
-      <code>==</code>), vous pouvez extraire des parties de l'expression
-      rationnelle. Les parties extraites sont stockées dans les
-      variables spéciales <code>$1</code> .. <code>$9</code>. L'ensemble
-      de la chaîne correspondant à l'expression rationnelle est stocké
-      dans la variable spéciale <code>$0</code>.</p>
+      <p>Si la directive <code class="directive"><a href="../mod/mod_request.html#keptbodysize">KeptBodySize</a></code> est correctement
+      définie et valide pour le fichier inclus, les tentatives de
+      requêtes POST vers le document HTML qui inclut des fichiers seront
+      transmises aux sous-requêtes en tant que requêtes POST
+      elles-mêmes. Sans cette directive, toutes les sous-requêtes sont
+      traitées en tant que requêtes GET.</p>
 
-      <div class="example"><h3>Exemple</h3><p><code>
-        &lt;!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --&gt;<br />
-        <span class="indent">
-          &lt;!--#set var="session" value="$1" --&gt;<br />
-        </span>
-        &lt;!--#endif --&gt;
-      </code></p></div>
       </dd>
 
-      <dt><code><var>chaîne1</var> &lt; <var>chaîne2</var><br />
-       <var>chaîne1</var> &lt;= <var>chaîne2</var><br />
-       <var>chaîne1</var> &gt; <var>chaîne2</var><br />
-       <var>chaîne1</var> &gt;= <var>chaîne2</var></code></dt>
-
-      <dd>Compare <var>chaîne1</var> à <var>chaîne2</var>. Notez que les
-      chaînes sont comparées de manière <em>littérale</em> (en utilisant
-      <code>strcmp(3)</code>). Ainsi, la chaîne "100" est inférieure à
-      "20".</dd>
+      <dt><code>onerror</code></dt>
+      <dd><p>La valeur est un chemin-URL (codé-%) qui est affiché si une
+      tentative précédente d'inclure un fichier ou un attribut virtuel a
+      échoué. Pour produire son effet, cet attribut doit être spécifié
+      après le fichier ou les attributs virtuels concernés. Si la
+      tentative d'inclure le chemin onerror échoue, ou si onerror n'est
+      pas spécifié, c'est le message d'erreur par défaut qui sera
+      inclus.</p>
 
-      <dt><code>( <var>test_condition</var> )</code></dt>
-      <dd>vrai si <var>test_condition</var> est vrai</dd>
+      <div class="example"><p><code>
+        # Exemple simple<br />
+        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&gt;
+      </code></p></div>
 
-      <dt><code>! <var>test_condition</var></code></dt>
-      <dd>vrai si <var>test_condition</var> est faux</dd>
+      <div class="example"><p><code>
+        # Chemins onerror dédiés<br />
+        &lt;!--#include virtual="/path-a.html" onerror="/error-a.html" virtual="/path-b.html" onerror="/error-b.html" --&gt;
+      </code></p></div>
 
-      <dt><code><var>test_condition1</var> &amp;&amp;
-        <var>test_condition2</var></code></dt>
-      <dd>vrai si <var>test_condition1</var> et
-      <var>test_condition2</var> sont tous les deux vrais</dd>
+      </dd>
+      </dl>
+     
 
-      <dt><code><var>test_condition1</var> ||
-        <var>test_condition2</var></code></dt>
-      <dd>vrai si au moins un des tests <var>test_condition1</var> ou
-      <var>test_condition2</var> est vrai</dd>
-    </dl>
+    <h3><a name="element.printenv" id="element.printenv">L'élément printenv</a></h3>
+      <p>Cette commande affiche la liste en mode texte de toutes les variables et de
+      leurs valeurs. Les caractères spéciaux sont encodés <code>entity</code> avant
+      d'être affichés (se reporter à l'élément <code><a href="#element.echo">echo</a></code> pour plus de détails). Cette
+      commande ne comporte pas d'attributs.</p>
 
-    <p>"<code>=</code>" et "<code>!=</code>" ont une priorité supérieure
-    à "<code>&amp;&amp;</code>" et "<code>||</code>". "<code>!</code>" a
-    la priorité la plus haute. Ainsi, les deux directives suivantes sont
-    équivalentes :</p>
+      <div class="example"><h3>Exemple</h3><p><code>
+        &lt;pre&gt;
+          &lt;!--#printenv --&gt;
+        &lt;/pre&gt;
+      </code></p></div>
+     
 
-    <div class="example"><p><code>
-      &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;<br />
-      &lt;!--#if expr="($a = test1) &amp;&amp; ($b = test2)" --&gt;
-    </code></p></div>
+    <h3><a name="element.set" id="element.set">L'élément set</a></h3>
+      <p>Cette commande permet de définir la valeur d'une variable. Les
+      attributs sont :</p>
 
-    <p>Les opérateurs booléens <code>&amp;&amp;</code> et
-    <code>||</code> ont la même priorité. Ainsi, si vous voulez
-    augmenter la priorité d'un de ces opérateurs, vous devez utiliser
-    des parenthèses.</p>
+      <dl>
+      <dt><code>var</code></dt>
+      <dd>Le nom de la variable à définir.</dd>
 
-    <p>Tout ce qui n'est pas reconnu comme variable ou opérateur est
-    traité comme une chaîne. Les chaînes peuvent aussi être entourées
-    d'apostrophes : <code>'chaîne'</code>. Les chaînes sans apostrophe
-    ne peuvent pas contenir d'espaces (espaces ou tabulations) car
-    ceux-ci servent à séparer certains éléments comme les variables. Si
-    plusieurs chaînes se trouvent dans une ligne, elles sont concaténées
-    en utilisant des espaces. Ainsi,</p>
+      <dt><code>value</code></dt>
+      <dd>La valeur à affecter à la variable.</dd>
+      <dt><code>decoding</code></dt>
+      <dd><p>Spécifie si Apache doit effectuer un décodage dans la
+      variable avant son traitement ultérieur. La valeur par défaut est
+      <code>none</code>, et dans ce cas, aucun décodage n'est effectué.
+      Si la valeur est <code>url</code>, <code>urlencoded</code>,
+      <code>base64</code> ou
+      <code>entity</code>, c'est un décodage de type URL,
+      application/x-www-form-urlencoded, base64 ou
+      entité HTML qui sera respectivement effectué. Il est possible
+      d'effectuer plusieurs décodages en
+      spécifiant plusieurs valeurs séparées par des virgules. Les
+      spécifications de décodages restent valables jusqu'au prochain
+      attribut de décodage, ou la fin de l'élément. Pour être pris en
+      compte, l'attribut de <code>décodage</code>
+      doit <em>précéder</em> l'attribut <code>var</code> correspondant.</p>
+      </dd>
 
-    <div class="example"><p><code><var>chaîne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>chaîne2</var></code> devient <code><var>chaîne1</var>&nbsp;<var>chaîne2</var></code><br />
-      <br />
-      et<br />
-      <br />
-      <code>'<var>chaîne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>chaîne2</var>'</code> devient <code><var>chaîne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>chaîne2</var></code>.</p></div>
+      <dt><code>encoding</code></dt>
+      <dd><p>Spécifie la manière dont Apache va encoder les caractères
+      spéciaux que la variable contient avant leur affichage. S'il est
+      défini à <code>none</code>, aucun encodage ne sera effectué. Si la
+      valeur est <code>url</code>, <code>urlencoding</code>,
+      <code>base64</code> ou
+      <code>entity</code>, c'est un encodage de type URL,
+      application/x-www-form-urlencoded, base64 ou
+      entité HTML qui sera respectivement effectué. Il est possible de
+      spécifier plusieurs types d'encodage en les séparant par des
+      virgules. La spécification du type d'encodage fera effet
+      jusqu'à la définition d'un nouvel attribut encoding
+      ou la fin de l'élément. Pour produire son effet, l'attribut <code>encoding</code> doit
+      précéder l'attribut <code>var</code> concerné. Les encodages sont
+      effectués après les opérations de décodage.</p>
+      </dd>
 
-    <div class="note"><h3>Optimisation des expressions booléennes</h3>
-      <p>Si les expressions atteignent une complexité suffisante pour
-      ralentir les traitements de manière significative, vous pouvez
-      essayer de les optimiser en fonction des règles d'évaluation :</p>
-      <ul>
-      <li>Les expressions sont évaluées de la gauche vers la droite</li>
-      <li>Les opérateurs booléens binaires (<code>&amp;&amp;</code> et
-      <code>||</code>) font l'objet d'une évaluation abrégée chaque fois
-      que cela est possible. En d'autres termes, et selon la règle
-      ci-dessus, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> évalue tout d'abord la
-      partie gauche de l'expression. Si le résultat de l'évaluation de
-      cette partie gauche suffit à déterminer le résultat final,
-      l'évaluation s'arrête ici. Dans le cas contraire, la partie droite
-      est évaluée, et le résultat final tient compte des résultats des
-      évaluations des parties gauche et droite.</li>
-      <li>L'évaluation abrégée est désactivée tant qu'il reste des
-      expressions régulières à traiter. Ces dernières doivent être
-      évaluées afin de définir les variables correspondant aux
-      références arrières (<code>$1</code> .. <code>$9</code>).</li>
-      </ul>
-      <p>Si vous voulez déterminer la manière dont une expression est
-      traitée, vous pouvez recompiler <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en
-      utilisant l'option de compilation <code>-DDEBUG_INCLUDE</code>.
-      Ceci a pour effet d'insérer, pour chaque expression interprétée,
-      des informations étiquetées, l'arbre d'interprétation et la
-      manière dont elle est évaluée au sein du flux de sortie envoyé au
-      client.</p>
-    </div>
+      </dl>
 
-    <div class="note"><h3>Slashes d'échappement dans les expressions
-    rationnelles</h3>
-     <p>Tous les caractères slashes qui ne sont pas des séparateurs dans
-     votre expression rationnelle doivent être échappés, et ceci sans
-     tenir compte de leur signification du point de vue du moteur
-     d'expressions rationnelles.</p>
-    </div>
+      <div class="example"><h3>Exemple</h3><p><code>
+        &lt;!--#set var="category" value="help" --&gt;
+      </code></p></div>
+     
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="includevars" id="includevars">Variables include</a></h2>
+    
 
-    <div class="note"><h3>Documentation de référence</h3>
-    <p>Voir le document <a href="../expr.html">Les expressions dans le
-    serveur HTTP Apache</a>, pour une référence complète et des exemples.</p>
-    </div>
+    <p>À l'instar des variables de l'environnement CGI standard, ces
+    variables sont mises à la disposition de la commande
+    <code>echo</code>, des opérateurs conditionnels <code>if</code> et
+    <code>elif</code>, et de tout programme invoqué par le document.</p>
 
+    <dl>
+      <dt><code>DATE_GMT</code></dt>
+      <dd>La date GMT (Greenwich Mean Time) courante.</dd>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssiendtag" id="ssiendtag">Directive</a> <a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chaîne qui termine l'élément include</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>Cette directive permet de modifier la chaîne que
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> interprète comme la fin d'un élément
-    include.</p>
+      <dt><code>DATE_LOCAL</code></dt>
+      <dd>La date locale courante.</dd>
 
-    <pre class="prettyprint lang-config">SSIEndTag "%&gt;"</pre>
+      <dt><code>DOCUMENT_NAME</code></dt>
+      <dd>Le nom de base du fichier demandé par l'utilisateur (sans son
+      chemin).</dd>
 
+      <dt><code>DOCUMENT_URI</code></dt>
+      <dd>Le chemin URL (caractères % décodés) du document demandé par
+      l'utilisateur. Notez que dans le cas d'inclusions de fichiers
+      imbriquées, il ne s'agit <em>pas</em> de l'URL du document
+      courant. Notez également que si l'URL est modifiée en interne (par
+      exemple via une directive <code class="directive"><a href="../mod/mod_alias.html#alias">alias</a></code> ou <code class="directive"><a href="../mod/mod_dir.html#directoryindex">directoryindex</a></code>), c'est l'URL modifiée
+      que contiendra la variable.</dd>
 
+      <dt><code>LAST_MODIFIED</code></dt>
+      <dd>La date de dernière modification du document demandé par
+      l'utilisateur.</dd>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssierrormsg" id="ssierrormsg">Directive</a> <a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Message d'erreur affiché lorsqu'une erreur SSI
-survient</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
-directive]"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>La directive <code class="directive">SSIErrorMsg</code> permet de
-    modifier le message d'erreur affiché lorsqu'une erreur SSI survient.
-    Pour les serveurs en production, il est recommandé de modifier le
-    message d'erreur par défaut en <code>"&lt;!-- Error
-    --&gt;"</code>, de façon à ce que le message ne soit pas
-    présenté à l'utilisateur.</p>
+      <dt><code>QUERY_STRING_UNESCAPED</code></dt>
+      <dd>Si une chaîne d'arguments est présente, elle sera affectée à
+      cette variable, les caractères % décodés, et éventuellement
+      <em>échappés</em> pour qu'ils ne soient pas interprétés par le
+      shell (les caractères spéciaux comme <code>&amp;</code>,etc...
+      sont précédés d'anti-slashes).</dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="substitution" id="substitution">Substitution de variable</a></h2>
 
-    <p>Cette directive a le même effet que l'élément
-    <code>&lt;!--#config errmsg=<var>message</var> --&gt;</code>.</p>
+    <p>Une substitution de variable à l'intérieur d'une chaîne entre
+    guillemets s'effectue dans la plupart des situations où cette
+    dernière peut raisonablement constituer un argument d'une directive
+    SSI. Sont concernées les directives <code>config</code>,
+    <code>exec</code>, <code>flastmod</code>, <code>fsize</code>,
+    <code>include</code>, <code>echo</code>, et <code>set</code>. Si la
+    directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est définie à
+    <code>on</code>, la substitution s'effectue aussi dans les arguments
+    des opérateurs conditionnels. Vous pouvez insérer
+    un signe dollar en tant que caractère littéral dans une chaîne en
+    utilisant un anti-slash :</p>
 
-    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&gt;"</pre>
+    <div class="example"><p><code>
+      &lt;!--#set var="cur" value="\$test" --&gt;
+    </code></p></div>
 
+    <p>Si une référence de variable doit être substituée au beau milieu
+    d'une séquence de caractères qui pourrait être elle-même considérée
+    comme un identifiant valide, l'ambiguïté peut être levée en
+    entourant la référence d'accolades, à la manière du shell :</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssietag" id="ssietag">Directive</a> <a name="SSIETag" id="SSIETag">SSIETag</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si des en-têtes ETags sont générés par le serveur.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIETag on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIETag off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.2.15 du serveur HTTP
-Apache.</td></tr>
-</table>
-      <p>Dans le cas général, un fichier filtré par
-      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> peut contenir des éléments soit
-      générés dynamiquement, soit éventuellement modifiés indépendemment
-      du fichier original. En conséquence, il est demandé par défaut au
-      serveur de ne pas générer d'en-tête <code>ETag</code> à la réponse
-      en ajoutant <code>no-etag</code> aux informations de requête.</p>
+    <div class="example"><p><code>
+      &lt;!--#set var="Zed" value="${REMOTE_HOST}_${REQUEST_METHOD}" --&gt;
+    </code></p></div>
 
-      <p>Ce comportement peut être modifié via la directive
-      <code class="directive">SSIETag</code> qui permet au serveur de générer un
-      en-tête <code>ETag</code>. On peut aussi l'utiliser pour la mise
-      en cache de la sortie. Notez qu'un serveur d'arrière-plan ou un
-      générateur de contenu dynamique peut lui-même générer un en-tête
-      <code>ETag</code>, en ignorant l'information <code>no-etag</code>,
-      cet en-tête <code>ETag</code> étant transmis par
-      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> sans tenir compte de la définition de
-      la présente directive. La directive <code class="directive">SSIETag</code>
-      peut prendre une des valeurs suivantes :</p>
+    <p>Dans cet exemple, la variable <code>Zed</code> se verra affecter
+    la valeur "<code>X_Y</code>" si <code>REMOTE_HOST</code> et
+    <code>REQUEST_METHOD</code> contiennent respectivement
+    "<code>X</code>" et "<code>Y</code>".</p>
 
-      <dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="flowctrl" id="flowctrl">Eléments de contrôle d'inclusion conditionnelle</a></h2>
+    
 
-        <dt><code>off</code></dt>
-        <dd><code>no-etag</code> sera ajouté aux informations de
-       requête, et il sera demandé au serveur de ne pas générer
-       d'en-tête <code>ETag</code>. Lorsqu'un serveur ignore la valeur
-       de <code>no-etag</code> et génère tout de même un en-tête
-       <code>ETag</code>, ce dernier sera respecté.</dd>
+    <p>Les éléments de base du contrôle d'inclusion conditionnelle sont
+    :</p>
 
-        <dt><code>on</code></dt>
-        <dd>Les en-têtes <code>ETag</code> existants seront respectés,
-       et ceux générés par le serveur seront ajoutés à la réponse.</dd>
+    <div class="example"><p><code>
+      &lt;!--#if expr="<var>test_condition</var>" --&gt;<br />
+      &lt;!--#elif expr="<var>test_condition</var>" --&gt;<br />
+      &lt;!--#else --&gt;<br />
+      &lt;!--#endif --&gt;
+    </code></p></div>
 
-      </dl>
+    <p>L'élément <code>if</code> fonctionne de la même manière que
+    la directive if d'un langage de programmation. La condition est
+    évaluée et si le résultat est vrai, le texte qui suit jusqu'au
+    prochain élément <code>elif</code>, <code>else</code> ou
+    <code>endif</code> sera inclus dans le flux de sortie.</p>
 
+    <p>Les éléments <code>elif</code> ou <code>else</code> permettent
+    d'insérer du texte dans le flux de sortie si
+    <var>test_condition</var> s'est révélé faux. Ces éléments sont
+    optionnels.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssilastmodified" id="ssilastmodified">Directive</a> <a name="SSILastModified" id="SSILastModified">SSILastModified</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si des en-têtes <code>Last-Modified</code> sont
-générés par le serveur.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILastModified on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSILastModified off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.2.15 du serveur HTTP
-Apache.</td></tr>
-</table>
-      <p>Dans le cas général, un fichier filtré par
-      <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> peut contenir des éléments soit
-      générés dynamiquement, soit éventuellement modifiés indépendemment
-      du fichier original. En conséquence, l'en-tête
-      <code>Last-Modified</code> est supprimé par défaut de la réponse.</p>
+    <p>L'élément <code>endif</code> termine le bloc de traitement
+    conditionnel <code>if</code> et est obligatoire.</p>
 
-      <p>La directive <code class="directive">SSILastModified</code> permet de
-      modifier ce comportement en faisant en sorte que l'en-tête
-      <code>Last-Modified</code> soit respecté s'il est déjà présent, ou
-      défini dans le cas contraire. On peut aussi l'utiliser pour la mise
-      en cache de la sortie. La directive
-      <code class="directive">SSILastModified</code> peut prendre une des
-      valeurs suivantes :</p>
+    <p><var>test_condition</var> est une expression booléenne qui
+    emprunte la syntaxe <a href="../expr.html">ap_expr</a>. La directive
+    <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code>
+    permet de modifier cette syntaxe pour la rendre compatible avec
+    Apache HTTPD 2.2.x.</p>
 
-      <dl>
+    <p>Le jeu de variables SSI avec l'élément <code>var</code> sont
+    exportées vers l'environnement de la requête et sont accessibles via
+    la fonction <code>reqenv</code>. Pour faire simple, le nom de
+    fonction <code>v</code> est aussi disponible dans le module
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
 
-        <dt><code>off</code></dt>
-        <dd>L'en-tête <code>Last-Modified</code> sera supprimé des
-       réponses, à moins que la directive <code class="directive"><a href="#xbithack">XBitHack</a></code> ne soit définie à
-       <code>full</code> comme décrit plus loin.</dd>
+    <p>Dans l'exemple suivant, "depuis le réseau local"  sera affiché si
+    l'adresse IP du client appartient au sous-réseau 10.0.0.0/8.</p>
 
-        <dt><code>on</code></dt>
-        <dd>L'en-tête <code>Last-Modified</code> sera respecté s'il est
-       déjà présent, et ajouté à la réponse si cette dernière est un
-       fichier et si l'en-tête est manquant. La directive <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code> l'emporte sur
-       la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</dd>
+    <div class="example"><p><code>
+      &lt;!--#if expr='-R "10.0.0.0/8"' --&gt;<br />
+      <span class="indent">
+        depuis le réseau local<br />
+      </span>
+      &lt;!--#else --&gt;<br />
+      <span class="indent">
+        depuis ailleurs<br />
+      </span>
+      &lt;!--#endif --&gt;
+    </code></p></div>
 
-      </dl>
+    <p>Dans l'exemple suivant, "foo vaut bar" sera affiché si la variable
+    <code>foo</code> contient la valeur "bar".</p>
 
+    <div class="example"><p><code>
+      &lt;!--#if expr='v("foo") = "bar"' --&gt;<br />
+      <span class="indent">
+        foo vaut bar<br />
+      </span>
+      &lt;!--#endif --&gt;
+    </code></p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssilegacyexprparser" id="ssilegacyexprparser">Directive</a> <a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le mode de compatibilité pour les expressions
-conditionnelles.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.13.</td></tr>
-</table>
-    <p>Depuis la version 2.3.13, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> a adopté
-    la nouvelle syntaxe <a href="../expr.html">ap_expr</a> pour ses
-    expressions conditionnelles dans les éléments de contrôle de flux
-    <code>#if</code>. Cette directive permet de réactiver l'<a href="#legacyexpr">ancienne syntaxe</a> qui est compatible avec les
-    versions 2.2.x et antérieures d'Apache HTTPD.
-    </p>
+    <div class="note"><h3>Documentation de référence</h3>
+    <p>Voir aussi <a href="../expr.html">Les expressions dans le serveur
+    HTTP Apache</a> pour une référence complète et des exemples. Les
+    fonctions <em>restricted</em> ne sont pas disponibles dans
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>.</p>
+    </div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="legacyexpr" id="legacyexpr">Syntaxe des expressions héritée</a></h2>
+    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssistarttag" id="ssistarttag">Directive</a> <a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chaîne qui marque le début d'un élément
-include</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>Cette directive permet de modifier la chaîne que
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> interprète comme le début d'un élément
-    include.</p>
+    <p>Cette section décrit la syntaxe de l'élément <code>#if
+    expr</code> dans le cas où la directive <code class="directive"><a href="#ssilegacyexprparser">SSILegacyExprParser</a></code> est définie à
+    <code>on</code>.</p>
 
-    <p>Cette option peut vous être utile si vous avez deux serveurs qui
-    interprètent un fichier avec des commandes différentes (et
-    éventuellement à des moments différents).</p>
+    <dl>
+      <dt><code><var>chaîne</var></code></dt>
+      <dd>vrai si <var>chaîne</var> n'est pas vide</dd>
 
-    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
-      SSIEndTag   "%&gt;"</pre>
+      <dt><code><var>-A string</var></code></dt>
+      <dd><p>vrai si l'URL que contient la chaîne est accessible du
+      point de vue de la configuration, faux sinon. Il
+      s'avère utile lorsqu'un lien vers une URL doit être caché aux
+      utilisateurs qui ne sont pas autorisés à voir cette URL. Notez que
+      le test porte sur l'autorisation d'accès à l'URL, et non sur son
+      existence.</p>
 
+      <div class="example"><h3>Exemple</h3><p><code>
+        &lt;!--#if expr="-A /prive" --&gt;<br />
+        <span class="indent">
+          Cliquez &lt;a href="/prive"&gt;ici&lt;/a&gt; pour accéder aux
+         informations privées.<br />
+        </span>
+        &lt;!--#endif --&gt;
+      </code></p></div>
+      </dd>
 
-    <p>Avec l'exemple ci-dessus, qui définit aussi une directive
-    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code>, vous pourrez
-    inscrire des directives SSI comme dans l'exemple suivant :</p>
+      <dt><code><var>chaîne1</var> = <var>chaîne2</var><br />
+      <var>chaîne1</var> == <var>chaîne2</var><br />
+      <var>chaîne1</var> != <var>chaîne2</var></code></dt>
 
-    <div class="example"><h3>Directives SSI avec marques de début et de fin
-    personnalisées</h3><p><code>
-      &lt;%printenv %&gt;
-    </code></p></div>
+      <dd><p>Compare <var>chaîne1</var> à <var>chaîne2</var>. Si
+      <var>chaîne2</var> est de la forme
+      <code>/<var>chaîne2</var>/</code>, elle est traitée comme une
+      expression rationnelle. Les expressions rationnelles sont
+      implémentées par le moteur <a href="http://www.pcre.org">PCRE</a>
+      et possèdent la même syntaxe que celles de <a href="http://www.perl.com">perl 5</a>. Notez que <code>==</code>
+      n'est qu'un alias pour <code>=</code> et se comporte exactement de
+      la même manière que ce dernier.</p>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssitimeformat" id="ssitimeformat">Directive</a> <a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du format d'affichage des dates</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSITimeFormat <var>chaîne de formatage</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-<p>Cette directive permet de modifier le format d'affichage des
-variables d'environnement <code>DATE</code>. La <var>chaîne de
-formatage</var> est identique à celle de la fonction
-<code>strftime(3)</code> de la bibliothèque C standard.</p>
+      <p>Si vous faites une comparaison directe (<code>=</code> ou
+      <code>==</code>), vous pouvez extraire des parties de l'expression
+      rationnelle. Les parties extraites sont stockées dans les
+      variables spéciales <code>$1</code> .. <code>$9</code>. L'ensemble
+      de la chaîne correspondant à l'expression rationnelle est stocké
+      dans la variable spéciale <code>$0</code>.</p>
 
-    <p>Cette directive a le même effet que l'élément
-    <code>&lt;!--#config timefmt=<var>chaîne de formatage</var>
-    --&gt;</code>.</p>
+      <div class="example"><h3>Exemple</h3><p><code>
+        &lt;!--#if expr="$QUERY_STRING = /^sid=([a-zA-Z0-9]+)/" --&gt;<br />
+        <span class="indent">
+          &lt;!--#set var="session" value="$1" --&gt;<br />
+        </span>
+        &lt;!--#endif --&gt;
+      </code></p></div>
+      </dd>
 
-    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
+      <dt><code><var>chaîne1</var> &lt; <var>chaîne2</var><br />
+       <var>chaîne1</var> &lt;= <var>chaîne2</var><br />
+       <var>chaîne1</var> &gt; <var>chaîne2</var><br />
+       <var>chaîne1</var> &gt;= <var>chaîne2</var></code></dt>
 
+      <dd>Compare <var>chaîne1</var> à <var>chaîne2</var>. Notez que les
+      chaînes sont comparées de manière <em>littérale</em> (en utilisant
+      <code>strcmp(3)</code>). Ainsi, la chaîne "100" est inférieure à
+      "20".</dd>
 
-    <p>Avec l'exemple ci-dessus, les dates seront affichées dans le
-    style "22:26, June 14, 2002".</p>
+      <dt><code>( <var>test_condition</var> )</code></dt>
+      <dd>vrai si <var>test_condition</var> est vrai</dd>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ssiundefinedecho" id="ssiundefinedecho">Directive</a> <a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chaîne à afficher lorsqu'on tente d'extraire le contenu
-d'une variable non définie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSIUndefinedEcho <var>chaîne</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>Cette directive permet de modifier la chaîne affichée par
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> lorsqu'on tente d'extraire le contenu
-    d'une variable non définie.</p>
+      <dt><code>! <var>test_condition</var></code></dt>
+      <dd>vrai si <var>test_condition</var> est faux</dd>
 
-    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- nondef --&gt;"</pre>
+      <dt><code><var>test_condition1</var> &amp;&amp;
+        <var>test_condition2</var></code></dt>
+      <dd>vrai si <var>test_condition1</var> et
+      <var>test_condition2</var> sont tous les deux vrais</dd>
 
+      <dt><code><var>test_condition1</var> ||
+        <var>test_condition2</var></code></dt>
+      <dd>vrai si au moins un des tests <var>test_condition1</var> ou
+      <var>test_condition2</var> est vrai</dd>
+    </dl>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xbithack" id="xbithack">Directive</a> <a name="XBitHack" id="XBitHack">XBitHack</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interprète les directives SSI dans les fichiers dont le bit
-d'exécution est positionné</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>XBitHack on|off|full</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>XBitHack off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_include</td></tr>
-</table>
-    <p>La directive <code class="directive">XBitHack</code> permet de contrôler
-    l'interprétation des documents html standards. Elle n'affecte que
-    les fichiers dont le <a class="glossarylink" href="../glossary.html#type mime" title="voir glossaire">type MIME</a> est
-    <code>text/html</code>. <code class="directive">XBitHack</code> peut prendre
-    les valeurs suivantes :</p>
+    <p>"<code>=</code>" et "<code>!=</code>" ont une priorité supérieure
+    à "<code>&amp;&amp;</code>" et "<code>||</code>". "<code>!</code>" a
+    la priorité la plus haute. Ainsi, les deux directives suivantes sont
+    équivalentes :</p>
 
-    <dl>
-      <dt><code>off</code></dt>
-      <dd>Aucun traitement particulier pour les fichiers
-      exécutables.</dd>
+    <div class="example"><p><code>
+      &lt;!--#if expr="$a = test1 &amp;&amp; $b = test2" --&gt;<br />
+      &lt;!--#if expr="($a = test1) &amp;&amp; ($b = test2)" --&gt;
+    </code></p></div>
 
-      <dt><code>on</code></dt>
-      <dd>Tout fichier <code>text/html</code> dont le bit d'exécution
-      est positionné pour le propriétaire sera traité en tant que
-      document html interprété par le serveur.</dd>
+    <p>Les opérateurs booléens <code>&amp;&amp;</code> et
+    <code>||</code> ont la même priorité. Ainsi, si vous voulez
+    augmenter la priorité d'un de ces opérateurs, vous devez utiliser
+    des parenthèses.</p>
 
-      <dt><code>full</code></dt>
-      <dd>Identique à <code>on</code>, avec test du bit d'exécution pour
-      le groupe. Si ce dernier est positionné, la date de <code>dernière
-      modification</code> du fichier renvoyé est définie à la date de
-      dernière modification du fichier. Dans le cas contraire, aucune
-      date de dernière modification n'est renvoyée. Le positionnement de
-      ce bit permet aux clients et aux mandataires de gérer la mise en
-      cache du résultat de la requête.
+    <p>Tout ce qui n'est pas reconnu comme variable ou opérateur est
+    traité comme une chaîne. Les chaînes peuvent aussi être entourées
+    d'apostrophes : <code>'chaîne'</code>. Les chaînes sans apostrophe
+    ne peuvent pas contenir d'espaces (espaces ou tabulations) car
+    ceux-ci servent à séparer certains éléments comme les variables. Si
+    plusieurs chaînes se trouvent dans une ligne, elles sont concaténées
+    en utilisant des espaces. Ainsi,</p>
 
-      <div class="note"><h3>Note</h3>
-      <p>Il est recommandé de n'utiliser l'option full que dans le cas
-      où vous êtes certain que le bit d'exécution du groupe est non
-      positionné pour les scripts SSI qui pourraient effectuer l'<code>#include</code> d'un programme CGI ou bien produire des sorties
-      différentes à chaque accès (ou seraient susceptibles d'être
-      modifiées au cours des requêtes ultérieures).</p>
+    <div class="example"><p><code><var>chaîne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>chaîne2</var></code> devient <code><var>chaîne1</var>&nbsp;<var>chaîne2</var></code><br />
+      <br />
+      et<br />
+      <br />
+      <code>'<var>chaîne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>chaîne2</var>'</code> devient <code><var>chaîne1</var>&nbsp;&nbsp;&nbsp;&nbsp;<var>chaîne2</var></code>.</p></div>
 
-      <p>Lorsqu'elle est définie à <code>on</code>, la directive
-      <code class="directive"><a href="#ssilastmodified">SSILastModified</a></code>
-      l'emporte sur la directive <code class="directive"><a href="#xbithack">XBitHack</a></code>.</p>
-      </div>
+    <div class="note"><h3>Optimisation des expressions booléennes</h3>
+      <p>Si les expressions atteignent une complexité suffisante pour
+      ralentir les traitements de manière significative, vous pouvez
+      essayer de les optimiser en fonction des règles d'évaluation :</p>
+      <ul>
+      <li>Les expressions sont évaluées de la gauche vers la droite</li>
+      <li>Les opérateurs booléens binaires (<code>&amp;&amp;</code> et
+      <code>||</code>) font l'objet d'une évaluation abrégée chaque fois
+      que cela est possible. En d'autres termes, et selon la règle
+      ci-dessus, <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> évalue tout d'abord la
+      partie gauche de l'expression. Si le résultat de l'évaluation de
+      cette partie gauche suffit à déterminer le résultat final,
+      l'évaluation s'arrête ici. Dans le cas contraire, la partie droite
+      est évaluée, et le résultat final tient compte des résultats des
+      évaluations des parties gauche et droite.</li>
+      <li>L'évaluation abrégée est désactivée tant qu'il reste des
+      expressions régulières à traiter. Ces dernières doivent être
+      évaluées afin de définir les variables correspondant aux
+      références arrières (<code>$1</code> .. <code>$9</code>).</li>
+      </ul>
+      <p>Si vous voulez déterminer la manière dont une expression est
+      traitée, vous pouvez recompiler <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> en
+      utilisant l'option de compilation <code>-DDEBUG_INCLUDE</code>.
+      Ceci a pour effet d'insérer, pour chaque expression interprétée,
+      des informations étiquetées, l'arbre d'interprétation et la
+      manière dont elle est évaluée au sein du flux de sortie envoyé au
+      client.</p>
+    </div>
 
-      </dd>
-    </dl>
+    <div class="note"><h3>Slashes d'échappement dans les expressions
+    rationnelles</h3>
+     <p>Tous les caractères slashes qui ne sont pas des séparateurs dans
+     votre expression rationnelle doivent être échappés, et ceci sans
+     tenir compte de leur signification du point de vue du moteur
+     d'expressions rationnelles.</p>
+    </div>
+
+    <div class="note"><h3>Documentation de référence</h3>
+    <p>Voir le document <a href="../expr.html">Les expressions dans le
+    serveur HTTP Apache</a>, pour une référence complète et des exemples.</p>
+    </div>
 
 
 </div>
index 60af7bb53158db4b74fe58a2d98b6b89953b7d61..be118a2384e8af5045d5cada3cf25ece36bf8c79 100644 (file)
 <li><a href="../howto/ssi.html">SSI チュートリアル</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a> <a name="ssiendtag" id="ssiendtag">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>include 要素を終了させる文字列</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.30 以降で利用可能</td></tr>
+</table>
+    <p>このディレクティブは <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> が探す、
+    include 要素の終了を示す文字列を変更します。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      SSIEndTag "%&gt;"
+    </code></p></div>
+
+
+<h3>参照</h3>
+<ul>
+<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a> <a name="ssierrormsg" id="ssierrormsg">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>SSI のエラーがあったときに表示されるエラーメッセージ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
+directive]"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.30 以降で使用可能</td></tr>
+</table>
+    <p><code class="directive">SSIErrorMsg</code> ディレクティブは <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+    がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは
+    メッセージがユーザに表示されないようにするために
+    デフォルトエラーメッセージを <code>"&lt;!-- Error --&gt;"</code>
+    に変えるというようなことを考えるかもしれません。</p>
+
+    <p>このディレクティブは <code>&lt;!--#config
+    errmsg=<var>message</var> --&gt;</code> 要素と同じ効果になります。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      SSIErrorMsg "&lt;!-- Error --&gt;"
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIETag" id="SSIETag">SSIETag</a> <a name="ssietag" id="ssietag">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Controls whether ETags are generated by the server.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIETag on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIETag off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.2.15 and later.</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSILastModified" id="SSILastModified">SSILastModified</a> <a name="ssilastmodified" id="ssilastmodified">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Controls whether <code>Last-Modified</code> headers are generated by the
+server.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSILastModified on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSILastModified off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.2.15 and later.</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a> <a name="ssilegacyexprparser" id="ssilegacyexprparser">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Enable compatibility mode for conditional expressions.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.3.13 and later.</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a> <a name="ssistarttag" id="ssistarttag">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>include 要素を開始する文字列</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.30 以降で使用可能</td></tr>
+</table>
+
+    <p>このディレクティブは <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> が探す、include
+    要素の開始を示す文字列を変更します。</p>
+
+    <p>二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、
+    それぞれに違うコマンドを処理させたい、
+    というようなときにこのオプションを使います。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      SSIStartTag "&lt;%"<br />
+      SSIEndTag   "%&gt;"
+    </code></p></div>
+
+    <p>上の例のように対応する
+    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code> を併せて使うと、
+    下に示す例のように SSI ディレクティブを使えます:</p>
+
+    <div class="example"><h3>違う開始と終了のタグを使った SSI ディレクティブ</h3><p><code>
+      &lt;%printenv %&gt;
+    </code></p></div>
+
+<h3>参照</h3>
+<ul>
+<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a> <a name="ssitimeformat" id="ssitimeformat">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>日付けを現す文字列の書式を設定する</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSITimeFormat <var>formatstring</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.30 以降で使用可能</td></tr>
+</table>
+<p>このディレクティブは <code>DATE</code> 環境変数を echo して日付を現す文字列が
+    表示されるときの書式を変更します。<var>formatstring</var> は
+    C 標準ライブラリの <code>strftime(3)</code> と同じ形式です。</p>
+
+    <p>このディレクティブは <code>&lt;!--#config
+    timefmt=<var>formatstring</var> --&gt;</code> 要素と同じ効果になります。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      SSITimeFormat "%R, %B %d, %Y"
+    </code></p></div>
+
+    <p>上のディレクティブでは、日付は "22:26, June 14, 2002" という
+    形式で表示されます。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a> <a name="ssiundefinedecho" id="ssiundefinedecho">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>未定義の変数が echo されたときに表示される文字列</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIUndefinedEcho <var>string</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.34 以降で利用可能</td></tr>
+</table>
+    <p>このディレクティブは変数が定義されていないにも関わらず
+    "echo" されたときに <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
+    が表示する文字列を変更します。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      SSIUndefinedEcho "&lt;!-- undef --&gt;"
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="XBitHack" id="XBitHack">XBitHack</a> <a name="xbithack" id="xbithack">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>実行ビットが設定されたファイルの SSI ディレクティブを
+解析する</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>XBitHack on|off|full</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>XBitHack off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
+</table>
+    <p><code class="directive">XBitHack</code> ディレクティブは通常の HTML
+    ドキュメントの解析を制御します。このディレクティブは <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a>
+    <code>text/html</code> と関連付けられているファイルにのみ影響します。
+    <code class="directive">XBitHack</code> は以下の値をとることができます。</p>
+
+    <dl>
+      <dt><code>off</code></dt>
+      <dd>実行可能ファイルに対して特別な扱いをしません。</dd>
+
+      <dt><code>on</code></dt>
+      <dd>ユーザの実行ビットが設定されている <code>text/html</code>
+      ファイルは全てサーバで解析する html ドキュメントとして扱われます。</dd>
+
+      <dt><code>full</code></dt>
+      <dd><code>on</code> と同様ですが、グループ実行ビットもテストします。
+      もしそれが設定されていれば、返されるファイルの <code>Last-modified</code> の
+      日付をファイルの最終修正時刻にします。それが設定されていないときは、
+      last-modified の日付は送られません。このビットを設定すると、
+      クライアントやプロキシがリクエストをキャッシュできるようになります。
+
+      <div class="note"><strong>注意</strong> 他の CGI を <code>#include</code>
+      するかもしれないものや、各アクセスに対して違う出力を生成する
+      (もしくは後のリクエストで変わるかもしれないもの)
+      すべての SSI スクリプトに対してグループ実行ビットが
+      設定されていないことを確認できない場合は、full は使わない方が良い
+      でしょう。</div>
+      </dd>
+    </dl>
+
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="enabling" id="enabling">Server-Side Includes を有効にする</a></h2>
     
     エスケープしなければなりません。
     正規表現の意味がどうであろうとエスケープは必要です。</p>
     </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIEndTag" id="SSIEndTag">SSIEndTag</a> <a name="ssiendtag" id="ssiendtag">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>include 要素を終了させる文字列</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIEndTag <var>tag</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIEndTag "--&gt;"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.30 以降で利用可能</td></tr>
-</table>
-    <p>このディレクティブは <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> が探す、
-    include 要素の終了を示す文字列を変更します。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      SSIEndTag "%&gt;"
-    </code></p></div>
-
-
-<h3>参照</h3>
-<ul>
-<li><code class="directive"><a href="#ssistarttag">SSIStartTag</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIErrorMsg" id="SSIErrorMsg">SSIErrorMsg</a> <a name="ssierrormsg" id="ssierrormsg">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>SSI のエラーがあったときに表示されるエラーメッセージ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIErrorMsg <var>message</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIErrorMsg "[an error occurred while processing this
-directive]"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.30 以降で使用可能</td></tr>
-</table>
-    <p><code class="directive">SSIErrorMsg</code> ディレクティブは <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-    がエラーが起こったときに表示するメッセージを変更します。プロダクションサーバでは
-    メッセージがユーザに表示されないようにするために
-    デフォルトエラーメッセージを <code>"&lt;!-- Error --&gt;"</code>
-    に変えるというようなことを考えるかもしれません。</p>
-
-    <p>このディレクティブは <code>&lt;!--#config
-    errmsg=<var>message</var> --&gt;</code> 要素と同じ効果になります。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      SSIErrorMsg "&lt;!-- Error --&gt;"
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIETag" id="SSIETag">SSIETag</a> <a name="ssietag" id="ssietag">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Controls whether ETags are generated by the server.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIETag on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIETag off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.2.15 and later.</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSILastModified" id="SSILastModified">SSILastModified</a> <a name="ssilastmodified" id="ssilastmodified">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Controls whether <code>Last-Modified</code> headers are generated by the
-server.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSILastModified on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSILastModified off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.2.15 and later.</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSILegacyExprParser" id="SSILegacyExprParser">SSILegacyExprParser</a> <a name="ssilegacyexprparser" id="ssilegacyexprparser">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Enable compatibility mode for conditional expressions.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSILegacyExprParser on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSILegacyExprParser off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Available in version 2.3.13 and later.</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIStartTag" id="SSIStartTag">SSIStartTag</a> <a name="ssistarttag" id="ssistarttag">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>include 要素を開始する文字列</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIStartTag <var>tag</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIStartTag "&lt;!--#"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>バージョン 2.0.30 以降で使用可能</td></tr>
-</table>
-
-    <p>このディレクティブは <code class="module"><a href="../mod/mod_include.html">mod_include</a></code> が探す、include
-    要素の開始を示す文字列を変更します。</p>
-
-    <p>二つのサーバで (もしかすると別々の段階で) ファイルの出力を解析していて、
-    それぞれに違うコマンドを処理させたい、
-    というようなときにこのオプションを使います。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      SSIStartTag "&lt;%"<br />
-      SSIEndTag   "%&gt;"
-    </code></p></div>
-
-    <p>上の例のように対応する
-    <code class="directive"><a href="#ssiendtag">SSIEndTag</a></code> を併せて使うと、
-    下に示す例のように SSI ディレクティブを使えます:</p>
-
-    <div class="example"><h3>違う開始と終了のタグを使った SSI ディレクティブ</h3><p><code>
-      &lt;%printenv %&gt;
-    </code></p></div>
-
-<h3>参照</h3>
-<ul>
-<li><code class="directive"><a href="#ssiendtag">SSIEndTag</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSITimeFormat" id="SSITimeFormat">SSITimeFormat</a> <a name="ssitimeformat" id="ssitimeformat">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>日付けを現す文字列の書式を設定する</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSITimeFormat <var>formatstring</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSITimeFormat "%A, %d-%b-%Y %H:%M:%S %Z"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.30 以降で使用可能</td></tr>
-</table>
-<p>このディレクティブは <code>DATE</code> 環境変数を echo して日付を現す文字列が
-    表示されるときの書式を変更します。<var>formatstring</var> は
-    C 標準ライブラリの <code>strftime(3)</code> と同じ形式です。</p>
-
-    <p>このディレクティブは <code>&lt;!--#config
-    timefmt=<var>formatstring</var> --&gt;</code> 要素と同じ効果になります。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      SSITimeFormat "%R, %B %d, %Y"
-    </code></p></div>
-
-    <p>上のディレクティブでは、日付は "22:26, June 14, 2002" という
-    形式で表示されます。</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SSIUndefinedEcho" id="SSIUndefinedEcho">SSIUndefinedEcho</a> <a name="ssiundefinedecho" id="ssiundefinedecho">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>未定義の変数が echo されたときに表示される文字列</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>SSIUndefinedEcho <var>string</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>SSIUndefinedEcho "(none)"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.34 以降で利用可能</td></tr>
-</table>
-    <p>このディレクティブは変数が定義されていないにも関わらず
-    "echo" されたときに <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>
-    が表示する文字列を変更します。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      SSIUndefinedEcho "&lt;!-- undef --&gt;"
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="XBitHack" id="XBitHack">XBitHack</a> <a name="xbithack" id="xbithack">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>実行ビットが設定されたファイルの SSI ディレクティブを
-解析する</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>XBitHack on|off|full</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>XBitHack off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト, ディレクトリ, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">上書き:</a></th><td>Options</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_include</td></tr>
-</table>
-    <p><code class="directive">XBitHack</code> ディレクティブは通常の HTML
-    ドキュメントの解析を制御します。このディレクティブは <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a>
-    <code>text/html</code> と関連付けられているファイルにのみ影響します。
-    <code class="directive">XBitHack</code> は以下の値をとることができます。</p>
-
-    <dl>
-      <dt><code>off</code></dt>
-      <dd>実行可能ファイルに対して特別な扱いをしません。</dd>
-
-      <dt><code>on</code></dt>
-      <dd>ユーザの実行ビットが設定されている <code>text/html</code>
-      ファイルは全てサーバで解析する html ドキュメントとして扱われます。</dd>
-
-      <dt><code>full</code></dt>
-      <dd><code>on</code> と同様ですが、グループ実行ビットもテストします。
-      もしそれが設定されていれば、返されるファイルの <code>Last-modified</code> の
-      日付をファイルの最終修正時刻にします。それが設定されていないときは、
-      last-modified の日付は送られません。このビットを設定すると、
-      クライアントやプロキシがリクエストをキャッシュできるようになります。
-
-      <div class="note"><strong>注意</strong> 他の CGI を <code>#include</code>
-      するかもしれないものや、各アクセスに対して違う出力を生成する
-      (もしくは後のリクエストで変わるかもしれないもの)
-      すべての SSI スクリプトに対してグループ実行ビットが
-      設定されていないことを確認できない場合は、full は使わない方が良い
-      でしょう。</div>
-      </dd>
-    </dl>
-
-    
 </div>
 </div>
 <div class="bottomlang">
index 1249991023c4796c724001c507faff8f42ef8471..79b5b0a86c5fce137c3572d72546de62cb2f14db 100644 (file)
@@ -70,6 +70,26 @@ configuration</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#limitations">Known Limitations</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adds additional information to the module
+information displayed by the server-info handler</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_info</td></tr>
+</table>
+    <p>This allows the content of <var>string</var> to be shown as
+    HTML interpreted, <strong>Additional Information</strong> for
+    the module <var>module-name</var>. Example:</p>
+
+    <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See &lt;a \
+    href="http://httpd.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\
+    http://httpd.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="security" id="security">Security Issues</a></h2>
     <p>Once <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> is loaded into the server, its
@@ -167,26 +187,6 @@ configuration</td></tr>
       <li>Directives generated by third party modules such as <a href="http://perl.apache.org">mod_perl</a>
           might not be listed.</li>
     </ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adds additional information to the module
-information displayed by the server-info handler</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_info</td></tr>
-</table>
-    <p>This allows the content of <var>string</var> to be shown as
-    HTML interpreted, <strong>Additional Information</strong> for
-    the module <var>module-name</var>. Example:</p>
-
-    <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See &lt;a \
-    href="http://httpd.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\
-    http://httpd.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 1f4eac00b8ec790935531e159a225ae2e6052bd4..0907a61358eb109c502cd6b3c2aab36eb903ec8d 100644 (file)
@@ -72,6 +72,26 @@ serveur</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#limitations">Limitations connues</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="addmoduleinfo" id="addmoduleinfo">Directive</a> <a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des données supplémentaires aux informations de
+module affichées par le gestionnaire server-info</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AddModuleInfo <var>nom-module</var> <var>chaîne</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_info</td></tr>
+</table>
+    <p>Cette directive permet d'afficher le contenu de <var>chaîne</var>
+    en tant qu'<strong>Information supplémentaire</strong> interprétée
+    en HTML pour le module <var>nom-module</var>. Exemple :</p>
+
+    <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See &lt;a \
+    href="http://httpd.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\
+    http://httpd.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="security" id="security">Problèmes liés à la sécurité</a></h2>
     <p>Une fois <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> chargé dans le serveur, sa
@@ -177,26 +197,6 @@ serveur</td></tr>
       <a href="http://perl.apache.org">mod_perl</a> peuvent ne pas être
       prises en compte.</li>
     </ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="addmoduleinfo" id="addmoduleinfo">Directive</a> <a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des données supplémentaires aux informations de
-module affichées par le gestionnaire server-info</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AddModuleInfo <var>nom-module</var> <var>chaîne</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_info</td></tr>
-</table>
-    <p>Cette directive permet d'afficher le contenu de <var>chaîne</var>
-    en tant qu'<strong>Information supplémentaire</strong> interprétée
-    en HTML pour le module <var>nom-module</var>. Exemple :</p>
-
-    <pre class="prettyprint lang-config">AddModuleInfo mod_deflate.c 'See &lt;a \
-    href="http://httpd.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\
-    http://httpd.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index fc88471218def4c50b86baf130df494d5379c2e4..431ac7361549449fba98bc6fddb46d3241166fa7 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#limitations">既知の制限</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>server-info ハンドラにより表示されるモジュールの情報に
+追加の情報を付け加える</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_info</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 1.3 以降</td></tr>
+</table>
+    <p>これは、<var>string</var> の内容がモジュール <var>module-name</var>
+    の<strong>追加情報</strong> として HTML
+    として解釈され、表示されるようにします。例:</p>
+
+    <div class="example"><p><code>
+      AddModuleInfo mod_deflate.c 'See &lt;a \<br />
+      <span class="indent">
+        href="http://www.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\<br />
+        http://www.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'
+      </span>
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="security" id="security">Security Issues</a></h2>
     <p>一旦 <code class="module"><a href="../mod/mod_info.html">mod_info</a></code> がサーバに読み込まれると、
            のディレクティブは表示されないかもしれません。</li>
     </ul>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>server-info ハンドラにより表示されるモジュールの情報に
-追加の情報を付け加える</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_info</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>Apache 1.3 以降</td></tr>
-</table>
-    <p>これは、<var>string</var> の内容がモジュール <var>module-name</var>
-    の<strong>追加情報</strong> として HTML
-    として解釈され、表示されるようにします。例:</p>
-
-    <div class="example"><p><code>
-      AddModuleInfo mod_deflate.c 'See &lt;a \<br />
-      <span class="indent">
-        href="http://www.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\<br />
-        http://www.apache.org/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'
-      </span>
-    </code></p></div>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_info.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index d3af4d25b9f36fedaf30efc283a3fc77d21dabc3..66e42058207d8e69ae4394b7f24e450db59e096d 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#limitations">¾Ë·ÁÁø ÇѰè</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¸ðµâ¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¸¦ server-info Çڵ鷯°¡ º¸¿©ÁÖµµ·Ï
+Ãß°¡ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_info</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>¾ÆÆÄÄ¡ 1.3 ÀÌÈÄ</td></tr>
+</table>
+    <p><var>module-name</var> ¸ðµâ¿¡ ´ëÇÑ <strong>Ãß°¡ Á¤º¸</strong>·Î
+    <var>string</var>ÀÇ ³»¿ëÀ» HTML·Î º¸¿©ÁØ´Ù. ¿¹¸¦ µé¾î,</p>
+
+    <div class="example"><p><code>
+      AddModuleInfo mod_deflate.c 'See &lt;a \<br />
+      <span class="indent">
+        href="http://www.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\<br />
+        http://www.apache.org/docs/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'
+      </span>
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="security" id="security">º¸¾È ¹®Á¦</a></h2>
     <p>Çѹø ¼­¹ö°¡ <code class="module"><a href="../mod/mod_info.html">mod_info</a></code>¸¦ ÀоîµéÀ̸é, µð·ºÅ丮º°
           Áö½Ã¾î¸¦ º¸¿©ÁÖÁö ¸øÇÒ ¼ö ÀÖ´Ù.</li>
     </ul>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="AddModuleInfo" id="AddModuleInfo">AddModuleInfo</a> <a name="addmoduleinfo" id="addmoduleinfo">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¸ðµâ¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¸¦ server-info Çڵ鷯°¡ º¸¿©ÁÖµµ·Ï
-Ãß°¡ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>AddModuleInfo <var>module-name</var> <var>string</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_info</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Áö¿ø:</a></th><td>¾ÆÆÄÄ¡ 1.3 ÀÌÈÄ</td></tr>
-</table>
-    <p><var>module-name</var> ¸ðµâ¿¡ ´ëÇÑ <strong>Ãß°¡ Á¤º¸</strong>·Î
-    <var>string</var>ÀÇ ³»¿ëÀ» HTML·Î º¸¿©ÁØ´Ù. ¿¹¸¦ µé¾î,</p>
-
-    <div class="example"><p><code>
-      AddModuleInfo mod_deflate.c 'See &lt;a \<br />
-      <span class="indent">
-        href="http://www.apache.org/docs/2.4/mod/mod_deflate.html"&gt;\<br />
-        http://www.apache.org/docs/docs/2.4/mod/mod_deflate.html&lt;/a&gt;'
-      </span>
-    </code></p></div>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_info.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index fff973ceeb3b9e8759433a4a64ca7c209af37db6..5ec80d16842862f62d831c4796f66991e0571c49 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#journal">Programmer's Journal</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a> <a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from
+ISAPI extensions to the error log</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI
+    extensions to the server error log.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a> <a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from
+ISAPI extensions to the query field</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI
+    extensions to the query field (appended to the <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> <code>%q</code>
+    component).</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a> <a name="isapicachefile" id="isapicachefile">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>ISAPI .dll files to be loaded at startup</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPICacheFile <var>file-path</var> [<var>file-path</var>]
+...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Specifies a space-separated list of file names to be loaded
+    when the Apache server is launched, and remain loaded until the
+    server is shut down. This directive may be repeated for every
+    ISAPI .dll file desired. The full path name of each file should
+    be specified. If the path name is not absolute, it will be treated
+    relative to <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a> <a name="isapifakeasync" id="isapifakeasync">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fake asynchronous support for ISAPI callbacks</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIFakeAsync off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>While set to on, asynchronous support for ISAPI callbacks is
+    simulated.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a> <a name="isapilognotsupported" id="isapilognotsupported">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Log unsupported feature requests from ISAPI
+extensions</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPILogNotSupported off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Logs all requests for unsupported features from ISAPI
+    extensions in the server error log. This may help administrators
+    to track down problems. Once set to on and all desired ISAPI modules
+    are functioning, it should be set back to off.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a> <a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size of the Read Ahead Buffer sent to ISAPI
+extensions</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIReadAheadBuffer <var>size</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Defines the maximum size of the Read Ahead Buffer sent to
+    ISAPI extensions when they are initially invoked. All remaining
+    data must be retrieved using the <code>ReadClient</code> callback; some
+    ISAPI extensions may not support the <code>ReadClient</code> function.
+    Refer questions to the ISAPI extension's author.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">Usage</a></h2>
 
     <code>TransmitFile</code> semantics. Apache httpd also supports preloading
     ISAPI .dlls for performance.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a> <a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from
-ISAPI extensions to the error log</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI
-    extensions to the server error log.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a> <a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from
-ISAPI extensions to the query field</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Record <code>HSE_APPEND_LOG_PARAMETER</code> requests from ISAPI
-    extensions to the query field (appended to the <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> <code>%q</code>
-    component).</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a> <a name="isapicachefile" id="isapicachefile">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>ISAPI .dll files to be loaded at startup</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPICacheFile <var>file-path</var> [<var>file-path</var>]
-...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Specifies a space-separated list of file names to be loaded
-    when the Apache server is launched, and remain loaded until the
-    server is shut down. This directive may be repeated for every
-    ISAPI .dll file desired. The full path name of each file should
-    be specified. If the path name is not absolute, it will be treated
-    relative to <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a> <a name="isapifakeasync" id="isapifakeasync">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fake asynchronous support for ISAPI callbacks</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIFakeAsync off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>While set to on, asynchronous support for ISAPI callbacks is
-    simulated.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a> <a name="isapilognotsupported" id="isapilognotsupported">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Log unsupported feature requests from ISAPI
-extensions</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPILogNotSupported off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Logs all requests for unsupported features from ISAPI
-    extensions in the server error log. This may help administrators
-    to track down problems. Once set to on and all desired ISAPI modules
-    are functioning, it should be set back to off.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a> <a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size of the Read Ahead Buffer sent to ISAPI
-extensions</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ISAPIReadAheadBuffer <var>size</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Defines the maximum size of the Read Ahead Buffer sent to
-    ISAPI extensions when they are initially invoked. All remaining
-    data must be retrieved using the <code>ReadClient</code> callback; some
-    ISAPI extensions may not support the <code>ReadClient</code> function.
-    Refer questions to the ISAPI extension's author.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_isapi.html" title="English">&nbsp;en&nbsp;</a> |
index 34665e78d1377716cd2b66a7a21962c512ccce5c..b31bf1759ef8eaec74d1c1333f4b2bf2448790ca 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#journal">Journal du programmeur</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Directive</a> <a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistrement des requêtes
+<code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions ISAPI
+dans le journal des erreurs</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Cette directive permet d'enregistrer les requêtes
+    <code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions
+    ISAPI dans le journal des erreurs.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Directive</a> <a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les requêtes
+<code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions ISAPI
+dans la partie arguments de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Cette directive permet d'enregistrer les requêtes
+    <code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions
+    ISAPI dans la partie arguments de la requête (ajouté au composant
+    <code>%q</code> de la directive <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>).</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="isapicachefile" id="isapicachefile">Directive</a> <a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichiers .dll ISAPI devant être chargés au
+démarrage</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPICacheFile <var>chemin-fichier</var>
+[<var>chemin-fichier</var>]
+...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Cette directive permet de spécifier une liste, séparés par des
+    espaces, de noms de fichiers devant être chargés au démarrage
+    du serveur Apache, et rester en mémoire jusqu'à l'arrêt du serveur.
+    Cette directive peut être répétée pour chaque fichier .dll ISAPI
+    souhaité. Le chemin complet du fichier doit être spécifié. Si le
+    chemin n'est pas absolu, il sera considéré comme relatif au
+    répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="isapifakeasync" id="isapifakeasync">Directive</a> <a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Emulation du support des entrées/sorties asynchrones pour
+les appels ISAPI</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIFakeAsync off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Lorsquelle est définie à "on", cette directive permet d'émuler le
+    support des entrées/sorties asynchrones pour les appels ISAPI.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="isapilognotsupported" id="isapilognotsupported">Directive</a> <a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Journalisation des demandes de fonctionnalités non
+supportées de la part des extensions ISAPI</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPILogNotSupported off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Cette directive permet d'enregistrer dans le journal des erreurs
+    toutes les demandes de fonctionnalités non supportées de la part des
+    extensions ISAPI. Ceci peut aider les administrateurs à décortiquer
+    certains problèmes. Lorsqu'elle a été définie à "on" et si tous les
+    modules ISAPI fonctionnent, elle peut être redéfinie à "off".</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Directive</a> <a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon de lecture anticipée envoyé aux extensions
+ISAPI</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIReadAheadBuffer <var>taille</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>Cette directive permet de définir la taille maximale du tampon de
+    lecture anticipée envoyé aux extensions ISAPI lorsqu'elles sont
+    initialement invoquées. Toute donnée restante doit être extraite en
+    faisant appel à <code>ReadClient</code> ; certaines extensions ISAPI
+    peuvent ne pas supporter la fonction <code>ReadClient</code>.
+    Pour plus de détails, veuillez vous adresser à l'auteur de
+    l'extension ISAPI.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">Utilisation</a></h2>
 
     <code>TransmitFile</code>. Apache httpd supporte aussi le préchargement
     des .dlls ISAPI à des fins de performances.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Directive</a> <a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistrement des requêtes
-<code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions ISAPI
-dans le journal des erreurs</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Cette directive permet d'enregistrer les requêtes
-    <code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions
-    ISAPI dans le journal des erreurs.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Directive</a> <a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les requêtes
-<code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions ISAPI
-dans la partie arguments de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Cette directive permet d'enregistrer les requêtes
-    <code>HSE_APPEND_LOG_PARAMETER</code> de la part des extensions
-    ISAPI dans la partie arguments de la requête (ajouté au composant
-    <code>%q</code> de la directive <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>).</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="isapicachefile" id="isapicachefile">Directive</a> <a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichiers .dll ISAPI devant être chargés au
-démarrage</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPICacheFile <var>chemin-fichier</var>
-[<var>chemin-fichier</var>]
-...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Cette directive permet de spécifier une liste, séparés par des
-    espaces, de noms de fichiers devant être chargés au démarrage
-    du serveur Apache, et rester en mémoire jusqu'à l'arrêt du serveur.
-    Cette directive peut être répétée pour chaque fichier .dll ISAPI
-    souhaité. Le chemin complet du fichier doit être spécifié. Si le
-    chemin n'est pas absolu, il sera considéré comme relatif au
-    répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="isapifakeasync" id="isapifakeasync">Directive</a> <a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Emulation du support des entrées/sorties asynchrones pour
-les appels ISAPI</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIFakeAsync off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Lorsquelle est définie à "on", cette directive permet d'émuler le
-    support des entrées/sorties asynchrones pour les appels ISAPI.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="isapilognotsupported" id="isapilognotsupported">Directive</a> <a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Journalisation des demandes de fonctionnalités non
-supportées de la part des extensions ISAPI</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPILogNotSupported off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Cette directive permet d'enregistrer dans le journal des erreurs
-    toutes les demandes de fonctionnalités non supportées de la part des
-    extensions ISAPI. Ceci peut aider les administrateurs à décortiquer
-    certains problèmes. Lorsqu'elle a été définie à "on" et si tous les
-    modules ISAPI fonctionnent, elle peut être redéfinie à "off".</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Directive</a> <a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon de lecture anticipée envoyé aux extensions
-ISAPI</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ISAPIReadAheadBuffer <var>taille</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>Cette directive permet de définir la taille maximale du tampon de
-    lecture anticipée envoyé aux extensions ISAPI lorsqu'elles sont
-    initialement invoquées. Toute donnée restante doit être extraite en
-    faisant appel à <code>ReadClient</code> ; certaines extensions ISAPI
-    peuvent ne pas supporter la fonction <code>ReadClient</code>.
-    Pour plus de détails, veuillez vous adresser à l'auteur de
-    l'extension ISAPI.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_isapi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index c83a2573dfddd93894297a192ed2d516cee71e7a..d69353641bc4b2609cc291b03081274c663dfa0e 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#journal">°³¹ßÀÚ Á¤º¸</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a> <a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
+¿äûÀ» ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
+    ¿äûÀ» ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a> <a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
+¿äûÀ» ÁúÀǹ®ÀÚ¿­¿¡ ±â·ÏÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
+    ¿äûÀ» ÁúÀǹ®ÀÚ¿­¿¡ ±â·ÏÇÑ´Ù (<code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> <code>%q</code>
+    Ç׸ñ¿¡ µ¡ºÙÀδÙ).</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a> <a name="isapicachefile" id="isapicachefile">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¸Þ¸ð¸®·Î ÀоîµéÀÏ ISAPI .dll ÆÄÀϵé</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPICacheFile <var>file-path</var> [<var>file-path</var>]
+...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>¾ÆÆÄÄ¡ ¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¸Þ¸ð¸®·Î Àоîµé¿©¼­ ¼­¹ö¸¦ Á¾·áÇÒ¶§±îÁö
+    ¸Þ¸ð¸®¿¡ ³²¾ÆÀÖÀ» ÆÄÀϸíÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ÁöÁ¤ÇÑ´Ù. ÀÌ
+    Áö½Ã¾î´Â ISAPI .dll ÆÄÀϺ°·Î ¿©·¯¹ø »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏÀÇ
+    Àüü °æ·Î¸¦ Àû´Â´Ù. Àý´ë °æ·Î°¡ ¾Æ´Ï¸é <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>¿¡ »ó´ë °æ·Î·Î ¹Þ¾ÆµéÀδÙ.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a> <a name="isapifakeasync" id="isapifakeasync">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ºñµ¿±â ISAPI ÄݹéÀ» Áö¿øÇϴ ôÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIFakeAsync off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>onÀ¸·Î ¼³Á¤Çϸ頺ñµ¿±â ISAPI Äݹé Áö¿øÀ» Èä³»³½´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a> <a name="isapilognotsupported" id="isapilognotsupported">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI extensionÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ¿äûÇϸé
+·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPILogNotSupported off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>ISAPI extensionÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ¿äûÇϸ頼­¹ö
+    ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù. ³ªÁß¿¡ °ü¸®ÀÚ°¡ ¹®Á¦¸¦ ÃßÀûÇϴµ¥
+    µµ¿òÀÌ µÈ´Ù. ¿øÇϴ ¸ðµç ISAPI ¸ðµâÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϸé
+    ´Ù½Ã off·Î µÇµ¹·Á¾ß ÇÑ´Ù.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a> <a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI extensionÀÇ ¹Ì¸®Àбâ¹öÆÛ(read ahead buffer)
+Å©±â</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIReadAheadBuffer <var>size</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
+</table>
+    <p>ISAPI extensionÀ» Ã³À½ È£ÃâÇÒ¶§ ¹Ì¸®Àбâ¹öÆÛÀÇ ÃÖ´ë Å©±â¸¦
+    ÁöÁ¤ÇÑ´Ù. (ÀÌ Å©±âº¸´Ù Å«) ³ª¸ÓÁö ÀÚ·á´Â <code>ReadClient</code>
+    ÄݹéÀ» »ç¿ëÇÏ¿© Àоî¾ß ÇÑ´Ù. ¾î¶² ISAPI extensionÀº
+    <code>ReadClient</code> ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀÌ °æ¿ì
+    ISAPI extension Á¦ÀÛÀÚ¿¡°Ô ¹®ÀÇÇ϶ó.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">»ç¿ë¹ý</a></h2>
 
     .dllÀ» ¹Ì¸® Àоîµé¿©¼­ ¼º´ÉÀ» ³ôÀ̴ ¾ÆÆÄÄ¡ 1.3
     <code>mod_isapi</code>¿¡´Â ¾ø´Â ±â´ÉÀ» Áö¿øÇÑ´Ù.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIAppendLogToErrors" id="ISAPIAppendLogToErrors">ISAPIAppendLogToErrors</a> <a name="isapiappendlogtoerrors" id="isapiappendlogtoerrors">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
-¿äûÀ» ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIAppendLogToErrors on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIAppendLogToErrors off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
-    ¿äûÀ» ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIAppendLogToQuery" id="ISAPIAppendLogToQuery">ISAPIAppendLogToQuery</a> <a name="isapiappendlogtoquery" id="isapiappendlogtoquery">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
-¿äûÀ» ÁúÀǹ®ÀÚ¿­¿¡ ±â·ÏÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIAppendLogToQuery on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIAppendLogToQuery on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>ISAPI exntensionÀÇ <code>HSE_APPEND_LOG_PARAMETER</code>
-    ¿äûÀ» ÁúÀǹ®ÀÚ¿­¿¡ ±â·ÏÇÑ´Ù (<code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> <code>%q</code>
-    Ç׸ñ¿¡ µ¡ºÙÀδÙ).</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPICacheFile" id="ISAPICacheFile">ISAPICacheFile</a> <a name="isapicachefile" id="isapicachefile">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¸Þ¸ð¸®·Î ÀоîµéÀÏ ISAPI .dll ÆÄÀϵé</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPICacheFile <var>file-path</var> [<var>file-path</var>]
-...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>¾ÆÆÄÄ¡ ¼­¹ö°¡ ½ÃÀÛÇÒ¶§ ¸Þ¸ð¸®·Î Àоîµé¿©¼­ ¼­¹ö¸¦ Á¾·áÇÒ¶§±îÁö
-    ¸Þ¸ð¸®¿¡ ³²¾ÆÀÖÀ» ÆÄÀϸíÀ» °ø¹éÀ¸·Î ±¸ºÐÇÏ¿© ÁöÁ¤ÇÑ´Ù. ÀÌ
-    Áö½Ã¾î´Â ISAPI .dll ÆÄÀϺ°·Î ¿©·¯¹ø »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏÀÇ
-    Àüü °æ·Î¸¦ Àû´Â´Ù. Àý´ë °æ·Î°¡ ¾Æ´Ï¸é <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>¿¡ »ó´ë °æ·Î·Î ¹Þ¾ÆµéÀδÙ.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIFakeAsync" id="ISAPIFakeAsync">ISAPIFakeAsync</a> <a name="isapifakeasync" id="isapifakeasync">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ºñµ¿±â ISAPI ÄݹéÀ» Áö¿øÇϴ ôÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIFakeAsync on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIFakeAsync off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>onÀ¸·Î ¼³Á¤Çϸ頺ñµ¿±â ISAPI Äݹé Áö¿øÀ» Èä³»³½´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPILogNotSupported" id="ISAPILogNotSupported">ISAPILogNotSupported</a> <a name="isapilognotsupported" id="isapilognotsupported">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI extensionÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ¿äûÇϸé
-·Î±×¿¡ ±â·ÏÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPILogNotSupported on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPILogNotSupported off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>ISAPI extensionÀÌ Áö¿øÇÏÁö ¾Ê´Â ±â´ÉÀ» ¿äûÇϸ頼­¹ö
-    ¿À·ù ·Î±×¿¡ ±â·ÏÇÑ´Ù. ³ªÁß¿¡ °ü¸®ÀÚ°¡ ¹®Á¦¸¦ ÃßÀûÇϴµ¥
-    µµ¿òÀÌ µÈ´Ù. ¿øÇϴ ¸ðµç ISAPI ¸ðµâÀÌ Á¤»óÀûÀ¸·Î µ¿ÀÛÇϸé
-    ´Ù½Ã off·Î µÇµ¹·Á¾ß ÇÑ´Ù.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ISAPIReadAheadBuffer" id="ISAPIReadAheadBuffer">ISAPIReadAheadBuffer</a> <a name="isapireadaheadbuffer" id="isapireadaheadbuffer">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ISAPI extensionÀÇ ¹Ì¸®Àбâ¹öÆÛ(read ahead buffer)
-Å©±â</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>ISAPIReadAheadBuffer <var>size</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>ISAPIReadAheadBuffer 49152</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override ¿É¼Ç:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_isapi</td></tr>
-</table>
-    <p>ISAPI extensionÀ» Ã³À½ È£ÃâÇÒ¶§ ¹Ì¸®Àбâ¹öÆÛÀÇ ÃÖ´ë Å©±â¸¦
-    ÁöÁ¤ÇÑ´Ù. (ÀÌ Å©±âº¸´Ù Å«) ³ª¸ÓÁö ÀÚ·á´Â <code>ReadClient</code>
-    ÄݹéÀ» »ç¿ëÇÏ¿© Àоî¾ß ÇÑ´Ù. ¾î¶² ISAPI extensionÀº
-    <code>ReadClient</code> ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀÌ °æ¿ì
-    ISAPI extension Á¦ÀÛÀÚ¿¡°Ô ¹®ÀÇÇ϶ó.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_isapi.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 83c839e4c1a061134a2b5bf6bad17968acd3b0e5..80ec10490e43bb53ff2379d0881015636ad7fe95 100644 (file)
@@ -53,7 +53,6 @@ assumption that they are not fully initialized.</p>
 <li><code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code></li>
 <li><code class="module"><a href="../mod/mod_heartmonitor.html">mod_heartmonitor</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="HeartbeatStorage" id="HeartbeatStorage">HeartbeatStorage</a> <a name="heartbeatstorage" id="heartbeatstorage">Directive</a></h2>
 <table class="directive">
@@ -69,6 +68,7 @@ assumption that they are not fully initialized.</p>
     <code class="module"><a href="../mod/mod_slotmem_shm.html">mod_slotmem_shm</a></code> is not loaded.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_lbmethod_heartbeat.html" title="English">&nbsp;en&nbsp;</a> |
index e48ad1df5eedc57d7fca4d711d32ea2b8a59bde5..5225d278af8d8a9a4dcaee4c98d81ecb875df383 100644 (file)
@@ -58,7 +58,6 @@ comme non enti
 <li><code class="module"><a href="../mod/mod_heartbeat.html">mod_heartbeat</a></code></li>
 <li><code class="module"><a href="../mod/mod_heartmonitor.html">mod_heartmonitor</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="heartbeatstorage" id="heartbeatstorage">Directive</a> <a name="HeartbeatStorage" id="HeartbeatStorage">HeartbeatStorage</a></h2>
 <table class="directive">
@@ -76,6 +75,7 @@ heartbeat</td></tr>
     n'est pas chargé.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_lbmethod_heartbeat.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 9092d58f57e07a988bfc5588ba52dae1756ce08b..8136f64d27e03bc5fdf2897e016a692c0c9f0488 100644 (file)
@@ -85,6 +85,421 @@ by other LDAP modules</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#settingcerts">SSL/TLS Certificates</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPCacheEntries" id="LDAPCacheEntries">LDAPCacheEntries</a> <a name="ldapcacheentries" id="ldapcacheentries">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of entries in the primary LDAP cache</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPCacheEntries <var>number</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPCacheEntries 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies the maximum size of the primary LDAP cache. This
+    cache contains successful search/binds. Set it to 0 to turn off
+    search/bind caching. The default size is 1024 cached
+    searches.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPCacheTTL" id="LDAPCacheTTL">LDAPCacheTTL</a> <a name="ldapcachettl" id="ldapcachettl">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Time that cached items remain valid</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPCacheTTL <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPCacheTTL 600</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies the time (in seconds) that an item in the
+    search/bind cache remains valid. The default is 600 seconds (10
+    minutes).</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPConnectionPoolTTL" id="LDAPConnectionPoolTTL">LDAPConnectionPoolTTL</a> <a name="ldapconnectionpoolttl" id="ldapconnectionpoolttl">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Discard backend connections that have been sitting in the connection pool too long</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPConnectionPoolTTL <var>n</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPConnectionPoolTTL -1</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache HTTP Server 2.3.12 and later</td></tr>
+</table>
+    <p>Specifies the maximum age, in seconds, that a pooled LDAP connection can remain idle
+    and still be available for use.  Connections are cleaned up when they are next needed,
+    not asynchronously.</p>
+
+    <p>A setting of 0 causes connections to never be saved in the backend
+    connection pool.  The default value of -1, and any other negative value,
+    allows connections of any age to be reused.</p>
+
+    <p>For performance reasons, the reference time used by this directive is 
+    based on when the LDAP connection is returned to the pool, not the time
+    of the last successful I/O with the LDAP server.  </p>
+
+    <p>Since 2.4.10, new measures are in place to avoid the reference time
+    from being inflated by cache hits or slow requests.  First, the reference
+    time is not updated if no backend LDAP conncetions were needed. Second,
+    the reference time uses the time the HTTP request was received instead
+    of the time the request is completed.</p>
+    
+    <div class="note"><p>This timeout defaults to units of seconds, but accepts
+    suffixes for milliseconds (ms), minutes (min), and hours (h).
+    </p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPConnectionTimeout" id="LDAPConnectionTimeout">LDAPConnectionTimeout</a> <a name="ldapconnectiontimeout" id="ldapconnectiontimeout">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the socket connection timeout in seconds</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPConnectionTimeout <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>This directive configures the LDAP_OPT_NETWORK_TIMEOUT (or LDAP_OPT_CONNECT_TIMEOUT)
+    option in the underlying LDAP client library, when available.  This value
+    typically controls how long the LDAP client library will wait for the TCP
+    connection to the LDAP server to complete.</p>
+
+    <p> If a connection is not successful with the timeout period, either an error will be
+    returned or the LDAP client library will attempt to connect to a secondary LDAP
+    server if one is specified (via a space-separated list of hostnames in the
+    <code class="directive"><a href="../mod/mod_authnz_ldap.html#authldapurl">AuthLDAPURL</a></code>).</p>
+
+    <p>The default is 10 seconds, if the LDAP client library linked with the
+    server supports the LDAP_OPT_NETWORK_TIMEOUT option.</p>
+
+    <div class="note">LDAPConnectionTimeout is only available when the LDAP client library linked
+    with the server supports the LDAP_OPT_NETWORK_TIMEOUT
+    (or LDAP_OPT_CONNECT_TIMEOUT) option, and the ultimate behavior is
+    dictated entirely by the LDAP client library.
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPLibraryDebug" id="LDAPLibraryDebug">LDAPLibraryDebug</a> <a name="ldaplibrarydebug" id="ldaplibrarydebug">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable debugging in the LDAP SDK</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPLibraryDebug <var>7</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>disabled</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Turns on SDK-specific LDAP debug options that generally cause the LDAP
+    SDK to log verbose trace information to the main Apache error log.
+    The trace messages from the LDAP SDK provide gory details that
+    can be useful during debugging of connectivity problems with backend LDAP servers</p>
+
+    <p>This option is only configurable when Apache HTTP Server is linked with
+    an LDAP SDK that implements <code>LDAP_OPT_DEBUG</code> or
+    <code>LDAP_OPT_DEBUG_LEVEL</code>, such as OpenLDAP (a value of 7 is verbose)
+    or Tivoli Directory Server (a value of 65535 is verbose).</p>
+
+    <div class="warning">
+    <p>The logged information will likely contain plaintext credentials being used or
+    validated by LDAP authentication, so care should be taken in protecting and purging
+    the error log when this directive is used.</p>
+    </div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPOpCacheEntries" id="LDAPOpCacheEntries">LDAPOpCacheEntries</a> <a name="ldapopcacheentries" id="ldapopcacheentries">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of entries used to cache LDAP compare
+operations</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPOpCacheEntries <var>number</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPOpCacheEntries 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>This specifies the number of entries <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>
+    will use to cache LDAP compare operations. The default is 1024
+    entries.  Setting it to 0 disables operation caching.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPOpCacheTTL" id="LDAPOpCacheTTL">LDAPOpCacheTTL</a> <a name="ldapopcachettl" id="ldapopcachettl">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Time that entries in the operation cache remain
+valid</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPOpCacheTTL <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPOpCacheTTL 600</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies the time (in seconds) that entries in the
+    operation cache remain valid. The default is 600 seconds.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPReferralHopLimit" id="LDAPReferralHopLimit">LDAPReferralHopLimit</a> <a name="ldapreferralhoplimit" id="ldapreferralhoplimit">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum number of referral hops to chase before terminating an LDAP query.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPReferralHopLimit <var>number</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SDK dependent, typically between 5 and 10</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>This directive, if enabled by the <code class="directive">LDAPReferrals</code> directive,
+    limits the number of referral hops that are followed before terminating an
+    LDAP query.</p>
+
+<div class="warning">
+<p> Support for this tunable is uncommon in LDAP SDKs.</p>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPReferrals" id="LDAPReferrals">LDAPReferrals</a> <a name="ldapreferrals" id="ldapreferrals">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable referral chasing during queries to the LDAP server.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPReferrals <var>On|Off|default</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPReferrals On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The <var>default</var> parameter is available in Apache 2.4.7 and later</td></tr>
+</table>
+    <p>Some LDAP servers divide their directory among multiple domains and use referrals
+    to direct a client when a domain boundary is crossed. This is similar to a HTTP redirect.
+    LDAP client libraries may or may not chase referrals by default. This directive
+    explicitly configures the referral chasing in the underlying SDK.</p>
+
+
+    <p><code class="directive">LDAPReferrals</code> takes the following values:</p>
+    <dl>
+     <dt>"on"</dt>
+     <dd> <p> When set to "on", the underlying SDK's referral chasing state
+              is enabled, <code class="directive">LDAPReferralHopLimit</code> is used to
+              override the SDK's hop limit, and an LDAP rebind callback is
+              registered.</p></dd>
+     <dt>"off"</dt>
+     <dd> <p> When set to "off", the underlying SDK's referral chasing state
+              is disabled completely.</p></dd>
+     <dt>"default"</dt>
+     <dd> <p> When set to "default", the underlying SDK's referral chasing state
+              is not changed, <code class="directive">LDAPReferralHopLimit</code> is not
+              used to overide the SDK's hop limit, and no LDAP rebind callback is
+              registered.</p></dd>
+    </dl>
+
+    <p>The directive <code class="directive">LDAPReferralHopLimit</code> works in conjunction with
+    this directive to limit the number of referral hops to follow before terminating the LDAP query.
+    When referral processing is enabled by a value of "On", client credentials will be provided,
+    via a rebind callback, for any LDAP server requiring them.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPRetries" id="LDAPRetries">LDAPRetries</a> <a name="ldapretries" id="ldapretries">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the number of LDAP server retries.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPRetries <var>number-of-retries</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPRetries 3</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>The server will retry failed LDAP requests up to
+    <code class="directive">LDAPRetries</code> times.  Setting this
+    directive to 0 disables retries.</p>
+    <p>LDAP errors such as timeouts and refused connections are retryable.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPRetryDelay" id="LDAPRetryDelay">LDAPRetryDelay</a> <a name="ldapretrydelay" id="ldapretrydelay">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the delay between LDAP server retries.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPRetryDelay <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPRetryDelay 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>If <code class="directive">LDAPRetryDelay</code> is set to a non-zero
+    value, the server will delay retrying an LDAP request for the
+    specified amount of time.  Setting this directive to 0 will
+    result in any retry to occur without delay.</p>
+
+    <p>LDAP errors such as timeouts and refused connections are retryable.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPSharedCacheFile" id="LDAPSharedCacheFile">LDAPSharedCacheFile</a> <a name="ldapsharedcachefile" id="ldapsharedcachefile">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the shared memory cache file</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPSharedCacheFile <var>directory-path/filename</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies the directory path and file name of the shared memory
+    cache file. If not set, anonymous shared memory will be used if the
+    platform supports it.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPSharedCacheSize" id="LDAPSharedCacheSize">LDAPSharedCacheSize</a> <a name="ldapsharedcachesize" id="ldapsharedcachesize">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size in bytes of the shared-memory cache</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPSharedCacheSize <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPSharedCacheSize 500000</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies the number of bytes to allocate for the shared
+    memory cache. The default is 500kb. If set to 0, shared memory
+    caching will not be used and every HTTPD process will create its
+    own cache.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPTimeout" id="LDAPTimeout">LDAPTimeout</a> <a name="ldaptimeout" id="ldaptimeout">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the timeout for LDAP search and bind operations, in seconds</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTimeout <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPTimeout 60</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache HTTP Server 2.3.5 and later</td></tr>
+</table>
+    <p>This directive configures the timeout for bind and search operations, as well as
+    the LDAP_OPT_TIMEOUT option in the underlying LDAP client library, when available.</p>
+
+    <p> If the timeout expires, httpd will retry in case an existing connection has
+    been silently dropped by a firewall. However, performance will be much better if
+    the firewall is configured to send TCP RST packets instead of silently dropping
+    packets.</p>
+
+    <div class="note">
+    <p>Timeouts for ldap compare operations requires an SDK with LDAP_OPT_TIMEOUT, such as OpenLDAP &gt;= 2.4.4.</p>
+    </div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPTrustedClientCert" id="LDAPTrustedClientCert">LDAPTrustedClientCert</a> <a name="ldaptrustedclientcert" id="ldaptrustedclientcert">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the file containing or nickname referring to a per
+connection client certificate. Not all LDAP toolkits support per
+connection client certificates.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTrustedClientCert <var>type</var> <var>directory-path/filename/nickname</var> <var>[password]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>It specifies the directory path, file name or nickname of a
+    per connection client certificate used when establishing an SSL
+    or TLS connection to an LDAP server. Different locations or
+    directories may have their own independent client certificate
+    settings. Some LDAP toolkits (notably Novell)
+    do not support per connection client certificates, and will throw an
+    error on LDAP server connection if you try to use this directive
+    (Use the LDAPTrustedGlobalCert directive instead for Novell client
+    certificates - See the SSL/TLS certificate guide above for details).
+    The type specifies the kind of certificate parameter being
+    set, depending on the LDAP toolkit being used. Supported types are:</p>
+    <ul>
+      <li>CA_DER - binary DER encoded CA certificate</li>
+      <li>CA_BASE64 - PEM encoded CA certificate</li>
+      <li>CERT_DER - binary DER encoded client certificate</li>
+      <li>CERT_BASE64 - PEM encoded client certificate</li>
+      <li>CERT_NICKNAME - Client certificate "nickname" (Netscape SDK)</li>
+      <li>KEY_DER - binary DER encoded private key</li>
+      <li>KEY_BASE64 - PEM encoded private key</li>
+    </ul>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPTrustedGlobalCert" id="LDAPTrustedGlobalCert">LDAPTrustedGlobalCert</a> <a name="ldaptrustedglobalcert" id="ldaptrustedglobalcert">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the file or database containing global trusted
+Certificate Authority or global client certificates</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTrustedGlobalCert <var>type</var> <var>directory-path/filename</var> <var>[password]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>It specifies the directory path and file name of the trusted CA
+    certificates and/or system wide client certificates <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>
+    should use when establishing an SSL or TLS connection to an LDAP
+    server. Note that all certificate information specified using this directive
+    is applied globally to the entire server installation. Some LDAP toolkits
+    (notably Novell) require all client certificates to be set globally using
+    this directive. Most other toolkits require clients certificates to be set
+    per Directory or per Location using LDAPTrustedClientCert. If you get this
+    wrong, an error may be logged when an attempt is made to contact the LDAP
+    server, or the connection may silently fail (See the SSL/TLS certificate
+    guide above for details).
+    The type specifies the kind of certificate parameter being
+    set, depending on the LDAP toolkit being used. Supported types are:</p>
+    <ul>
+      <li>CA_DER - binary DER encoded CA certificate</li>
+      <li>CA_BASE64 - PEM encoded CA certificate</li>
+      <li>CA_CERT7_DB - Netscape cert7.db CA certificate database file</li>
+      <li>CA_SECMOD - Netscape secmod database file</li>
+      <li>CERT_DER - binary DER encoded client certificate</li>
+      <li>CERT_BASE64 - PEM encoded client certificate</li>
+      <li>CERT_KEY3_DB - Netscape key3.db client certificate database file</li>
+      <li>CERT_NICKNAME - Client certificate "nickname" (Netscape SDK)</li>
+      <li>CERT_PFX - PKCS#12 encoded client certificate (Novell SDK)</li>
+      <li>KEY_DER - binary DER encoded private key</li>
+      <li>KEY_BASE64 - PEM encoded private key</li>
+      <li>KEY_PFX - PKCS#12 encoded private key (Novell SDK)</li>
+    </ul>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPTrustedMode" id="LDAPTrustedMode">LDAPTrustedMode</a> <a name="ldaptrustedmode" id="ldaptrustedmode">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the SSL/TLS mode to be used when connecting to an LDAP server.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTrustedMode <var>type</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>The following modes are supported:</p>
+    <ul>
+      <li>NONE - no encryption</li>
+      <li>SSL - ldaps:// encryption on default port 636</li>
+      <li>TLS - STARTTLS encryption on default port 389</li>
+    </ul>
+
+    <p>Not all LDAP toolkits support all the above modes. An error message
+    will be logged at runtime if a mode is not supported, and the
+    connection to the LDAP server will fail.
+    </p>
+
+    <p>If an ldaps:// URL is specified, the mode becomes SSL and the setting
+    of LDAPTrustedMode is ignored.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LDAPVerifyServerCert" id="LDAPVerifyServerCert">LDAPVerifyServerCert</a> <a name="ldapverifyservercert" id="ldapverifyservercert">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force server certificate verification</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPVerifyServerCert <var>On|Off</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPVerifyServerCert On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies whether to force the verification of a
+    server certificate when establishing an SSL connection to the
+    LDAP server.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="exampleconfig" id="exampleconfig">Example Configuration</a></h2>
     <p>The following is an example configuration that uses
@@ -252,590 +667,175 @@ LDAPTrustedGlobalCert CA_DER "/certs/certfile.der"
     AuthBasicProvider ldap
     AuthLDAPURL "ldaps://127.0.0.1/dc=example,dc=com?uid?one"
     Require valid-user
-&lt;/Location&gt;</pre>
-
-
-    <pre class="prettyprint lang-config"># Establish a TLS LDAP connection on port 389. Requires that
-# mod_ldap and mod_authnz_ldap be loaded. Change the
-# "yourdomain.example.com" to match your domain.
-
-LDAPTrustedGlobalCert CA_DER "/certs/certfile.der:
-
-&lt;Location "/ldap-status"&gt;
-    SetHandler ldap-status
-
-    Require host yourdomain.example.com
-
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    AuthLDAPURL "ldap://127.0.0.1/dc=example,dc=com?uid?one" TLS
-    Require valid-user
-&lt;/Location&gt;</pre>
-
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="settingcerts" id="settingcerts">SSL/TLS Certificates</a></h2>
-
-    <p>The different LDAP SDKs have widely different methods of setting
-    and handling both CA and client side certificates.</p>
-
-    <p>If you intend to use SSL or TLS, read this section CAREFULLY so as to
-    understand the differences between configurations on the different LDAP
-    toolkits supported.</p>
-
-    <h3><a name="settingcerts-netscape" id="settingcerts-netscape">Netscape/Mozilla/iPlanet SDK</a></h3>
-        <p>CA certificates are specified within a file called cert7.db.
-        The SDK will not talk to any LDAP server whose certificate was
-        not signed by a CA specified in this file. If
-        client certificates are required, an optional key3.db file may
-        be specified with an optional password. The secmod file can be
-        specified if required. These files are in the same format as
-        used by the Netscape Communicator or Mozilla web browsers. The easiest
-        way to obtain these files is to grab them from your browser
-        installation.</p>
-
-        <p>Client certificates are specified per connection using the
-        LDAPTrustedClientCert directive by referring
-        to the certificate "nickname". An optional password may be
-        specified to unlock the certificate's private key.</p>
-
-        <p>The SDK supports SSL only. An attempt to use STARTTLS will cause
-        an error when an attempt is made to contact the LDAP server at
-        runtime.</p>
-
-        <pre class="prettyprint lang-config"># Specify a Netscape CA certificate file
-LDAPTrustedGlobalCert CA_CERT7_DB "/certs/cert7.db"
-# Specify an optional key3.db file for client certificate support
-LDAPTrustedGlobalCert CERT_KEY3_DB "/certs/key3.db"
-# Specify the secmod file if required
-LDAPTrustedGlobalCert CA_SECMOD "/certs/secmod"
-&lt;Location "/ldap-status"&gt;
-    SetHandler ldap-status
-
-    Require host yourdomain.example.com
-
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    LDAPTrustedClientCert CERT_NICKNAME &lt;nickname&gt; [password]
-    AuthLDAPURL "ldaps://127.0.0.1/dc=example,dc=com?uid?one"
-    Require valid-user
-&lt;/Location&gt;</pre>
-
-
-    
-
-    <h3><a name="settingcerts-novell" id="settingcerts-novell">Novell SDK</a></h3>
-
-        <p>One or more CA certificates must be specified for the Novell
-        SDK to work correctly. These certificates can be specified as
-        binary DER or Base64 (PEM) encoded files.</p>
-
-        <p>Note: Client certificates are specified globally rather than per
-        connection, and so must be specified with the LDAPTrustedGlobalCert
-        directive as below. Trying to set client certificates via the
-        LDAPTrustedClientCert directive will cause an error to be logged
-        when an attempt is made to connect to the LDAP server..</p>
-
-        <p>The SDK supports both SSL and STARTTLS, set using the
-        LDAPTrustedMode parameter. If an ldaps:// URL is specified,
-        SSL mode is forced, override this directive.</p>
-
-        <pre class="prettyprint lang-config"># Specify two CA certificate files
-LDAPTrustedGlobalCert CA_DER "/certs/cacert1.der"
-LDAPTrustedGlobalCert CA_BASE64 "/certs/cacert2.pem"
-# Specify a client certificate file and key
-LDAPTrustedGlobalCert CERT_BASE64 "/certs/cert1.pem"
-LDAPTrustedGlobalCert KEY_BASE64 "/certs/key1.pem" [password]
-# Do not use this directive, as it will throw an error
-#LDAPTrustedClientCert CERT_BASE64 "/certs/cert1.pem"</pre>
-
-
-    
-
-    <h3><a name="settingcerts-openldap" id="settingcerts-openldap">OpenLDAP SDK</a></h3>
-
-        <p>One or more CA certificates must be specified for the OpenLDAP
-        SDK to work correctly. These certificates can be specified as
-        binary DER or Base64 (PEM) encoded files.</p>
-
-        <p>Both CA and client certificates may be specified globally
-        (LDAPTrustedGlobalCert) or per-connection (LDAPTrustedClientCert).
-        When any settings are specified per-connection, the global
-        settings are superceded.</p>
-
-        <p>The documentation for the SDK claims to support both SSL and
-        STARTTLS, however STARTTLS does not seem to work on all versions
-        of the SDK. The SSL/TLS mode can be set using the
-        LDAPTrustedMode parameter. If an ldaps:// URL is specified,
-        SSL mode is forced. The OpenLDAP documentation notes that SSL
-        (ldaps://) support has been deprecated to be replaced with TLS,
-        although the SSL functionality still works.</p>
-
-        <pre class="prettyprint lang-config"># Specify two CA certificate files
-LDAPTrustedGlobalCert CA_DER "/certs/cacert1.der"
-LDAPTrustedGlobalCert CA_BASE64 "/certs/cacert2.pem"
-&lt;Location "/ldap-status"&gt;
-    SetHandler ldap-status
-
-    Require host yourdomain.example.com
-
-    LDAPTrustedClientCert CERT_BASE64 "/certs/cert1.pem"
-    LDAPTrustedClientCert KEY_BASE64 "/certs/key1.pem"
-    # CA certs respecified due to per-directory client certs
-    LDAPTrustedClientCert CA_DER "/certs/cacert1.der"
-    LDAPTrustedClientCert CA_BASE64 "/certs/cacert2.pem"
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    AuthLDAPURL "ldaps://127.0.0.1/dc=example,dc=com?uid?one"
-    Require valid-user
-&lt;/Location&gt;</pre>
-
-
-    
-
-    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">Solaris SDK</a></h3>
-
-        <p>SSL/TLS for the native Solaris LDAP libraries is not yet
-        supported. If required, install and use the OpenLDAP libraries
-        instead.</p>
-
-    
-
-    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">Microsoft SDK</a></h3>
-
-        <p>SSL/TLS certificate configuration for the native Microsoft
-        LDAP libraries is done inside the system registry, and no
-        configuration directives are required.</p>
+&lt;/Location&gt;</pre>
 
-        <p>Both SSL and TLS are supported by using the ldaps:// URL
-        format, or by using the LDAPTrustedMode directive accordingly.</p>
 
-        <p>Note: The status of support for client certificates is not yet known
-        for this toolkit.</p>
+    <pre class="prettyprint lang-config"># Establish a TLS LDAP connection on port 389. Requires that
+# mod_ldap and mod_authnz_ldap be loaded. Change the
+# "yourdomain.example.com" to match your domain.
 
-    
+LDAPTrustedGlobalCert CA_DER "/certs/certfile.der:
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPCacheEntries" id="LDAPCacheEntries">LDAPCacheEntries</a> <a name="ldapcacheentries" id="ldapcacheentries">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of entries in the primary LDAP cache</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPCacheEntries <var>number</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPCacheEntries 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies the maximum size of the primary LDAP cache. This
-    cache contains successful search/binds. Set it to 0 to turn off
-    search/bind caching. The default size is 1024 cached
-    searches.</p>
+&lt;Location "/ldap-status"&gt;
+    SetHandler ldap-status
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPCacheTTL" id="LDAPCacheTTL">LDAPCacheTTL</a> <a name="ldapcachettl" id="ldapcachettl">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Time that cached items remain valid</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPCacheTTL <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPCacheTTL 600</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies the time (in seconds) that an item in the
-    search/bind cache remains valid. The default is 600 seconds (10
-    minutes).</p>
+    Require host yourdomain.example.com
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPConnectionPoolTTL" id="LDAPConnectionPoolTTL">LDAPConnectionPoolTTL</a> <a name="ldapconnectionpoolttl" id="ldapconnectionpoolttl">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Discard backend connections that have been sitting in the connection pool too long</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPConnectionPoolTTL <var>n</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPConnectionPoolTTL -1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache HTTP Server 2.3.12 and later</td></tr>
-</table>
-    <p>Specifies the maximum age, in seconds, that a pooled LDAP connection can remain idle
-    and still be available for use.  Connections are cleaned up when they are next needed,
-    not asynchronously.</p>
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    AuthLDAPURL "ldap://127.0.0.1/dc=example,dc=com?uid?one" TLS
+    Require valid-user
+&lt;/Location&gt;</pre>
 
-    <p>A setting of 0 causes connections to never be saved in the backend
-    connection pool.  The default value of -1, and any other negative value,
-    allows connections of any age to be reused.</p>
 
-    <p>For performance reasons, the reference time used by this directive is 
-    based on when the LDAP connection is returned to the pool, not the time
-    of the last successful I/O with the LDAP server.  </p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="settingcerts" id="settingcerts">SSL/TLS Certificates</a></h2>
 
-    <p>Since 2.4.10, new measures are in place to avoid the reference time
-    from being inflated by cache hits or slow requests.  First, the reference
-    time is not updated if no backend LDAP conncetions were needed. Second,
-    the reference time uses the time the HTTP request was received instead
-    of the time the request is completed.</p>
-    
-    <div class="note"><p>This timeout defaults to units of seconds, but accepts
-    suffixes for milliseconds (ms), minutes (min), and hours (h).
-    </p></div>
+    <p>The different LDAP SDKs have widely different methods of setting
+    and handling both CA and client side certificates.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPConnectionTimeout" id="LDAPConnectionTimeout">LDAPConnectionTimeout</a> <a name="ldapconnectiontimeout" id="ldapconnectiontimeout">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the socket connection timeout in seconds</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPConnectionTimeout <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>This directive configures the LDAP_OPT_NETWORK_TIMEOUT (or LDAP_OPT_CONNECT_TIMEOUT)
-    option in the underlying LDAP client library, when available.  This value
-    typically controls how long the LDAP client library will wait for the TCP
-    connection to the LDAP server to complete.</p>
+    <p>If you intend to use SSL or TLS, read this section CAREFULLY so as to
+    understand the differences between configurations on the different LDAP
+    toolkits supported.</p>
 
-    <p> If a connection is not successful with the timeout period, either an error will be
-    returned or the LDAP client library will attempt to connect to a secondary LDAP
-    server if one is specified (via a space-separated list of hostnames in the
-    <code class="directive"><a href="../mod/mod_authnz_ldap.html#authldapurl">AuthLDAPURL</a></code>).</p>
+    <h3><a name="settingcerts-netscape" id="settingcerts-netscape">Netscape/Mozilla/iPlanet SDK</a></h3>
+        <p>CA certificates are specified within a file called cert7.db.
+        The SDK will not talk to any LDAP server whose certificate was
+        not signed by a CA specified in this file. If
+        client certificates are required, an optional key3.db file may
+        be specified with an optional password. The secmod file can be
+        specified if required. These files are in the same format as
+        used by the Netscape Communicator or Mozilla web browsers. The easiest
+        way to obtain these files is to grab them from your browser
+        installation.</p>
 
-    <p>The default is 10 seconds, if the LDAP client library linked with the
-    server supports the LDAP_OPT_NETWORK_TIMEOUT option.</p>
+        <p>Client certificates are specified per connection using the
+        LDAPTrustedClientCert directive by referring
+        to the certificate "nickname". An optional password may be
+        specified to unlock the certificate's private key.</p>
 
-    <div class="note">LDAPConnectionTimeout is only available when the LDAP client library linked
-    with the server supports the LDAP_OPT_NETWORK_TIMEOUT
-    (or LDAP_OPT_CONNECT_TIMEOUT) option, and the ultimate behavior is
-    dictated entirely by the LDAP client library.
-    </div>
+        <p>The SDK supports SSL only. An attempt to use STARTTLS will cause
+        an error when an attempt is made to contact the LDAP server at
+        runtime.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPLibraryDebug" id="LDAPLibraryDebug">LDAPLibraryDebug</a> <a name="ldaplibrarydebug" id="ldaplibrarydebug">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable debugging in the LDAP SDK</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPLibraryDebug <var>7</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>disabled</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Turns on SDK-specific LDAP debug options that generally cause the LDAP
-    SDK to log verbose trace information to the main Apache error log.
-    The trace messages from the LDAP SDK provide gory details that
-    can be useful during debugging of connectivity problems with backend LDAP servers</p>
+        <pre class="prettyprint lang-config"># Specify a Netscape CA certificate file
+LDAPTrustedGlobalCert CA_CERT7_DB "/certs/cert7.db"
+# Specify an optional key3.db file for client certificate support
+LDAPTrustedGlobalCert CERT_KEY3_DB "/certs/key3.db"
+# Specify the secmod file if required
+LDAPTrustedGlobalCert CA_SECMOD "/certs/secmod"
+&lt;Location "/ldap-status"&gt;
+    SetHandler ldap-status
 
-    <p>This option is only configurable when Apache HTTP Server is linked with
-    an LDAP SDK that implements <code>LDAP_OPT_DEBUG</code> or
-    <code>LDAP_OPT_DEBUG_LEVEL</code>, such as OpenLDAP (a value of 7 is verbose)
-    or Tivoli Directory Server (a value of 65535 is verbose).</p>
+    Require host yourdomain.example.com
 
-    <div class="warning">
-    <p>The logged information will likely contain plaintext credentials being used or
-    validated by LDAP authentication, so care should be taken in protecting and purging
-    the error log when this directive is used.</p>
-    </div>
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    LDAPTrustedClientCert CERT_NICKNAME &lt;nickname&gt; [password]
+    AuthLDAPURL "ldaps://127.0.0.1/dc=example,dc=com?uid?one"
+    Require valid-user
+&lt;/Location&gt;</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPOpCacheEntries" id="LDAPOpCacheEntries">LDAPOpCacheEntries</a> <a name="ldapopcacheentries" id="ldapopcacheentries">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of entries used to cache LDAP compare
-operations</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPOpCacheEntries <var>number</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPOpCacheEntries 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>This specifies the number of entries <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>
-    will use to cache LDAP compare operations. The default is 1024
-    entries.  Setting it to 0 disables operation caching.</p>
+    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPOpCacheTTL" id="LDAPOpCacheTTL">LDAPOpCacheTTL</a> <a name="ldapopcachettl" id="ldapopcachettl">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Time that entries in the operation cache remain
-valid</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPOpCacheTTL <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPOpCacheTTL 600</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies the time (in seconds) that entries in the
-    operation cache remain valid. The default is 600 seconds.</p>
+    <h3><a name="settingcerts-novell" id="settingcerts-novell">Novell SDK</a></h3>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPReferralHopLimit" id="LDAPReferralHopLimit">LDAPReferralHopLimit</a> <a name="ldapreferralhoplimit" id="ldapreferralhoplimit">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The maximum number of referral hops to chase before terminating an LDAP query.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPReferralHopLimit <var>number</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SDK dependent, typically between 5 and 10</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>This directive, if enabled by the <code class="directive">LDAPReferrals</code> directive,
-    limits the number of referral hops that are followed before terminating an
-    LDAP query.</p>
+        <p>One or more CA certificates must be specified for the Novell
+        SDK to work correctly. These certificates can be specified as
+        binary DER or Base64 (PEM) encoded files.</p>
 
-<div class="warning">
-<p> Support for this tunable is uncommon in LDAP SDKs.</p>
-</div>
+        <p>Note: Client certificates are specified globally rather than per
+        connection, and so must be specified with the LDAPTrustedGlobalCert
+        directive as below. Trying to set client certificates via the
+        LDAPTrustedClientCert directive will cause an error to be logged
+        when an attempt is made to connect to the LDAP server..</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPReferrals" id="LDAPReferrals">LDAPReferrals</a> <a name="ldapreferrals" id="ldapreferrals">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable referral chasing during queries to the LDAP server.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPReferrals <var>On|Off|default</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPReferrals On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The <var>default</var> parameter is available in Apache 2.4.7 and later</td></tr>
-</table>
-    <p>Some LDAP servers divide their directory among multiple domains and use referrals
-    to direct a client when a domain boundary is crossed. This is similar to a HTTP redirect.
-    LDAP client libraries may or may not chase referrals by default. This directive
-    explicitly configures the referral chasing in the underlying SDK.</p>
+        <p>The SDK supports both SSL and STARTTLS, set using the
+        LDAPTrustedMode parameter. If an ldaps:// URL is specified,
+        SSL mode is forced, override this directive.</p>
+
+        <pre class="prettyprint lang-config"># Specify two CA certificate files
+LDAPTrustedGlobalCert CA_DER "/certs/cacert1.der"
+LDAPTrustedGlobalCert CA_BASE64 "/certs/cacert2.pem"
+# Specify a client certificate file and key
+LDAPTrustedGlobalCert CERT_BASE64 "/certs/cert1.pem"
+LDAPTrustedGlobalCert KEY_BASE64 "/certs/key1.pem" [password]
+# Do not use this directive, as it will throw an error
+#LDAPTrustedClientCert CERT_BASE64 "/certs/cert1.pem"</pre>
 
 
-    <p><code class="directive">LDAPReferrals</code> takes the following values:</p>
-    <dl>
-     <dt>"on"</dt>
-     <dd> <p> When set to "on", the underlying SDK's referral chasing state
-              is enabled, <code class="directive">LDAPReferralHopLimit</code> is used to
-              override the SDK's hop limit, and an LDAP rebind callback is
-              registered.</p></dd>
-     <dt>"off"</dt>
-     <dd> <p> When set to "off", the underlying SDK's referral chasing state
-              is disabled completely.</p></dd>
-     <dt>"default"</dt>
-     <dd> <p> When set to "default", the underlying SDK's referral chasing state
-              is not changed, <code class="directive">LDAPReferralHopLimit</code> is not
-              used to overide the SDK's hop limit, and no LDAP rebind callback is
-              registered.</p></dd>
-    </dl>
+    
 
-    <p>The directive <code class="directive">LDAPReferralHopLimit</code> works in conjunction with
-    this directive to limit the number of referral hops to follow before terminating the LDAP query.
-    When referral processing is enabled by a value of "On", client credentials will be provided,
-    via a rebind callback, for any LDAP server requiring them.</p>
+    <h3><a name="settingcerts-openldap" id="settingcerts-openldap">OpenLDAP SDK</a></h3>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPRetries" id="LDAPRetries">LDAPRetries</a> <a name="ldapretries" id="ldapretries">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the number of LDAP server retries.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPRetries <var>number-of-retries</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPRetries 3</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>The server will retry failed LDAP requests up to
-    <code class="directive">LDAPRetries</code> times.  Setting this
-    directive to 0 disables retries.</p>
-    <p>LDAP errors such as timeouts and refused connections are retryable.</p>
+        <p>One or more CA certificates must be specified for the OpenLDAP
+        SDK to work correctly. These certificates can be specified as
+        binary DER or Base64 (PEM) encoded files.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPRetryDelay" id="LDAPRetryDelay">LDAPRetryDelay</a> <a name="ldapretrydelay" id="ldapretrydelay">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configures the delay between LDAP server retries.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPRetryDelay <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPRetryDelay 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>If <code class="directive">LDAPRetryDelay</code> is set to a non-zero
-    value, the server will delay retrying an LDAP request for the
-    specified amount of time.  Setting this directive to 0 will
-    result in any retry to occur without delay.</p>
+        <p>Both CA and client certificates may be specified globally
+        (LDAPTrustedGlobalCert) or per-connection (LDAPTrustedClientCert).
+        When any settings are specified per-connection, the global
+        settings are superceded.</p>
 
-    <p>LDAP errors such as timeouts and refused connections are retryable.</p>
+        <p>The documentation for the SDK claims to support both SSL and
+        STARTTLS, however STARTTLS does not seem to work on all versions
+        of the SDK. The SSL/TLS mode can be set using the
+        LDAPTrustedMode parameter. If an ldaps:// URL is specified,
+        SSL mode is forced. The OpenLDAP documentation notes that SSL
+        (ldaps://) support has been deprecated to be replaced with TLS,
+        although the SSL functionality still works.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPSharedCacheFile" id="LDAPSharedCacheFile">LDAPSharedCacheFile</a> <a name="ldapsharedcachefile" id="ldapsharedcachefile">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the shared memory cache file</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPSharedCacheFile <var>directory-path/filename</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies the directory path and file name of the shared memory
-    cache file. If not set, anonymous shared memory will be used if the
-    platform supports it.</p>
+        <pre class="prettyprint lang-config"># Specify two CA certificate files
+LDAPTrustedGlobalCert CA_DER "/certs/cacert1.der"
+LDAPTrustedGlobalCert CA_BASE64 "/certs/cacert2.pem"
+&lt;Location "/ldap-status"&gt;
+    SetHandler ldap-status
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPSharedCacheSize" id="LDAPSharedCacheSize">LDAPSharedCacheSize</a> <a name="ldapsharedcachesize" id="ldapsharedcachesize">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Size in bytes of the shared-memory cache</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPSharedCacheSize <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPSharedCacheSize 500000</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies the number of bytes to allocate for the shared
-    memory cache. The default is 500kb. If set to 0, shared memory
-    caching will not be used and every HTTPD process will create its
-    own cache.</p>
+    Require host yourdomain.example.com
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPTimeout" id="LDAPTimeout">LDAPTimeout</a> <a name="ldaptimeout" id="ldaptimeout">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the timeout for LDAP search and bind operations, in seconds</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTimeout <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPTimeout 60</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Apache HTTP Server 2.3.5 and later</td></tr>
-</table>
-    <p>This directive configures the timeout for bind and search operations, as well as
-    the LDAP_OPT_TIMEOUT option in the underlying LDAP client library, when available.</p>
+    LDAPTrustedClientCert CERT_BASE64 "/certs/cert1.pem"
+    LDAPTrustedClientCert KEY_BASE64 "/certs/key1.pem"
+    # CA certs respecified due to per-directory client certs
+    LDAPTrustedClientCert CA_DER "/certs/cacert1.der"
+    LDAPTrustedClientCert CA_BASE64 "/certs/cacert2.pem"
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    AuthLDAPURL "ldaps://127.0.0.1/dc=example,dc=com?uid?one"
+    Require valid-user
+&lt;/Location&gt;</pre>
 
-    <p> If the timeout expires, httpd will retry in case an existing connection has
-    been silently dropped by a firewall. However, performance will be much better if
-    the firewall is configured to send TCP RST packets instead of silently dropping
-    packets.</p>
 
-    <div class="note">
-    <p>Timeouts for ldap compare operations requires an SDK with LDAP_OPT_TIMEOUT, such as OpenLDAP &gt;= 2.4.4.</p>
-    </div>
+    
 
+    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">Solaris SDK</a></h3>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPTrustedClientCert" id="LDAPTrustedClientCert">LDAPTrustedClientCert</a> <a name="ldaptrustedclientcert" id="ldaptrustedclientcert">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the file containing or nickname referring to a per
-connection client certificate. Not all LDAP toolkits support per
-connection client certificates.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTrustedClientCert <var>type</var> <var>directory-path/filename/nickname</var> <var>[password]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>It specifies the directory path, file name or nickname of a
-    per connection client certificate used when establishing an SSL
-    or TLS connection to an LDAP server. Different locations or
-    directories may have their own independent client certificate
-    settings. Some LDAP toolkits (notably Novell)
-    do not support per connection client certificates, and will throw an
-    error on LDAP server connection if you try to use this directive
-    (Use the LDAPTrustedGlobalCert directive instead for Novell client
-    certificates - See the SSL/TLS certificate guide above for details).
-    The type specifies the kind of certificate parameter being
-    set, depending on the LDAP toolkit being used. Supported types are:</p>
-    <ul>
-      <li>CA_DER - binary DER encoded CA certificate</li>
-      <li>CA_BASE64 - PEM encoded CA certificate</li>
-      <li>CERT_DER - binary DER encoded client certificate</li>
-      <li>CERT_BASE64 - PEM encoded client certificate</li>
-      <li>CERT_NICKNAME - Client certificate "nickname" (Netscape SDK)</li>
-      <li>KEY_DER - binary DER encoded private key</li>
-      <li>KEY_BASE64 - PEM encoded private key</li>
-    </ul>
+        <p>SSL/TLS for the native Solaris LDAP libraries is not yet
+        supported. If required, install and use the OpenLDAP libraries
+        instead.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPTrustedGlobalCert" id="LDAPTrustedGlobalCert">LDAPTrustedGlobalCert</a> <a name="ldaptrustedglobalcert" id="ldaptrustedglobalcert">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the file or database containing global trusted
-Certificate Authority or global client certificates</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTrustedGlobalCert <var>type</var> <var>directory-path/filename</var> <var>[password]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>It specifies the directory path and file name of the trusted CA
-    certificates and/or system wide client certificates <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>
-    should use when establishing an SSL or TLS connection to an LDAP
-    server. Note that all certificate information specified using this directive
-    is applied globally to the entire server installation. Some LDAP toolkits
-    (notably Novell) require all client certificates to be set globally using
-    this directive. Most other toolkits require clients certificates to be set
-    per Directory or per Location using LDAPTrustedClientCert. If you get this
-    wrong, an error may be logged when an attempt is made to contact the LDAP
-    server, or the connection may silently fail (See the SSL/TLS certificate
-    guide above for details).
-    The type specifies the kind of certificate parameter being
-    set, depending on the LDAP toolkit being used. Supported types are:</p>
-    <ul>
-      <li>CA_DER - binary DER encoded CA certificate</li>
-      <li>CA_BASE64 - PEM encoded CA certificate</li>
-      <li>CA_CERT7_DB - Netscape cert7.db CA certificate database file</li>
-      <li>CA_SECMOD - Netscape secmod database file</li>
-      <li>CERT_DER - binary DER encoded client certificate</li>
-      <li>CERT_BASE64 - PEM encoded client certificate</li>
-      <li>CERT_KEY3_DB - Netscape key3.db client certificate database file</li>
-      <li>CERT_NICKNAME - Client certificate "nickname" (Netscape SDK)</li>
-      <li>CERT_PFX - PKCS#12 encoded client certificate (Novell SDK)</li>
-      <li>KEY_DER - binary DER encoded private key</li>
-      <li>KEY_BASE64 - PEM encoded private key</li>
-      <li>KEY_PFX - PKCS#12 encoded private key (Novell SDK)</li>
-    </ul>
+    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPTrustedMode" id="LDAPTrustedMode">LDAPTrustedMode</a> <a name="ldaptrustedmode" id="ldaptrustedmode">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specifies the SSL/TLS mode to be used when connecting to an LDAP server.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPTrustedMode <var>type</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>The following modes are supported:</p>
-    <ul>
-      <li>NONE - no encryption</li>
-      <li>SSL - ldaps:// encryption on default port 636</li>
-      <li>TLS - STARTTLS encryption on default port 389</li>
-    </ul>
+    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">Microsoft SDK</a></h3>
 
-    <p>Not all LDAP toolkits support all the above modes. An error message
-    will be logged at runtime if a mode is not supported, and the
-    connection to the LDAP server will fail.
-    </p>
+        <p>SSL/TLS certificate configuration for the native Microsoft
+        LDAP libraries is done inside the system registry, and no
+        configuration directives are required.</p>
 
-    <p>If an ldaps:// URL is specified, the mode becomes SSL and the setting
-    of LDAPTrustedMode is ignored.</p>
+        <p>Both SSL and TLS are supported by using the ldaps:// URL
+        format, or by using the LDAPTrustedMode directive accordingly.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LDAPVerifyServerCert" id="LDAPVerifyServerCert">LDAPVerifyServerCert</a> <a name="ldapverifyservercert" id="ldapverifyservercert">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force server certificate verification</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LDAPVerifyServerCert <var>On|Off</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LDAPVerifyServerCert On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies whether to force the verification of a
-    server certificate when establishing an SSL connection to the
-    LDAP server.</p>
+        <p>Note: The status of support for client certificates is not yet known
+        for this toolkit.</p>
+
+    
 
 </div>
 </div>
index 36d930f1f9c8735a54d180843a043ac172d8d15d..3406c352101cd4c3042e1b3e4a543231f0416f78 100644 (file)
@@ -86,848 +86,848 @@ cache du r
 <li><img alt="" src="../images/down.gif" /> <a href="#settingcerts">Certificats SSL/TLS</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="exampleconfig" id="exampleconfig">Exemple de configuration</a></h2>
-    <p>Ce qui suit est un exemple de configuration qui utilise
-    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> pour améliorer les performances de
-    l'authentification HTTP de base fournie par
-    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p>
-
-    <pre class="prettyprint lang-config"># Active la conservation des connexions LDAP et le cache partagé en
-# mémoire. Active le gestionnaire de statut du cache LDAP.
-# Nécessite le chargement de mod_ldap et de mod_authnz_ldap.
-# Remplacez "votre-domaine.example.com" par le nom de votre
-# domaine.
+<div class="directive-section"><h2><a name="ldapcacheentries" id="ldapcacheentries">Directive</a> <a name="LDAPCacheEntries" id="LDAPCacheEntries">LDAPCacheEntries</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum d'entrées dans le cache LDAP
+primaire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPCacheEntries <var>nombre</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPCacheEntries 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier la taille maximale du cache
+    LDAP primaire. Ce cache contient les résultats de
+    recherche/identification positifs. Définissez-la à 0 pour désactiver
+    la mise en cache des résultats de recherche/identification positifs.
+    La taille par défaut est de 1024 recherches en cache.</p>
 
-LDAPSharedCacheSize 500000
-LDAPCacheEntries 1024
-LDAPCacheTTL 600
-LDAPOpCacheEntries 1024
-LDAPOpCacheTTL 600
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapcachettl" id="ldapcachettl">Directive</a> <a name="LDAPCacheTTL" id="LDAPCacheTTL">LDAPCacheTTL</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée pendant laquelle les entrées du cache restent
+valides.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPCacheTTL <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPCacheTTL 600</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier la durée (en secondes)
+    pendant laquelle une entrée du cache de recherche/identification
+    reste valide. La valeur par défaut est de 600 secondes (10
+    minutes).</p>
 
-&lt;Location /ldap-status&gt;
-    SetHandler ldap-status
-    
-    Require host yourdomain.example.com
-    
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one
-    Require valid-user
-&lt;/Location&gt;</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapconnectionpoolttl" id="ldapconnectionpoolttl">Directive</a> <a name="LDAPConnectionPoolTTL" id="LDAPConnectionPoolTTL">LDAPConnectionPoolTTL</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Désactive les connexions d'arrière-plan qui sont restées
+inactives trop longtemps au sein du jeu de connexions.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPConnectionPoolTTL <var>n</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPConnectionPoolTTL -1</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.12 du serveur HTTP
+Apache</td></tr>
+</table>
+    <p>Cette directive permet de spécifier la durée maximale, en
+    secondes, pendant laquelle une connexion LDAP du jeu de connexions
+    peut demeurer inactive, mais rester quand-même disponible pour une
+    utilisation éventuelle. Le jeu de connexions est nettoyé au fur et à
+    mesure des besoins, de manière non asynchrone.</p>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="pool" id="pool">Conservation des connexions LDAP</a></h2>
+    <p>Si cette directive est définie à 0, les connexions ne sont jamais
+    sauvegardées dans le jeu de connexions d'arrière-plan. Avec la
+    valeur par défaut -1, ou toute autre valeur négative, les connexions
+    peuvent être réutilisées sans limite de durée.</p>
 
-    <p>Les connexions LDAP sont conservées de requête en requête. Ceci
-    permet de rester connecté et identifié au serveur LDAP, ce dernier
-    étant ainsi prêt pour la prochaine requête, sans avoir à se
-    déconnecter, reconnecter et réidentifier. Le gain en performances
-    est similaire à celui des connexions persistantes (keepalives)
-    HTTP.</p>
+    <p>Dans le but d'améliorer les performances, le temps de référence
+    qu'utilise cette directive correspond au moment où la connexion LDAP
+    est enregistrée ou remise dans le jeu de connexions, et non au
+    moment du dernier échange réussi avec le serveur LDAP.</p>
 
-    <p>Sur un serveur très sollicité, il est possible que de nombreuses
-    requêtes tentent d'accéder simultanément à la même connexion au
-    serveur LDAP. Lorsqu'une connexion LDAP est utilisée, Apache en crée
-    une deuxième en parallèle à la première, ce qui permet d'éviter que
-    le système de conservation des connexions ne devienne un goulot
-    d'étranglement.</p>
+    <p>La version 2.4.10 a introduit de nouvelles mesures permettant
+    d'éviter une augmentation excessive du temps de référence due à des
+    correspondances positives dans le cache ou des requêtes lentes. A
+    cet effet, le temps de référence n'est pas réactualisé si aucune
+    connexion LDAP d'arrière-plan n'est requise ; d'autre part, le temps
+    de référence se base sur le moment où la requête HTTP est reçue, et
+    non sur le moment où la requête a été traitée.</p>
 
-    <p>Il n'est pas nécessaire d'activer explicitement la conservation
-    des connexions dans la configuration d'Apache. Tout module utilisant
-    le module ldap pour accéder aux services LDAP partagera le jeu de
-    connexions.</p>
+    <div class="note"><p>Cette durée de vie s'exprime par défaut en secondes, mais
+    il est possible d'utiliser d'autres unités en ajoutant un suffixe :
+    millisecondes (ms), minutes (min), ou heures (h).
+    </p></div>
 
-    <p>Les connexions LDAP peuvent garder la trace des données
-    d'identification du client ldap utilisées pour l'identification
-    auprès du serveur LDAP. Ces données peuvent être fournies aux
-    serveurs LDAP qui ne permettent pas les connexions anonymes au cours
-    lors des tentatives de sauts vers des serveurs alternatifs. Pour
-    contrôler cette fonctionnalité, voir les directives <code class="directive"><a href="#ldapreferrals">LDAPReferrals</a></code> et <code class="directive"><a href="#ldapreferralhoplimit">LDAPReferralHopLimit</a></code>. Cette
-    fonctionnalité est activée par défaut.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="cache" id="cache">Cache LDAP</a></h2>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapconnectiontimeout" id="ldapconnectiontimeout">Directive</a> <a name="LDAPConnectionTimeout" id="LDAPConnectionTimeout">LDAPConnectionTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le délai d'attente en secondes de la socket de
+connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPConnectionTimeout <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive configure l'option LDAP_OPT_NETWORK_TIMEOUT (ou
+    LDAP_OPT_CONNECT_TIMEOUT) dans la bibliothèque client LDAP
+    sous-jacente, si elle est disponible. Cette valeur représente la
+    durée pendant laquelle la bibliothèque client LDAP va attendre que
+    le processus de connexion TCP au serveur LDAP soit achevé.</p>
 
-    <p>Pour améliorer les performances, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en
-    oeuvre une stratégie de mise en cache agressive visant à minimiser
-    le nombre de fois que le serveur LDAP doit être contacté. La mise en
-    cache peut facilement doubler et même tripler le débit d'Apache
-    lorsqu'il sert des pages protégées par mod_authnz_ldap. De plus, le
-    serveur LDAP verra lui-même sa charge sensiblement diminuée.</p>
+    <p>Si la connexion n'a pas réussi avant ce délai, une erreur sera
+    renvoyée, ou la bibliothèque client LDAP tentera de se connecter à
+    un second serveur LDAP, s'il en a été défini un (via une liste de
+    noms d'hôtes séparés par des espaces dans la directive <code class="directive"><a href="../mod/mod_authnz_ldap.html#authldapurl">AuthLDAPURL</a></code>).</p>
 
-    <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> supporte deux types de mise en cache
-    LDAP : un <em>cache recherche/identification</em> durant la phase
-    de recherche/identification et deux <em>caches d'opérations</em>
-    durant la phase de comparaison. Chaque URL LDAP utilisée par le
-    serveur a son propre jeu d'instances dans ces trois caches.</p>
+    <p>La valeur par défaut est 10 secondes, si la bibliothèque client
+    LDAP liée avec le serveur supporte l'option
+    LDAP_OPT_NETWORK_TIMEOUT.</p>
 
-    <h3><a name="search-bind" id="search-bind">Le cache
-    recherche/identification</a></h3>
-      <p>Les processus de recherche et d'identification sont les
-      opérations LDAP les plus consommatrices en temps, en particulier
-      si l'annuaire est de grande taille. Le cache de
-      recherche/identification met en cache toutes les recherches qui
-      ont abouti à une identification positive. Les résultats négatifs
-      (c'est à dire les recherches sans succès, ou les recherches qui
-      n'ont pas abouti à une identification positive) ne sont pas mis en
-      cache. La raison de cette décision réside dans le fait que les
-      connexions avec des données d'identification invalides ne
-      représentent qu'un faible pourcentage du nombre total de
-      connexions, et ainsi, le fait de ne pas mettre en cache les
-      données d'identification invalides réduira d'autant la taille du
-      cache.</p>
+    <div class="note">LDAPConnectionTimeout n'est disponible que si la bibliothèque client
+    LDAP liée avec le serveur supporte l'option
+    LDAP_OPT_NETWORK_TIMEOUT (ou LDAP_OPT_CONNECT_TIMEOUT), et le
+    comportement final est entièrement dicté par la bibliothèque client
+    LDAP.
+    </div>
 
-      <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en cache le nom d'utilisateur, le
-      DN extrait, le mot de passe utilisé pour l'identification, ainsi
-      que l'heure de l'identification. Chaque fois qu'une nouvelle
-      connexion est initialisée avec le même nom d'utilisateur,
-      <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> compare le mot de passe de la nouvelle
-      connexion avec le mot de passe enregistré dans le cache. Si les
-      mots de passe correspondent, et si l'entrée du cache n'est pas
-      trop ancienne, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> court-circuite la phase
-      de recherche/identification.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldaplibrarydebug" id="ldaplibrarydebug">Directive</a> <a name="LDAPLibraryDebug" id="LDAPLibraryDebug">LDAPLibraryDebug</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le débogage dans le SDK LDAP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPLibraryDebug <var>7</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>disabled</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Active les options de débogage LDAP spécifiques au SDK, qui
+    entraînent en général une journalisation d'informations verbeuses du
+    SDK LDAP dans le journal principal des erreurs d'Apache. Les
+    messages de traces en provenance du SDK LDAP fournissent des
+    informations très détaillées qui peuvent s'avérer utiles lors du
+    débogage des problèmes de connexion avec des serveurs LDAP
+    d'arrière-plan.</p>
 
-      <p>Le cache de recherche/identification est contrôlé par les
-      directives <code class="directive"><a href="#ldapcacheentries">LDAPCacheEntries</a></code> et <code class="directive"><a href="#ldapcachettl">LDAPCacheTTL</a></code>.</p>
-    
+    <p>Cette option n'est configurable que lorsque le serveur HTTP
+    Apache est lié avec un SDK LDAP qui implémente
+    <code>LDAP_OPT_DEBUG</code> ou <code>LDAP_OPT_DEBUG_LEVEL</code>,
+    comme OpenLDAP (une valeur de 7 est verbeuse) ou Tivoli Directory
+    Server (une valeur de 65535 est verbeuse).</p>
 
-    <h3><a name="opcaches" id="opcaches">Les caches d'opérations</a></h3>
-      <p>Au cours des opérations de comparaison d'attributs et de noms
-      distinctifs (DN), <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> utilise deux caches
-      d'opérations pour mettre en cache les opérations de comparaison.
-      Le premier cache de comparaison sert à mettre en cache les
-      résultats de comparaisons effectuées pour vérifier l'appartenance
-      à un groupe LDAP. Le second cache de comparaison sert à mettre en
-      cache les résultats de comparaisons entre DNs.</p>
+    <div class="warning">
+    <p>Les informations journalisées peuvent contenir des données
+    d'authentification en clair utilisées ou validées lors de
+    l'authentification LDAP ; vous devez donc prendre soin de protéger
+    et de purger le journal des erreurs lorsque cette directive est
+    utilisée.</p>
+    </div>
 
-      <p>Notez que, lorsque l'appartenance à un groupe est vérifiée,
-      toute comparaison de sous-groupes est mise en cache afin
-      d'accélérer les comparaisons de sous-groupes ultérieures.</p>
 
-      <p>Le comportement de ces deux caches est contrôlé par les
-      directives <code class="directive"><a href="#ldapopcacheentries">LDAPOpCacheEntries</a></code> et <code class="directive"><a href="#ldapopcachettl">LDAPOpCacheTTL</a></code>.</p>
-    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapopcacheentries" id="ldapopcacheentries">Directive</a> <a name="LDAPOpCacheEntries" id="LDAPOpCacheEntries">LDAPOpCacheEntries</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre d'entrées utilisées pour mettre en cache les
+opérations de comparaison LDAP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPOpCacheEntries <var>nombre</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPOpCacheEntries 1024</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le nombre d'entrées que
+    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> va utiliser pour mettre en cache les
+    opérations de comparaison LDAP. La valeur par défaut est de 1024
+    entrées. Si elle est définie à 0, la mise en cache des opérations de
+    comparaison LDAP est désactivée.</p>
 
-    <h3><a name="monitoring" id="monitoring">Superviser le cache</a></h3>
-      <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> possède un gestionnaire de contenu
-      qui permet aux administrateurs de superviser les performances du
-      cache. Le nom du gestionnaire de contenu est
-      <code>ldap-status</code>, et on peut utiliser les directives
-      suivantes pour accéder aux informations du cache de
-      <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> :</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapopcachettl" id="ldapopcachettl">Directive</a> <a name="LDAPOpCacheTTL" id="LDAPOpCacheTTL">LDAPOpCacheTTL</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée pendant laquelle les entrées du cache d'opérations
+restent valides</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPOpCacheTTL <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPOpCacheTTL 600</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier la durée (en secondes)
+    pendant laquelle les entrées du cache d'opérations restent valides.
+    La valeur par défaut est de 600 secondes.</p>
 
-      <pre class="prettyprint lang-config">&lt;Location /server/cache-info&gt;
-    SetHandler ldap-status
-&lt;/Location&gt;</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapreferralhoplimit" id="ldapreferralhoplimit">Directive</a> <a name="LDAPReferralHopLimit" id="LDAPReferralHopLimit">LDAPReferralHopLimit</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nombre maximum de redirections vers des serveurs
+alternatifs (referrals) avant l'abandon de la requête
+LDAP.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPReferralHopLimit <var>nombre</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Dépend du SDK, en général entre 5 et 10</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Si elle est activée par la directive <code class="directive">LDAPReferrals</code>,
+    cette directive permet de définir le nombre maximum de sauts vers
+    des serveurs alternatifs (referrals) avant l'abandon de la requête
+    LDAP.</p>
 
+<div class="warning">
+<p>L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.</p>
+</div>
 
-      <p>En se connectant à l'URL
-      <code>http://nom-serveur/infos-cache</code>, l'administrateur peut
-      obtenir un rapport sur le statut de chaque cache qu'utilise
-      <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>. Notez que si Apache ne supporte pas la
-      mémoire partagée, chaque instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code>
-      possèdera son propre cache, et chaque fois que l'URL sera
-      rechargée, un résultat différent pourra être affiché, en fonction
-      de l'instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code> qui traitera la
-      requête.</p>
-    
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="usingssltls" id="usingssltls">Utiliser SSL/TLS</a></h2>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapreferrals" id="ldapreferrals">Directive</a> <a name="LDAPReferrals" id="LDAPReferrals">LDAPReferrals</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la redirection vers des serveurs alternatifs au
+cours des requêtes vers le serveur LDAP.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPReferrals <var>On|Off|default</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPReferrals On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le paramètre <var>default</var> est disponible depuis la
+version 2.4.7 du serveur HTTP Apache.</td></tr>
+</table>
+    <p>Certains serveurs LDAP partagent leur annuaire en plusieurs
+    domaines et utilisent le système des redirections (referrals) pour
+    aiguiller un client lorsque les limites d'un domaine doivent être
+    franchies. Ce processus est similaire à une redirection HTTP. Les
+    bibliothèques client LDAP ne respectent pas forcément ces
+    redirections par défaut. Cette directive permet de configurer
+    explicitement les redirections LDAP dans le SDK sous-jacent.</p>
 
-    <p>La possibilité de créer des connexions SSL et TLS avec un serveur
-    LDAP est définie par les directives <code class="directive"><a href="#ldaptrustedglobalcert">
-    LDAPTrustedGlobalCert</a></code>, <code class="directive"><a href="#ldaptrustedclientcert">
-    LDAPTrustedClientCert</a></code> et <code class="directive"><a href="#ldaptrustedmode">
-    LDAPTrustedMode</a></code>. Ces directives permettent de spécifier
-    l'autorité de certification (CA), les certificats clients éventuels,
-    ainsi que le type de chiffrement à utiliser pour la connexion (none,
-    SSL ou TLS/STARTTLS).</p>
+    <p>La directive <code class="directive">LDAPReferrals</code> accepte les
+    valeurs suivantes :</p>
 
-    <pre class="prettyprint lang-config"># Etablissement d'une connexion SSL LDAP sur le port 636.
-# Nécessite le chargement de mod_ldap et mod_authnz_ldap.
-# Remplacez "votre-domaine.example.com" par le nom de votre
-# domaine.
+    <dl>
+     <dt>"on"</dt>
+     <dd> <p>Avec la valeur "on", la prise en compte des redirections
+     LDAP par le SDK sous-jacent est activée, la directive
+     <code class="directive">LDAPReferralHopLimit</code> permet de surcharger la
+     "hop limit" du SDK, et un "LDAP rebind callback" est enregistré.</p></dd>
+     <dt>"off"</dt>
+     <dd> <p>Avec la valeur "off", la prise en compte des redirections
+     LDAP par le SDK sous-jacent est complètement désactivée.</p></dd>
+     <dt>"default"</dt>
+     <dd> <p>Avec la valeur "default", la prise en compte des redirections
+     LDAP par le SDK sous-jacent n'est pas modifiée, la directive
+     <code class="directive">LDAPReferralHopLimit</code> ne permet pas de surcharger la
+     "hop limit" du SDK, et aucun "LDAP rebind callback" n'est enregistré.</p></dd>
+    </dl>
+    
+    <p>La directive <code class="directive">LDAPReferralHopLimit</code> travaille en
+    conjonction avec cette directive pour limiter le nombre de
+    redirections à suivre pour achever le traitement de la requête LDAP.
+    Lorsque le processus de redirection est activé par la valeur "On",
+    les données d'authentification du client sont transmises via un
+    "rebind callback" à tout serveur LDAP qui en fait la demande.</p>
 
-LDAPTrustedGlobalCert CA_DER /certs/certfile.der
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapretries" id="ldapretries">Directive</a> <a name="LDAPRetries" id="LDAPRetries">LDAPRetries</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nombre maximum de tentatives de connexions au
+serveur LDAP.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPRetries <var>nombre d'essais</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPRetries 3</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Suite à des échecs de connexion au serveur LDAP, le serveur
+    tentera de se connecter autant de fois qu'indiqué par la directive
+    <code class="directive">LDAPRetries</code>. Si cette directive est définie à
+    0, le serveur ne tentera pas d'autre connexion après un échec.</p>
+    <p>Il est possible d'effectuer une autre tentative de connexion en
+    cas d'erreurs LDAP du type délai dépassé ou connexion refusée. </p>
 
-&lt;Location /ldap-status&gt;
-    SetHandler ldap-status
-    
-    Require host yourdomain.example.com
-    
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
-    Require valid-user
-&lt;/Location&gt;</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapretrydelay" id="ldapretrydelay">Directive</a> <a name="LDAPRetryDelay" id="LDAPRetryDelay">LDAPRetryDelay</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le temps d'attente avant un autre essai de connexion au
+serveur LDAP.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPRetryDelay <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPRetryDelay 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Si la directive <code class="directive">LDAPRetryDelay</code> est définie
+    à une valeur différente de 0, le serveur attendra pendant la durée
+    spécifiée pour envoyer à nouveau sa requête LDAP. Une valeur de 0
+    implique une absence de délai pour les essais successifs.</p>
 
+    <p>Il est possible d'effectuer une autre tentative de connexion en
+    cas d'erreurs LDAP du type délai dépassé ou connexion refusée. </p>
 
-    <pre class="prettyprint lang-config"># Etablissement d'une connexion TLS LDAP sur le port 389.
-# Nécessite le chargement de mod_ldap et mod_authnz_ldap.
-# Remplacez "votre-domaine.example.com" par le nom de votre
-# domaine.
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapsharedcachefile" id="ldapsharedcachefile">Directive</a> <a name="LDAPSharedCacheFile" id="LDAPSharedCacheFile">LDAPSharedCacheFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le fichier du cache en mémoire
+partagée</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPSharedCacheFile <var>chemin/fichier</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le chemin du
+    fichier du cache en mémoire partagée. Si elle n'est pas définie, la
+    mémoire partagée anonyme sera utilisée si la plate-forme la
+    supporte.</p>
 
-LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-&lt;Location /ldap-status&gt;
-    SetHandler ldap-status
-    
-    Require host yourdomain.example.com
-    
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one TLS
-    Require valid-user
-&lt;/Location&gt;</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapsharedcachesize" id="ldapsharedcachesize">Directive</a> <a name="LDAPSharedCacheSize" id="LDAPSharedCacheSize">LDAPSharedCacheSize</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille en octets du cache en mémoire partagée</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPSharedCacheSize <var>octets</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPSharedCacheSize 500000</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le nombre d'octets à allouer
+    pour le cache en mémoire partagée. La valeur par
+    défaut est 500kb.
+    Si elle est définie à 0, le cache en mémoire partagée ne sera pas
+    utilisé et chaque processus HTTPD va créer son propre cache.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldaptimeout" id="ldaptimeout">Directive</a> <a name="LDAPTimeout" id="LDAPTimeout">LDAPTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le délai d'attente pour les opérations de
+recherche et d'identification LDAP en secondes</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTimeout <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPTimeout 60</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.5 du serveur HTTP
+Apache</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le délai d'attente pour les
+    opérations de recherche et d'identification, ainsi que l'option
+    LDAP_OPT_TIMEOUT dans la bibliothèque LDAP client sous-jacente,
+    lorsqu'elle est disponible.</p>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="settingcerts" id="settingcerts">Certificats SSL/TLS</a></h2>
+    <p>Lorsque le délai est atteint, httpd va refaire un essai dans le
+    cas où une connexion existante a été silencieusement fermée par un
+    pare-feu. Les performances seront cependant bien meilleures si le
+    pare-feu est configuré pour envoyer des paquets TCP RST au lieu de
+    rejeter silencieusement les paquets.</p>
 
-    <p>Les différents SDKs LDAP disposent de nombreuses méthodes pour
-    définir et gérer les certificats des clients et des autorités de
-    certification (CA).</p>
+    <div class="note">
+    <p>Les délais pour les opérations de comparaison LDAP nécessitent un
+    SDK avec LDAP_OPT_TIMEOUT, comme OpenLDAP &gt;= 2.4.4.</p>
+    </div>
 
-    <p>Si vous avez l'intention d'utiliser SSL ou TLS, lisez cette
-    section ATTENTIVEMENT de façon à bien comprendre les différences de
-    configurations entre les différents SDKs LDAP supportés.</p>
 
-    <h3><a name="settingcerts-netscape" id="settingcerts-netscape">SDK Netscape/Mozilla/iPlanet</a></h3>
-        <p>Les certificat de CA sont enregistrés dans un fichier nommé
-       cert7.db. Le SDK ne dialoguera avec aucun serveur LDAP dont le
-       certificat n'a pas été signé par une CA spécifiée dans ce
-       fichier. Si des certificats clients sont requis, un fichier
-       key3.db ainsi qu'un mot de passe optionnels peuvent être
-       spécifiés. On peut aussi spécifier le fichier secmod si
-       nécessaire. Ces fichiers sont du même format que celui utilisé
-       par les navigateurs web Netscape Communicator ou Mozilla. Le
-       moyen le plus simple pour obtenir ces fichiers consiste à les
-       extraire de l'installation de votre navigateur.</p>
-
-        <p>Les certificats clients sont spécifiés pour chaque connexion
-       en utilisant la directive LDAPTrustedClientCert et en se
-       référant au certificat "nickname". On peut éventuellement
-       spécifier un mot de passe pour déverrouiller la clé privée du
-       certificat.</p>
-
-        <p>Le SDK supporte seulement SSL. Toute tentative d'utilisation
-       de STARTTLS engendrera une erreur lors des tentatives de
-       contacter le serveur LDAP pendant l'exécution.</p>
-
-        <pre class="prettyprint lang-config"># Spécifie un fichier de certificats de CA Netscape
-LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db
-# Spécifie un fichier key3db optionnel pour le support des
-# certificats clients
-LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db
-# Spécifie le fichier secmod si nécessaire
-LDAPTrustedGlobalCert CA_SECMOD /certs/secmod
-&lt;Location /ldap-status&gt;
-    SetHandler ldap-status
-
-    Require host yourdomain.example.com
-
-    Satisfy any
-    AuthType Basic
-    AuthName "LDAP Protected"
-    AuthBasicProvider ldap
-    LDAPTrustedClientCert CERT_NICKNAME &lt;nickname&gt; [password]
-    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
-    Require valid-user
-&lt;/Location&gt;</pre>
-
-
-    
-
-    <h3><a name="settingcerts-novell" id="settingcerts-novell">SDK Novell</a></h3>
-
-        <p>Un ou plusieurs certificats de CA doivent être spécifiés pour
-       que le SDK Novell fonctionne correctement. Ces certificats
-       peuvent être spécifiés sous forme de fichiers au format binaire
-       DER ou codés en Base64 (PEM).</p>
-
-        <p>Note: Les certificats clients sont spécifiés globalement
-       plutôt qu'à chaque connexion, et doivent être spécifiés à l'aide
-       de la directive LDAPTrustedGlobalCert comme ci-dessous. Définir
-       des certificats clients via la directive LDAPTrustedClientCert
-       engendrera une erreur qui sera journalisée, au moment de la
-       tentative de connexion avec le serveur LDAP.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldaptrustedclientcert" id="ldaptrustedclientcert">Directive</a> <a name="LDAPTrustedClientCert" id="LDAPTrustedClientCert">LDAPTrustedClientCert</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom de fichier contenant un certificat client ou
+un alias renvoyant vers un certificat client spécifique à une connexion.
+Tous les SDK LDAP ne supportent pas les certificats clients par
+connexion.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTrustedClientCert <var>type</var>
+<var>chemin/nom-fichier/alias</var> <var>[mot de passe]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le chemin et le nom de
+    fichier ou l'alias d'un certificat client par connexion utilisé lors
+    de l'établissement d'une connexion SSL ou TLS avec un serveur LDAP.
+    Les sections directory ou location peuvent posséder leurs propres
+    configurations de certificats clients. Certains SDK LDAP (en
+    particulier Novell) ne supportent pas les certificats clients par
+    connexion, et renvoient une erreur lors de la connexion au serveur
+    LDAP si vous tenter d'utiliser cette directive (Utilisez à la place
+    la directive LDAPTrustedGlobalCert pour les certificats clients sous
+    Novell - Voir plus haut le guide des certificats SSL/TLS pour plus
+    de détails). Le paramètre type spécifie le type du certificat en
+    cours de définition, en fonction du SDK LDAP utilisé. Les types
+    supportés sont :</p>
+    <ul>
+      <li>CA_DER - certificat de CA codé en binaire DER</li>
+      <li>CA_BASE64 - certificat de CA codé en PEM</li>
+      <li>CERT_DER - certificat client codé en binaire DER</li>
+      <li>CERT_BASE64 - certificat client codé en PEM</li>
+      <li>CERT_NICKNAME - certificat client "nickname" (SDK Netscape)</li>
+      <li>KEY_DER - clé privée codée en binaire DER</li>
+      <li>KEY_BASE64 - clé privée codée en PEM</li>
+    </ul>
 
-        <p>Le SDK supporte SSL et STARTTLS, le choix étant défini par le
-       paramètre de la directive LDAPTrustedMode. Si une URL de type
-       ldaps:// est spécifiée, le mode SSL est forcé, et l'emporte sur
-       cette directive.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldaptrustedglobalcert" id="ldaptrustedglobalcert">Directive</a> <a name="LDAPTrustedGlobalCert" id="LDAPTrustedGlobalCert">LDAPTrustedGlobalCert</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom de fichier ou la base de données contenant
+les Autorités de Certification de confiance globales ou les certificats
+clients globaux</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTrustedGlobalCert <var>type</var>
+<var>chemin/nom-fichier</var> <var>[mot de passe]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le chemin et le nom du
+    fichier contenant les certificats des CA de confiance et/ou les
+    certificats clients du système global que <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>
+    utilisera pour établir une connexion SSL ou TLS avec un serveur
+    LDAP. Notez que toute information relative aux certificats spécifiée
+    en utilisant cette directive s'applique globalement à l'ensemble de
+    l'installation du serveur. Certains SDK LDAP (en particulier Novell)
+    nécessitent la définition globale de tous les certificats clients en
+    utilisant cette directive. La plupart des autres SDK nécessitent la
+    définition des certificats clients dans une section Directory ou
+    Location en utilisant la directive LDAPTrustedClientCert. Si vous ne
+    définissez pas ces directives correctement, une erreur sera générée
+    lors des tentatives de contact avec un serveur LDAP, ou la connexion
+    échouera silencieusement (Voir plus haut le guide des certificats
+    SSL/TLS pour plus de détails). Le paramètre type spécifie le type de
+    certificat en cours de définition, en fonction du SDK LDAP utilisé.
+    Les types supportés sont :</p>
+    <ul>
+      <li>CA_DER - certificat de CA codé en binaire DER</li>
+      <li>CA_BASE64 - certificat de CA codé en PEM</li>
+      <li>CA_CERT7_DB - fichier de base de données des certificats de CA
+      de Netscape cert7.db</li>
+      <li>CA_SECMOD - fichier de base de données secmod de Netscape</li>
+      <li>CERT_DER - certificat client codé en binaire DER</li>
+      <li>CERT_BASE64 - certificat client codé en PEM</li>
+      <li>CERT_KEY3_DB - fichier de base de données des certificats
+      clients de Netscape key3.db</li>
+      <li>CERT_NICKNAME - certificat client "nickname" (SDK Netscape)</li>
+      <li>CERT_PFX - certificat client codé en PKCS#12 (SDK Novell)</li>
+      <li>KEY_DER - clé privée codée en binaire DER</li>
+      <li>KEY_BASE64 - clé privée codée en PEM</li>
+      <li>KEY_PFX - clé privée codée en PKCS#12 (SDK Novell)</li>
+    </ul>
 
-        <pre class="prettyprint lang-config"># Spécifie deux fichiers contenant des certificats de CA
-LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
-LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
-# Spécifie un fichier contenant des certificats clients
-# ainsi qu'une clé
-LDAPTrustedGlobalCert CERT_BASE64 /certs/cert1.pem
-LDAPTrustedGlobalCert KEY_BASE64 /certs/key1.pem [password]
-# N'utilisez pas cette directive, sous peine de provoquer
-# une erreur
-#LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldaptrustedmode" id="ldaptrustedmode">Directive</a> <a name="LDAPTrustedMode" id="LDAPTrustedMode">LDAPTrustedMode</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le mode (SSL ou TLS) à utiliser lors de la
+connexion à un serveur LDAP.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTrustedMode <var>type</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Les modes suivants sont supportés :</p>
+    <ul>
+      <li>NONE - aucun chiffrement</li>
+      <li>SSL - chiffrement ldaps:// sur le port par défaut 636</li>
+      <li>TLS - chiffrement STARTTLS sur le port par défaut 389</li>
+    </ul>
 
+    <p>Les modes ci-dessus ne sont pas supportés par tous les SDK LDAP.
+    Un message d'erreur sera généré à l'exécution si un mode n'est pas
+    supporté, et la connexion au serveur LDAP échouera.
+    </p>
 
-    
+    <p>Si une URL de type ldaps:// est spécifiée, le mode est forcé à
+    SSL et la définition de LDAPTrustedMode est ignorée.</p>
 
-    <h3><a name="settingcerts-openldap" id="settingcerts-openldap">SDK OpenLDAP</a></h3>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ldapverifyservercert" id="ldapverifyservercert">Directive</a> <a name="LDAPVerifyServerCert" id="LDAPVerifyServerCert">LDAPVerifyServerCert</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force la vérification du certificat du
+serveur</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPVerifyServerCert <var>On|Off</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPVerifyServerCert On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Cette directive permet de spécifier s'il faut forcer la
+    vérification d'un certificat de serveur lors de l'établissement
+    d'une connexion SSL avec un serveur LDAP.</p>
 
-        <p>Un ou plusieurs certificats de CA doivent être spécifiés pour
-       que le SDK OpenLDAP fonctionne correctement. Ces certificats
-       peuvent être spécifiés sous forme de fichiers au format binaire
-       DER ou codés en Base64 (PEM).</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="exampleconfig" id="exampleconfig">Exemple de configuration</a></h2>
+    <p>Ce qui suit est un exemple de configuration qui utilise
+    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> pour améliorer les performances de
+    l'authentification HTTP de base fournie par
+    <code class="module"><a href="../mod/mod_authnz_ldap.html">mod_authnz_ldap</a></code>.</p>
 
-        <p>Les certificats clients sont spécifiés pour chaque connexion
-       à l'aide de la directive LDAPTrustedClientCert.</p>
+    <pre class="prettyprint lang-config"># Active la conservation des connexions LDAP et le cache partagé en
+# mémoire. Active le gestionnaire de statut du cache LDAP.
+# Nécessite le chargement de mod_ldap et de mod_authnz_ldap.
+# Remplacez "votre-domaine.example.com" par le nom de votre
+# domaine.
 
-        <p>La documentation du SDK prétend que SSL et STARTTLS sont
-       supportés ; cependant, STARTTLS semble ne pas fonctionner avec
-       toutes les versions du SDK. Le mode SSL/TLS peut être défini en
-       utilisant le paramètre de la directive LDAPTrustedMode. Si une
-       URL de type
-       ldaps:// est spécifiée, le mode SSL est forcé. La documentation
-       OpenLDAP indique que le support SSL (ldaps://) tend à être
-       remplacé par TLS, bien que le mode SSL fonctionne toujours.</p>
+LDAPSharedCacheSize 500000
+LDAPCacheEntries 1024
+LDAPCacheTTL 600
+LDAPOpCacheEntries 1024
+LDAPOpCacheTTL 600
 
-        <pre class="prettyprint lang-config"># Spécifie deux fichiers contenant des certificats de CA
-LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
-LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
 &lt;Location /ldap-status&gt;
     SetHandler ldap-status
     
     Require host yourdomain.example.com
     
-    LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem
-    LDAPTrustedClientCert KEY_BASE64 /certs/key1.pem
-    # CA certs respecified due to per-directory client certs
-    LDAPTrustedClientCert CA_DER /certs/cacert1.der
-    LDAPTrustedClientCert CA_BASE64 /certs/cacert2.pem
     Satisfy any
     AuthType Basic
     AuthName "LDAP Protected"
     AuthBasicProvider ldap
-    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
+    AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one
     Require valid-user
 &lt;/Location&gt;</pre>
 
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="pool" id="pool">Conservation des connexions LDAP</a></h2>
 
-    
-
-    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">SDK Solaris</a></h3>
+    <p>Les connexions LDAP sont conservées de requête en requête. Ceci
+    permet de rester connecté et identifié au serveur LDAP, ce dernier
+    étant ainsi prêt pour la prochaine requête, sans avoir à se
+    déconnecter, reconnecter et réidentifier. Le gain en performances
+    est similaire à celui des connexions persistantes (keepalives)
+    HTTP.</p>
 
-        <p>SSL/TLS pour les bibliothèques LDAP propres à Solaris n'est
-       pas encore supporté. Si nécessaire, installez et utilisez plutôt
-       les bibliothèques OpenLDAP.</p>
+    <p>Sur un serveur très sollicité, il est possible que de nombreuses
+    requêtes tentent d'accéder simultanément à la même connexion au
+    serveur LDAP. Lorsqu'une connexion LDAP est utilisée, Apache en crée
+    une deuxième en parallèle à la première, ce qui permet d'éviter que
+    le système de conservation des connexions ne devienne un goulot
+    d'étranglement.</p>
 
-    
+    <p>Il n'est pas nécessaire d'activer explicitement la conservation
+    des connexions dans la configuration d'Apache. Tout module utilisant
+    le module ldap pour accéder aux services LDAP partagera le jeu de
+    connexions.</p>
 
-    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">SDK Microsoft</a></h3>
+    <p>Les connexions LDAP peuvent garder la trace des données
+    d'identification du client ldap utilisées pour l'identification
+    auprès du serveur LDAP. Ces données peuvent être fournies aux
+    serveurs LDAP qui ne permettent pas les connexions anonymes au cours
+    lors des tentatives de sauts vers des serveurs alternatifs. Pour
+    contrôler cette fonctionnalité, voir les directives <code class="directive"><a href="#ldapreferrals">LDAPReferrals</a></code> et <code class="directive"><a href="#ldapreferralhoplimit">LDAPReferralHopLimit</a></code>. Cette
+    fonctionnalité est activée par défaut.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="cache" id="cache">Cache LDAP</a></h2>
 
-        <p>La configuration des certificats SSL/TLS pour les
-       bibliothèques LDAP propres à Microsoft s'effectue à l'intérieur
-       du registre système, et aucune directive de configuration n'est
-       requise.</p>
+    <p>Pour améliorer les performances, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en
+    oeuvre une stratégie de mise en cache agressive visant à minimiser
+    le nombre de fois que le serveur LDAP doit être contacté. La mise en
+    cache peut facilement doubler et même tripler le débit d'Apache
+    lorsqu'il sert des pages protégées par mod_authnz_ldap. De plus, le
+    serveur LDAP verra lui-même sa charge sensiblement diminuée.</p>
 
-        <p>SSL et TLS sont tous deux supportés en utilisant des URLs de
-       type ldaps://, ou en définissant la directive LDAPTrustedMode à
-       cet effet.</p>
+    <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> supporte deux types de mise en cache
+    LDAP : un <em>cache recherche/identification</em> durant la phase
+    de recherche/identification et deux <em>caches d'opérations</em>
+    durant la phase de comparaison. Chaque URL LDAP utilisée par le
+    serveur a son propre jeu d'instances dans ces trois caches.</p>
 
-        <p>Note: L'état du support des certificats clients n'est pas
-       encore connu pour ce SDK.</p>
+    <h3><a name="search-bind" id="search-bind">Le cache
+    recherche/identification</a></h3>
+      <p>Les processus de recherche et d'identification sont les
+      opérations LDAP les plus consommatrices en temps, en particulier
+      si l'annuaire est de grande taille. Le cache de
+      recherche/identification met en cache toutes les recherches qui
+      ont abouti à une identification positive. Les résultats négatifs
+      (c'est à dire les recherches sans succès, ou les recherches qui
+      n'ont pas abouti à une identification positive) ne sont pas mis en
+      cache. La raison de cette décision réside dans le fait que les
+      connexions avec des données d'identification invalides ne
+      représentent qu'un faible pourcentage du nombre total de
+      connexions, et ainsi, le fait de ne pas mettre en cache les
+      données d'identification invalides réduira d'autant la taille du
+      cache.</p>
 
-    
+      <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> met en cache le nom d'utilisateur, le
+      DN extrait, le mot de passe utilisé pour l'identification, ainsi
+      que l'heure de l'identification. Chaque fois qu'une nouvelle
+      connexion est initialisée avec le même nom d'utilisateur,
+      <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> compare le mot de passe de la nouvelle
+      connexion avec le mot de passe enregistré dans le cache. Si les
+      mots de passe correspondent, et si l'entrée du cache n'est pas
+      trop ancienne, <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> court-circuite la phase
+      de recherche/identification.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapcacheentries" id="ldapcacheentries">Directive</a> <a name="LDAPCacheEntries" id="LDAPCacheEntries">LDAPCacheEntries</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum d'entrées dans le cache LDAP
-primaire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPCacheEntries <var>nombre</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPCacheEntries 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier la taille maximale du cache
-    LDAP primaire. Ce cache contient les résultats de
-    recherche/identification positifs. Définissez-la à 0 pour désactiver
-    la mise en cache des résultats de recherche/identification positifs.
-    La taille par défaut est de 1024 recherches en cache.</p>
+      <p>Le cache de recherche/identification est contrôlé par les
+      directives <code class="directive"><a href="#ldapcacheentries">LDAPCacheEntries</a></code> et <code class="directive"><a href="#ldapcachettl">LDAPCacheTTL</a></code>.</p>
+    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapcachettl" id="ldapcachettl">Directive</a> <a name="LDAPCacheTTL" id="LDAPCacheTTL">LDAPCacheTTL</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée pendant laquelle les entrées du cache restent
-valides.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPCacheTTL <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPCacheTTL 600</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier la durée (en secondes)
-    pendant laquelle une entrée du cache de recherche/identification
-    reste valide. La valeur par défaut est de 600 secondes (10
-    minutes).</p>
+    <h3><a name="opcaches" id="opcaches">Les caches d'opérations</a></h3>
+      <p>Au cours des opérations de comparaison d'attributs et de noms
+      distinctifs (DN), <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> utilise deux caches
+      d'opérations pour mettre en cache les opérations de comparaison.
+      Le premier cache de comparaison sert à mettre en cache les
+      résultats de comparaisons effectuées pour vérifier l'appartenance
+      à un groupe LDAP. Le second cache de comparaison sert à mettre en
+      cache les résultats de comparaisons entre DNs.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapconnectionpoolttl" id="ldapconnectionpoolttl">Directive</a> <a name="LDAPConnectionPoolTTL" id="LDAPConnectionPoolTTL">LDAPConnectionPoolTTL</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Désactive les connexions d'arrière-plan qui sont restées
-inactives trop longtemps au sein du jeu de connexions.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPConnectionPoolTTL <var>n</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPConnectionPoolTTL -1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.12 du serveur HTTP
-Apache</td></tr>
-</table>
-    <p>Cette directive permet de spécifier la durée maximale, en
-    secondes, pendant laquelle une connexion LDAP du jeu de connexions
-    peut demeurer inactive, mais rester quand-même disponible pour une
-    utilisation éventuelle. Le jeu de connexions est nettoyé au fur et à
-    mesure des besoins, de manière non asynchrone.</p>
+      <p>Notez que, lorsque l'appartenance à un groupe est vérifiée,
+      toute comparaison de sous-groupes est mise en cache afin
+      d'accélérer les comparaisons de sous-groupes ultérieures.</p>
 
-    <p>Si cette directive est définie à 0, les connexions ne sont jamais
-    sauvegardées dans le jeu de connexions d'arrière-plan. Avec la
-    valeur par défaut -1, ou toute autre valeur négative, les connexions
-    peuvent être réutilisées sans limite de durée.</p>
+      <p>Le comportement de ces deux caches est contrôlé par les
+      directives <code class="directive"><a href="#ldapopcacheentries">LDAPOpCacheEntries</a></code> et <code class="directive"><a href="#ldapopcachettl">LDAPOpCacheTTL</a></code>.</p>
+    
 
-    <p>Dans le but d'améliorer les performances, le temps de référence
-    qu'utilise cette directive correspond au moment où la connexion LDAP
-    est enregistrée ou remise dans le jeu de connexions, et non au
-    moment du dernier échange réussi avec le serveur LDAP.</p>
+    <h3><a name="monitoring" id="monitoring">Superviser le cache</a></h3>
+      <p><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> possède un gestionnaire de contenu
+      qui permet aux administrateurs de superviser les performances du
+      cache. Le nom du gestionnaire de contenu est
+      <code>ldap-status</code>, et on peut utiliser les directives
+      suivantes pour accéder aux informations du cache de
+      <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> :</p>
 
-    <p>La version 2.4.10 a introduit de nouvelles mesures permettant
-    d'éviter une augmentation excessive du temps de référence due à des
-    correspondances positives dans le cache ou des requêtes lentes. A
-    cet effet, le temps de référence n'est pas réactualisé si aucune
-    connexion LDAP d'arrière-plan n'est requise ; d'autre part, le temps
-    de référence se base sur le moment où la requête HTTP est reçue, et
-    non sur le moment où la requête a été traitée.</p>
+      <pre class="prettyprint lang-config">&lt;Location /server/cache-info&gt;
+    SetHandler ldap-status
+&lt;/Location&gt;</pre>
 
-    <div class="note"><p>Cette durée de vie s'exprime par défaut en secondes, mais
-    il est possible d'utiliser d'autres unités en ajoutant un suffixe :
-    millisecondes (ms), minutes (min), ou heures (h).
-    </p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapconnectiontimeout" id="ldapconnectiontimeout">Directive</a> <a name="LDAPConnectionTimeout" id="LDAPConnectionTimeout">LDAPConnectionTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le délai d'attente en secondes de la socket de
-connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPConnectionTimeout <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive configure l'option LDAP_OPT_NETWORK_TIMEOUT (ou
-    LDAP_OPT_CONNECT_TIMEOUT) dans la bibliothèque client LDAP
-    sous-jacente, si elle est disponible. Cette valeur représente la
-    durée pendant laquelle la bibliothèque client LDAP va attendre que
-    le processus de connexion TCP au serveur LDAP soit achevé.</p>
+      <p>En se connectant à l'URL
+      <code>http://nom-serveur/infos-cache</code>, l'administrateur peut
+      obtenir un rapport sur le statut de chaque cache qu'utilise
+      <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>. Notez que si Apache ne supporte pas la
+      mémoire partagée, chaque instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code>
+      possèdera son propre cache, et chaque fois que l'URL sera
+      rechargée, un résultat différent pourra être affiché, en fonction
+      de l'instance de <code class="program"><a href="../programs/httpd.html">httpd</a></code> qui traitera la
+      requête.</p>
+    
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="usingssltls" id="usingssltls">Utiliser SSL/TLS</a></h2>
 
-    <p>Si la connexion n'a pas réussi avant ce délai, une erreur sera
-    renvoyée, ou la bibliothèque client LDAP tentera de se connecter à
-    un second serveur LDAP, s'il en a été défini un (via une liste de
-    noms d'hôtes séparés par des espaces dans la directive <code class="directive"><a href="../mod/mod_authnz_ldap.html#authldapurl">AuthLDAPURL</a></code>).</p>
+    <p>La possibilité de créer des connexions SSL et TLS avec un serveur
+    LDAP est définie par les directives <code class="directive"><a href="#ldaptrustedglobalcert">
+    LDAPTrustedGlobalCert</a></code>, <code class="directive"><a href="#ldaptrustedclientcert">
+    LDAPTrustedClientCert</a></code> et <code class="directive"><a href="#ldaptrustedmode">
+    LDAPTrustedMode</a></code>. Ces directives permettent de spécifier
+    l'autorité de certification (CA), les certificats clients éventuels,
+    ainsi que le type de chiffrement à utiliser pour la connexion (none,
+    SSL ou TLS/STARTTLS).</p>
 
-    <p>La valeur par défaut est 10 secondes, si la bibliothèque client
-    LDAP liée avec le serveur supporte l'option
-    LDAP_OPT_NETWORK_TIMEOUT.</p>
+    <pre class="prettyprint lang-config"># Etablissement d'une connexion SSL LDAP sur le port 636.
+# Nécessite le chargement de mod_ldap et mod_authnz_ldap.
+# Remplacez "votre-domaine.example.com" par le nom de votre
+# domaine.
 
-    <div class="note">LDAPConnectionTimeout n'est disponible que si la bibliothèque client
-    LDAP liée avec le serveur supporte l'option
-    LDAP_OPT_NETWORK_TIMEOUT (ou LDAP_OPT_CONNECT_TIMEOUT), et le
-    comportement final est entièrement dicté par la bibliothèque client
-    LDAP.
-    </div>
+LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldaplibrarydebug" id="ldaplibrarydebug">Directive</a> <a name="LDAPLibraryDebug" id="LDAPLibraryDebug">LDAPLibraryDebug</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active le débogage dans le SDK LDAP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPLibraryDebug <var>7</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>disabled</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Active les options de débogage LDAP spécifiques au SDK, qui
-    entraînent en général une journalisation d'informations verbeuses du
-    SDK LDAP dans le journal principal des erreurs d'Apache. Les
-    messages de traces en provenance du SDK LDAP fournissent des
-    informations très détaillées qui peuvent s'avérer utiles lors du
-    débogage des problèmes de connexion avec des serveurs LDAP
-    d'arrière-plan.</p>
+&lt;Location /ldap-status&gt;
+    SetHandler ldap-status
+    
+    Require host yourdomain.example.com
+    
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
+    Require valid-user
+&lt;/Location&gt;</pre>
 
-    <p>Cette option n'est configurable que lorsque le serveur HTTP
-    Apache est lié avec un SDK LDAP qui implémente
-    <code>LDAP_OPT_DEBUG</code> ou <code>LDAP_OPT_DEBUG_LEVEL</code>,
-    comme OpenLDAP (une valeur de 7 est verbeuse) ou Tivoli Directory
-    Server (une valeur de 65535 est verbeuse).</p>
 
-    <div class="warning">
-    <p>Les informations journalisées peuvent contenir des données
-    d'authentification en clair utilisées ou validées lors de
-    l'authentification LDAP ; vous devez donc prendre soin de protéger
-    et de purger le journal des erreurs lorsque cette directive est
-    utilisée.</p>
-    </div>
+    <pre class="prettyprint lang-config"># Etablissement d'une connexion TLS LDAP sur le port 389.
+# Nécessite le chargement de mod_ldap et mod_authnz_ldap.
+# Remplacez "votre-domaine.example.com" par le nom de votre
+# domaine.
 
+LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapopcacheentries" id="ldapopcacheentries">Directive</a> <a name="LDAPOpCacheEntries" id="LDAPOpCacheEntries">LDAPOpCacheEntries</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre d'entrées utilisées pour mettre en cache les
-opérations de comparaison LDAP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPOpCacheEntries <var>nombre</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPOpCacheEntries 1024</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le nombre d'entrées que
-    <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> va utiliser pour mettre en cache les
-    opérations de comparaison LDAP. La valeur par défaut est de 1024
-    entrées. Si elle est définie à 0, la mise en cache des opérations de
-    comparaison LDAP est désactivée.</p>
+&lt;Location /ldap-status&gt;
+    SetHandler ldap-status
+    
+    Require host yourdomain.example.com
+    
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    AuthLDAPURL ldap://127.0.0.1/dc=example,dc=com?uid?one TLS
+    Require valid-user
+&lt;/Location&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapopcachettl" id="ldapopcachettl">Directive</a> <a name="LDAPOpCacheTTL" id="LDAPOpCacheTTL">LDAPOpCacheTTL</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée pendant laquelle les entrées du cache d'opérations
-restent valides</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPOpCacheTTL <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPOpCacheTTL 600</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier la durée (en secondes)
-    pendant laquelle les entrées du cache d'opérations restent valides.
-    La valeur par défaut est de 600 secondes.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapreferralhoplimit" id="ldapreferralhoplimit">Directive</a> <a name="LDAPReferralHopLimit" id="LDAPReferralHopLimit">LDAPReferralHopLimit</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nombre maximum de redirections vers des serveurs
-alternatifs (referrals) avant l'abandon de la requête
-LDAP.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPReferralHopLimit <var>nombre</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Dépend du SDK, en général entre 5 et 10</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Si elle est activée par la directive <code class="directive">LDAPReferrals</code>,
-    cette directive permet de définir le nombre maximum de sauts vers
-    des serveurs alternatifs (referrals) avant l'abandon de la requête
-    LDAP.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="settingcerts" id="settingcerts">Certificats SSL/TLS</a></h2>
 
-<div class="warning">
-<p>L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.</p>
-</div>
+    <p>Les différents SDKs LDAP disposent de nombreuses méthodes pour
+    définir et gérer les certificats des clients et des autorités de
+    certification (CA).</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapreferrals" id="ldapreferrals">Directive</a> <a name="LDAPReferrals" id="LDAPReferrals">LDAPReferrals</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la redirection vers des serveurs alternatifs au
-cours des requêtes vers le serveur LDAP.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPReferrals <var>On|Off|default</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPReferrals On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le paramètre <var>default</var> est disponible depuis la
-version 2.4.7 du serveur HTTP Apache.</td></tr>
-</table>
-    <p>Certains serveurs LDAP partagent leur annuaire en plusieurs
-    domaines et utilisent le système des redirections (referrals) pour
-    aiguiller un client lorsque les limites d'un domaine doivent être
-    franchies. Ce processus est similaire à une redirection HTTP. Les
-    bibliothèques client LDAP ne respectent pas forcément ces
-    redirections par défaut. Cette directive permet de configurer
-    explicitement les redirections LDAP dans le SDK sous-jacent.</p>
+    <p>Si vous avez l'intention d'utiliser SSL ou TLS, lisez cette
+    section ATTENTIVEMENT de façon à bien comprendre les différences de
+    configurations entre les différents SDKs LDAP supportés.</p>
+
+    <h3><a name="settingcerts-netscape" id="settingcerts-netscape">SDK Netscape/Mozilla/iPlanet</a></h3>
+        <p>Les certificat de CA sont enregistrés dans un fichier nommé
+       cert7.db. Le SDK ne dialoguera avec aucun serveur LDAP dont le
+       certificat n'a pas été signé par une CA spécifiée dans ce
+       fichier. Si des certificats clients sont requis, un fichier
+       key3.db ainsi qu'un mot de passe optionnels peuvent être
+       spécifiés. On peut aussi spécifier le fichier secmod si
+       nécessaire. Ces fichiers sont du même format que celui utilisé
+       par les navigateurs web Netscape Communicator ou Mozilla. Le
+       moyen le plus simple pour obtenir ces fichiers consiste à les
+       extraire de l'installation de votre navigateur.</p>
+
+        <p>Les certificats clients sont spécifiés pour chaque connexion
+       en utilisant la directive LDAPTrustedClientCert et en se
+       référant au certificat "nickname". On peut éventuellement
+       spécifier un mot de passe pour déverrouiller la clé privée du
+       certificat.</p>
+
+        <p>Le SDK supporte seulement SSL. Toute tentative d'utilisation
+       de STARTTLS engendrera une erreur lors des tentatives de
+       contacter le serveur LDAP pendant l'exécution.</p>
+
+        <pre class="prettyprint lang-config"># Spécifie un fichier de certificats de CA Netscape
+LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db
+# Spécifie un fichier key3db optionnel pour le support des
+# certificats clients
+LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db
+# Spécifie le fichier secmod si nécessaire
+LDAPTrustedGlobalCert CA_SECMOD /certs/secmod
+&lt;Location /ldap-status&gt;
+    SetHandler ldap-status
+
+    Require host yourdomain.example.com
+
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    LDAPTrustedClientCert CERT_NICKNAME &lt;nickname&gt; [password]
+    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
+    Require valid-user
+&lt;/Location&gt;</pre>
 
-    <p>La directive <code class="directive">LDAPReferrals</code> accepte les
-    valeurs suivantes :</p>
 
-    <dl>
-     <dt>"on"</dt>
-     <dd> <p>Avec la valeur "on", la prise en compte des redirections
-     LDAP par le SDK sous-jacent est activée, la directive
-     <code class="directive">LDAPReferralHopLimit</code> permet de surcharger la
-     "hop limit" du SDK, et un "LDAP rebind callback" est enregistré.</p></dd>
-     <dt>"off"</dt>
-     <dd> <p>Avec la valeur "off", la prise en compte des redirections
-     LDAP par le SDK sous-jacent est complètement désactivée.</p></dd>
-     <dt>"default"</dt>
-     <dd> <p>Avec la valeur "default", la prise en compte des redirections
-     LDAP par le SDK sous-jacent n'est pas modifiée, la directive
-     <code class="directive">LDAPReferralHopLimit</code> ne permet pas de surcharger la
-     "hop limit" du SDK, et aucun "LDAP rebind callback" n'est enregistré.</p></dd>
-    </dl>
     
-    <p>La directive <code class="directive">LDAPReferralHopLimit</code> travaille en
-    conjonction avec cette directive pour limiter le nombre de
-    redirections à suivre pour achever le traitement de la requête LDAP.
-    Lorsque le processus de redirection est activé par la valeur "On",
-    les données d'authentification du client sont transmises via un
-    "rebind callback" à tout serveur LDAP qui en fait la demande.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapretries" id="ldapretries">Directive</a> <a name="LDAPRetries" id="LDAPRetries">LDAPRetries</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nombre maximum de tentatives de connexions au
-serveur LDAP.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPRetries <var>nombre d'essais</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPRetries 3</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Suite à des échecs de connexion au serveur LDAP, le serveur
-    tentera de se connecter autant de fois qu'indiqué par la directive
-    <code class="directive">LDAPRetries</code>. Si cette directive est définie à
-    0, le serveur ne tentera pas d'autre connexion après un échec.</p>
-    <p>Il est possible d'effectuer une autre tentative de connexion en
-    cas d'erreurs LDAP du type délai dépassé ou connexion refusée. </p>
+    <h3><a name="settingcerts-novell" id="settingcerts-novell">SDK Novell</a></h3>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapretrydelay" id="ldapretrydelay">Directive</a> <a name="LDAPRetryDelay" id="LDAPRetryDelay">LDAPRetryDelay</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le temps d'attente avant un autre essai de connexion au
-serveur LDAP.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPRetryDelay <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPRetryDelay 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Si la directive <code class="directive">LDAPRetryDelay</code> est définie
-    à une valeur différente de 0, le serveur attendra pendant la durée
-    spécifiée pour envoyer à nouveau sa requête LDAP. Une valeur de 0
-    implique une absence de délai pour les essais successifs.</p>
+        <p>Un ou plusieurs certificats de CA doivent être spécifiés pour
+       que le SDK Novell fonctionne correctement. Ces certificats
+       peuvent être spécifiés sous forme de fichiers au format binaire
+       DER ou codés en Base64 (PEM).</p>
 
-    <p>Il est possible d'effectuer une autre tentative de connexion en
-    cas d'erreurs LDAP du type délai dépassé ou connexion refusée. </p>
+        <p>Note: Les certificats clients sont spécifiés globalement
+       plutôt qu'à chaque connexion, et doivent être spécifiés à l'aide
+       de la directive LDAPTrustedGlobalCert comme ci-dessous. Définir
+       des certificats clients via la directive LDAPTrustedClientCert
+       engendrera une erreur qui sera journalisée, au moment de la
+       tentative de connexion avec le serveur LDAP.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapsharedcachefile" id="ldapsharedcachefile">Directive</a> <a name="LDAPSharedCacheFile" id="LDAPSharedCacheFile">LDAPSharedCacheFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le fichier du cache en mémoire
-partagée</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPSharedCacheFile <var>chemin/fichier</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le chemin du
-    fichier du cache en mémoire partagée. Si elle n'est pas définie, la
-    mémoire partagée anonyme sera utilisée si la plate-forme la
-    supporte.</p>
+        <p>Le SDK supporte SSL et STARTTLS, le choix étant défini par le
+       paramètre de la directive LDAPTrustedMode. Si une URL de type
+       ldaps:// est spécifiée, le mode SSL est forcé, et l'emporte sur
+       cette directive.</p>
+
+        <pre class="prettyprint lang-config"># Spécifie deux fichiers contenant des certificats de CA
+LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
+LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
+# Spécifie un fichier contenant des certificats clients
+# ainsi qu'une clé
+LDAPTrustedGlobalCert CERT_BASE64 /certs/cert1.pem
+LDAPTrustedGlobalCert KEY_BASE64 /certs/key1.pem [password]
+# N'utilisez pas cette directive, sous peine de provoquer
+# une erreur
+#LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapsharedcachesize" id="ldapsharedcachesize">Directive</a> <a name="LDAPSharedCacheSize" id="LDAPSharedCacheSize">LDAPSharedCacheSize</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille en octets du cache en mémoire partagée</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPSharedCacheSize <var>octets</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPSharedCacheSize 500000</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le nombre d'octets à allouer
-    pour le cache en mémoire partagée. La valeur par
-    défaut est 500kb.
-    Si elle est définie à 0, le cache en mémoire partagée ne sera pas
-    utilisé et chaque processus HTTPD va créer son propre cache.</p>
+    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldaptimeout" id="ldaptimeout">Directive</a> <a name="LDAPTimeout" id="LDAPTimeout">LDAPTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le délai d'attente pour les opérations de
-recherche et d'identification LDAP en secondes</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTimeout <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPTimeout 60</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.3.5 du serveur HTTP
-Apache</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le délai d'attente pour les
-    opérations de recherche et d'identification, ainsi que l'option
-    LDAP_OPT_TIMEOUT dans la bibliothèque LDAP client sous-jacente,
-    lorsqu'elle est disponible.</p>
+    <h3><a name="settingcerts-openldap" id="settingcerts-openldap">SDK OpenLDAP</a></h3>
 
-    <p>Lorsque le délai est atteint, httpd va refaire un essai dans le
-    cas où une connexion existante a été silencieusement fermée par un
-    pare-feu. Les performances seront cependant bien meilleures si le
-    pare-feu est configuré pour envoyer des paquets TCP RST au lieu de
-    rejeter silencieusement les paquets.</p>
+        <p>Un ou plusieurs certificats de CA doivent être spécifiés pour
+       que le SDK OpenLDAP fonctionne correctement. Ces certificats
+       peuvent être spécifiés sous forme de fichiers au format binaire
+       DER ou codés en Base64 (PEM).</p>
 
-    <div class="note">
-    <p>Les délais pour les opérations de comparaison LDAP nécessitent un
-    SDK avec LDAP_OPT_TIMEOUT, comme OpenLDAP &gt;= 2.4.4.</p>
-    </div>
+        <p>Les certificats clients sont spécifiés pour chaque connexion
+       à l'aide de la directive LDAPTrustedClientCert.</p>
 
+        <p>La documentation du SDK prétend que SSL et STARTTLS sont
+       supportés ; cependant, STARTTLS semble ne pas fonctionner avec
+       toutes les versions du SDK. Le mode SSL/TLS peut être défini en
+       utilisant le paramètre de la directive LDAPTrustedMode. Si une
+       URL de type
+       ldaps:// est spécifiée, le mode SSL est forcé. La documentation
+       OpenLDAP indique que le support SSL (ldaps://) tend à être
+       remplacé par TLS, bien que le mode SSL fonctionne toujours.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldaptrustedclientcert" id="ldaptrustedclientcert">Directive</a> <a name="LDAPTrustedClientCert" id="LDAPTrustedClientCert">LDAPTrustedClientCert</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom de fichier contenant un certificat client ou
-un alias renvoyant vers un certificat client spécifique à une connexion.
-Tous les SDK LDAP ne supportent pas les certificats clients par
-connexion.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTrustedClientCert <var>type</var>
-<var>chemin/nom-fichier/alias</var> <var>[mot de passe]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le chemin et le nom de
-    fichier ou l'alias d'un certificat client par connexion utilisé lors
-    de l'établissement d'une connexion SSL ou TLS avec un serveur LDAP.
-    Les sections directory ou location peuvent posséder leurs propres
-    configurations de certificats clients. Certains SDK LDAP (en
-    particulier Novell) ne supportent pas les certificats clients par
-    connexion, et renvoient une erreur lors de la connexion au serveur
-    LDAP si vous tenter d'utiliser cette directive (Utilisez à la place
-    la directive LDAPTrustedGlobalCert pour les certificats clients sous
-    Novell - Voir plus haut le guide des certificats SSL/TLS pour plus
-    de détails). Le paramètre type spécifie le type du certificat en
-    cours de définition, en fonction du SDK LDAP utilisé. Les types
-    supportés sont :</p>
-    <ul>
-      <li>CA_DER - certificat de CA codé en binaire DER</li>
-      <li>CA_BASE64 - certificat de CA codé en PEM</li>
-      <li>CERT_DER - certificat client codé en binaire DER</li>
-      <li>CERT_BASE64 - certificat client codé en PEM</li>
-      <li>CERT_NICKNAME - certificat client "nickname" (SDK Netscape)</li>
-      <li>KEY_DER - clé privée codée en binaire DER</li>
-      <li>KEY_BASE64 - clé privée codée en PEM</li>
-    </ul>
+        <pre class="prettyprint lang-config"># Spécifie deux fichiers contenant des certificats de CA
+LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
+LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
+&lt;Location /ldap-status&gt;
+    SetHandler ldap-status
+    
+    Require host yourdomain.example.com
+    
+    LDAPTrustedClientCert CERT_BASE64 /certs/cert1.pem
+    LDAPTrustedClientCert KEY_BASE64 /certs/key1.pem
+    # CA certs respecified due to per-directory client certs
+    LDAPTrustedClientCert CA_DER /certs/cacert1.der
+    LDAPTrustedClientCert CA_BASE64 /certs/cacert2.pem
+    Satisfy any
+    AuthType Basic
+    AuthName "LDAP Protected"
+    AuthBasicProvider ldap
+    AuthLDAPURL ldaps://127.0.0.1/dc=example,dc=com?uid?one
+    Require valid-user
+&lt;/Location&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldaptrustedglobalcert" id="ldaptrustedglobalcert">Directive</a> <a name="LDAPTrustedGlobalCert" id="LDAPTrustedGlobalCert">LDAPTrustedGlobalCert</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom de fichier ou la base de données contenant
-les Autorités de Certification de confiance globales ou les certificats
-clients globaux</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTrustedGlobalCert <var>type</var>
-<var>chemin/nom-fichier</var> <var>[mot de passe]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le chemin et le nom du
-    fichier contenant les certificats des CA de confiance et/ou les
-    certificats clients du système global que <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code>
-    utilisera pour établir une connexion SSL ou TLS avec un serveur
-    LDAP. Notez que toute information relative aux certificats spécifiée
-    en utilisant cette directive s'applique globalement à l'ensemble de
-    l'installation du serveur. Certains SDK LDAP (en particulier Novell)
-    nécessitent la définition globale de tous les certificats clients en
-    utilisant cette directive. La plupart des autres SDK nécessitent la
-    définition des certificats clients dans une section Directory ou
-    Location en utilisant la directive LDAPTrustedClientCert. Si vous ne
-    définissez pas ces directives correctement, une erreur sera générée
-    lors des tentatives de contact avec un serveur LDAP, ou la connexion
-    échouera silencieusement (Voir plus haut le guide des certificats
-    SSL/TLS pour plus de détails). Le paramètre type spécifie le type de
-    certificat en cours de définition, en fonction du SDK LDAP utilisé.
-    Les types supportés sont :</p>
-    <ul>
-      <li>CA_DER - certificat de CA codé en binaire DER</li>
-      <li>CA_BASE64 - certificat de CA codé en PEM</li>
-      <li>CA_CERT7_DB - fichier de base de données des certificats de CA
-      de Netscape cert7.db</li>
-      <li>CA_SECMOD - fichier de base de données secmod de Netscape</li>
-      <li>CERT_DER - certificat client codé en binaire DER</li>
-      <li>CERT_BASE64 - certificat client codé en PEM</li>
-      <li>CERT_KEY3_DB - fichier de base de données des certificats
-      clients de Netscape key3.db</li>
-      <li>CERT_NICKNAME - certificat client "nickname" (SDK Netscape)</li>
-      <li>CERT_PFX - certificat client codé en PKCS#12 (SDK Novell)</li>
-      <li>KEY_DER - clé privée codée en binaire DER</li>
-      <li>KEY_BASE64 - clé privée codée en PEM</li>
-      <li>KEY_PFX - clé privée codée en PKCS#12 (SDK Novell)</li>
-    </ul>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldaptrustedmode" id="ldaptrustedmode">Directive</a> <a name="LDAPTrustedMode" id="LDAPTrustedMode">LDAPTrustedMode</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le mode (SSL ou TLS) à utiliser lors de la
-connexion à un serveur LDAP.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPTrustedMode <var>type</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Les modes suivants sont supportés :</p>
-    <ul>
-      <li>NONE - aucun chiffrement</li>
-      <li>SSL - chiffrement ldaps:// sur le port par défaut 636</li>
-      <li>TLS - chiffrement STARTTLS sur le port par défaut 389</li>
-    </ul>
+    
 
-    <p>Les modes ci-dessus ne sont pas supportés par tous les SDK LDAP.
-    Un message d'erreur sera généré à l'exécution si un mode n'est pas
-    supporté, et la connexion au serveur LDAP échouera.
-    </p>
+    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">SDK Solaris</a></h3>
 
-    <p>Si une URL de type ldaps:// est spécifiée, le mode est forcé à
-    SSL et la définition de LDAPTrustedMode est ignorée.</p>
+        <p>SSL/TLS pour les bibliothèques LDAP propres à Solaris n'est
+       pas encore supporté. Si nécessaire, installez et utilisez plutôt
+       les bibliothèques OpenLDAP.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ldapverifyservercert" id="ldapverifyservercert">Directive</a> <a name="LDAPVerifyServerCert" id="LDAPVerifyServerCert">LDAPVerifyServerCert</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force la vérification du certificat du
-serveur</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LDAPVerifyServerCert <var>On|Off</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LDAPVerifyServerCert On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Cette directive permet de spécifier s'il faut forcer la
-    vérification d'un certificat de serveur lors de l'établissement
-    d'une connexion SSL avec un serveur LDAP.</p>
+    
+
+    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">SDK Microsoft</a></h3>
+
+        <p>La configuration des certificats SSL/TLS pour les
+       bibliothèques LDAP propres à Microsoft s'effectue à l'intérieur
+       du registre système, et aucune directive de configuration n'est
+       requise.</p>
+
+        <p>SSL et TLS sont tous deux supportés en utilisant des URLs de
+       type ldaps://, ou en définissant la directive LDAPTrustedMode à
+       cet effet.</p>
+
+        <p>Note: L'état du support des certificats clients n'est pas
+       encore connu pour ce SDK.</p>
+
+    
 
 </div>
 </div>
index 53cd0cd2484c730ca83dc57e7e27aed5977bd0cf..f734a562dc3ab79032e0e17e10e783c353e457b1 100644 (file)
 <li><a href="../logs.html">Apache Log Files</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Buffer log entries in memory before writing to disk</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BufferedLogs Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>The <code class="directive">BufferedLogs</code> directive causes
+    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> to store several log entries in
+    memory and write them together to disk, rather than writing them
+    after each request.  On some systems, this may result in more
+    efficient disk access and hence higher performance.  It may be
+    set only once for the entire server; it cannot be configured
+    per virtual-host.</p>
+
+    <div class="note">This directive should be used with caution as a crash might
+    cause loss of logging data.</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets filename and format of log file</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CustomLog  <var>file</var>|<var>pipe</var>
+<var>format</var>|<var>nickname</var>
+[env=[!]<var>environment-variable</var>|
+expr=<var>expression</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>The <code class="directive">CustomLog</code> directive is used to
+    log requests to the server. A log format is specified, and the
+    logging can optionally be made conditional on request
+    characteristics using environment variables.</p>
+
+    <p>The first argument, which specifies the location to which
+    the logs will be written, can take one of the following two
+    types of values:</p>
+
+    <dl>
+      <dt><var>file</var></dt>
+      <dd>A filename, relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
+
+      <dt><var>pipe</var></dt>
+      <dd>The pipe character "<code>|</code>", followed by the path
+      to a program to receive the log information on its standard
+      input. See the notes on <a href="../logs.html#piped">piped logs</a>
+      for more information.
+
+      <div class="warning"><h3>Security:</h3>
+      <p>If a program is used, then it will be run as the user who
+      started <code class="program"><a href="../programs/httpd.html">httpd</a></code>. This will be root if the server was
+      started by root; be sure that the program is secure.</p>
+      </div>
+      <div class="warning"><h3>Note</h3>
+        <p>When entering a file path on non-Unix platforms, care should be taken
+        to make sure that only forward slashed are used even though the platform
+        may allow the use of back slashes. In general it is a good idea to always
+        use forward slashes throughout the configuration files.</p>
+      </div></dd>
+    </dl>
+
+    <p>The second argument specifies what will be written to the
+    log file. It can specify either a <var>nickname</var> defined by
+    a previous <code class="directive"><a href="#logformat">LogFormat</a></code>
+    directive, or it can be an explicit <var>format</var> string as
+    described in the <a href="#formats">log formats</a> section.</p>
+
+    <p>For example, the following two sets of directives have
+    exactly the same effect:</p>
+
+    <pre class="prettyprint lang-config"># CustomLog with format nickname
+LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
+CustomLog "logs/access_log" common
+
+# CustomLog with explicit format string
+CustomLog "logs/access_log" "%h %l %u %t \"%r\" %&gt;s %b"</pre>
+
+
+    <p>The third argument is optional and controls whether or
+    not to log a particular request. The condition can be the
+    presence or absence (in the case of a '<code>env=!<var>name</var></code>'
+    clause) of a particular variable in the server
+    <a href="../env.html">environment</a>. Alternatively, the condition
+    can be expressed as arbitrary boolean <a href="../expr.html">expression</a>. If the condition is not satisfied, the request
+    will not be logged. References to HTTP headers  in the expression
+    will not cause the header names to be added to the Vary header.</p>
+
+    <p>Environment variables can be set on a per-request
+    basis using the <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>
+    and/or <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modules. For
+    example, if you want to record requests for all GIF
+    images on your server in a separate logfile but not in your main
+    log, you can use:</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
+CustomLog "gif-requests.log" common env=gif-image
+CustomLog "nongif-requests.log" common env=!gif-image</pre>
+
+
+    <p>Or, to reproduce the behavior of the old RefererIgnore
+    directive, you might use the following:</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
+CustomLog "referer.log" referer env=!localreferer</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Describes a format for use in a log file</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogFormat <var>format</var>|<var>nickname</var>
+[<var>nickname</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>This directive specifies the format of the access log
+    file.</p>
+
+    <p>The <code class="directive">LogFormat</code> directive can take one of two
+    forms. In the first form, where only one argument is specified,
+    this directive sets the log format which will be used by logs
+    specified in subsequent <code class="directive">TransferLog</code>
+    directives. The single argument can specify an explicit
+    <var>format</var> as discussed in the <a href="#formats">custom log
+    formats</a> section above. Alternatively, it can use a
+    <var>nickname</var> to refer to a log format defined in a
+    previous <code class="directive">LogFormat</code> directive as described
+    below.</p>
+
+    <p>The second form of the <code class="directive">LogFormat</code>
+    directive associates an explicit <var>format</var> with a
+    <var>nickname</var>. This <var>nickname</var> can then be used in
+    subsequent <code class="directive">LogFormat</code> or
+    <code class="directive"><a href="#customlog">CustomLog</a></code> directives
+    rather than repeating the entire format string. A
+    <code class="directive">LogFormat</code> directive that defines a nickname
+    <strong>does nothing else</strong> -- that is, it <em>only</em>
+    defines the nickname, it doesn't actually apply the format and make
+    it the default. Therefore, it will not affect subsequent
+    <code class="directive"><a href="#transferlog">TransferLog</a></code> directives.
+    In addition, <code class="directive">LogFormat</code> cannot use one nickname
+    to define another nickname. Note that the nickname should not contain
+    percent signs (<code>%</code>).</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common</pre>
+</div>
+    
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify location of a log file</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TransferLog <var>file</var>|<var>pipe</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>This directive has exactly the same arguments and effect as
+    the <code class="directive"><a href="#customlog">CustomLog</a></code>
+    directive, with the exception that it does not allow the log format
+    to be specified explicitly or for conditional logging of requests.
+    Instead, the log format is determined by the most recently specified
+    <code class="directive"><a href="#logformat">LogFormat</a></code> directive
+    which does not define a nickname. Common Log Format is used if no
+    other format has been specified.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
+TransferLog logs/access_log</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">Custom Log Formats</a></h2>
 
     document for details on why your security could be compromised
     if the directory where logfiles are stored is writable by
     anyone other than the user that starts the server.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Buffer log entries in memory before writing to disk</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BufferedLogs Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>The <code class="directive">BufferedLogs</code> directive causes
-    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> to store several log entries in
-    memory and write them together to disk, rather than writing them
-    after each request.  On some systems, this may result in more
-    efficient disk access and hence higher performance.  It may be
-    set only once for the entire server; it cannot be configured
-    per virtual-host.</p>
-
-    <div class="note">This directive should be used with caution as a crash might
-    cause loss of logging data.</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets filename and format of log file</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CustomLog  <var>file</var>|<var>pipe</var>
-<var>format</var>|<var>nickname</var>
-[env=[!]<var>environment-variable</var>|
-expr=<var>expression</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>The <code class="directive">CustomLog</code> directive is used to
-    log requests to the server. A log format is specified, and the
-    logging can optionally be made conditional on request
-    characteristics using environment variables.</p>
-
-    <p>The first argument, which specifies the location to which
-    the logs will be written, can take one of the following two
-    types of values:</p>
-
-    <dl>
-      <dt><var>file</var></dt>
-      <dd>A filename, relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
-
-      <dt><var>pipe</var></dt>
-      <dd>The pipe character "<code>|</code>", followed by the path
-      to a program to receive the log information on its standard
-      input. See the notes on <a href="../logs.html#piped">piped logs</a>
-      for more information.
-
-      <div class="warning"><h3>Security:</h3>
-      <p>If a program is used, then it will be run as the user who
-      started <code class="program"><a href="../programs/httpd.html">httpd</a></code>. This will be root if the server was
-      started by root; be sure that the program is secure.</p>
-      </div>
-      <div class="warning"><h3>Note</h3>
-        <p>When entering a file path on non-Unix platforms, care should be taken
-        to make sure that only forward slashed are used even though the platform
-        may allow the use of back slashes. In general it is a good idea to always
-        use forward slashes throughout the configuration files.</p>
-      </div></dd>
-    </dl>
-
-    <p>The second argument specifies what will be written to the
-    log file. It can specify either a <var>nickname</var> defined by
-    a previous <code class="directive"><a href="#logformat">LogFormat</a></code>
-    directive, or it can be an explicit <var>format</var> string as
-    described in the <a href="#formats">log formats</a> section.</p>
-
-    <p>For example, the following two sets of directives have
-    exactly the same effect:</p>
-
-    <pre class="prettyprint lang-config"># CustomLog with format nickname
-LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
-CustomLog "logs/access_log" common
-
-# CustomLog with explicit format string
-CustomLog "logs/access_log" "%h %l %u %t \"%r\" %&gt;s %b"</pre>
-
-
-    <p>The third argument is optional and controls whether or
-    not to log a particular request. The condition can be the
-    presence or absence (in the case of a '<code>env=!<var>name</var></code>'
-    clause) of a particular variable in the server
-    <a href="../env.html">environment</a>. Alternatively, the condition
-    can be expressed as arbitrary boolean <a href="../expr.html">expression</a>. If the condition is not satisfied, the request
-    will not be logged. References to HTTP headers  in the expression
-    will not cause the header names to be added to the Vary header.</p>
-
-    <p>Environment variables can be set on a per-request
-    basis using the <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>
-    and/or <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modules. For
-    example, if you want to record requests for all GIF
-    images on your server in a separate logfile but not in your main
-    log, you can use:</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
-CustomLog "gif-requests.log" common env=gif-image
-CustomLog "nongif-requests.log" common env=!gif-image</pre>
-
-
-    <p>Or, to reproduce the behavior of the old RefererIgnore
-    directive, you might use the following:</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-CustomLog "referer.log" referer env=!localreferer</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Describes a format for use in a log file</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogFormat <var>format</var>|<var>nickname</var>
-[<var>nickname</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>This directive specifies the format of the access log
-    file.</p>
-
-    <p>The <code class="directive">LogFormat</code> directive can take one of two
-    forms. In the first form, where only one argument is specified,
-    this directive sets the log format which will be used by logs
-    specified in subsequent <code class="directive">TransferLog</code>
-    directives. The single argument can specify an explicit
-    <var>format</var> as discussed in the <a href="#formats">custom log
-    formats</a> section above. Alternatively, it can use a
-    <var>nickname</var> to refer to a log format defined in a
-    previous <code class="directive">LogFormat</code> directive as described
-    below.</p>
-
-    <p>The second form of the <code class="directive">LogFormat</code>
-    directive associates an explicit <var>format</var> with a
-    <var>nickname</var>. This <var>nickname</var> can then be used in
-    subsequent <code class="directive">LogFormat</code> or
-    <code class="directive"><a href="#customlog">CustomLog</a></code> directives
-    rather than repeating the entire format string. A
-    <code class="directive">LogFormat</code> directive that defines a nickname
-    <strong>does nothing else</strong> -- that is, it <em>only</em>
-    defines the nickname, it doesn't actually apply the format and make
-    it the default. Therefore, it will not affect subsequent
-    <code class="directive"><a href="#transferlog">TransferLog</a></code> directives.
-    In addition, <code class="directive">LogFormat</code> cannot use one nickname
-    to define another nickname. Note that the nickname should not contain
-    percent signs (<code>%</code>).</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common</pre>
-</div>
-    
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify location of a log file</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>TransferLog <var>file</var>|<var>pipe</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>This directive has exactly the same arguments and effect as
-    the <code class="directive"><a href="#customlog">CustomLog</a></code>
-    directive, with the exception that it does not allow the log format
-    to be specified explicitly or for conditional logging of requests.
-    Instead, the log format is determined by the most recently specified
-    <code class="directive"><a href="#logformat">LogFormat</a></code> directive
-    which does not define a nickname. Common Log Format is used if no
-    other format has been specified.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
-TransferLog logs/access_log</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 24b655ee0264c77e7edafcf8ff56ea2b9e7b2754..6a5ed7e3d08029560115709539de3a66727261f1 100644 (file)
@@ -73,6 +73,198 @@ s
 d'Apache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="bufferedlogs" id="bufferedlogs">Directive</a> <a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les entrées du journal dans un tampon en mémoire
+avant de les écrire sur disque</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BufferedLogs Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>Lorsque la directive <code class="directive">BufferedLogs</code> est à
+    "on", <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> stocke de nombreuses entrées
+    du journal en mémoire, et les écrit d'un seul bloc sur disque,
+    plutôt que de les écrire après chaque requête. Sur certains
+    systèmes, ceci peut améliorer l'efficacité des accès disque, et par
+    conséquent les performances. La directive ne peut être définie
+    qu'une seule fois pour l'ensemble du serveur ; elle ne peut pas être
+    définie au niveau d'un serveur virtuel.</p>
+
+    <div class="note">Cette directive doit être utilisée avec
+    précautions car un crash peut provoquer la perte de données de
+    journalisation.</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="customlog" id="customlog">Directive</a> <a name="CustomLog" id="CustomLog">CustomLog</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier
+journal</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CustomLog  <var>fichier</var>|<var>pipe</var>
+<var>format</var>|<var>alias</var>
+[env=[!]<var>variable-environnement</var>|
+expr=<var>expression</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>La directive <code class="directive">CustomLog</code> permet de contrôler
+    la journalisation des requêtes destinées au serveur. Un format de
+    journal est spécifié, et la journalisation peut s'effectuer de
+    manière conditionnelle en fonction des caractéristiques de la
+    requête en utilisant des variables d'environnement.</p>
+
+    <p>Le premier argument, qui spécifie l'emplacement où les journaux
+    seront écrits, accepte deux types de valeurs :</p>
+
+    <dl>
+      <dt><var>fichier</var></dt>
+      <dd>Un nom de fichier, relatif au répertoire défini par la
+      directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
+
+      <dt><var>pipe</var></dt>
+      <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
+      programme qui recevra les informations de la journalisation sur
+      son entrée standard. Voir les notes à propos de la <a href="../logs.html#piped">journalisation redirigée</a> pour plus
+      d'informations.
+
+      <div class="warning"><h3>Sécurité :</h3>
+      <p>Si les journaux sont redirigés vers un programme, ce dernier
+      s'exécutera sous l'utilisateur qui a démarré
+      <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
+      a été démarré par root ; vérifiez que le programme est
+      sécurisé.</p>
+      </div>
+      <div class="warning"><h3>Note</h3>
+        <p>Lors de la spécification d'un chemin de fichier sur les
+       plate-formes non-Unix, il faut prendre soin de ne pas oublier
+       que seuls les slashes directs doivent être utilisés, même si la
+       plate-forme autorise l'emploi d'anti-slashes. D'une manière
+       générale, c'est une bonne idée que de n'utiliser que des slashes
+       directs dans les fichiers de configuration.</p>
+      </div></dd>
+    </dl>
+
+    <p>Le second argument permet de définir ce qui va être écrit dans le
+    fichier journal. Il peut contenir soit un <var>alias</var> prédéfini
+    par une directive <code class="directive"><a href="#logformat">LogFormat</a></code>, soit une chaîne de
+    <var>format</var> explicite comme décrit dans la section <a href="#formats">formats de journaux</a>.</p>
+
+    <p>Par exemple, les deux blocs de directives suivants produisent le
+    même effet :</p>
+
+    <pre class="prettyprint lang-config"># Journal personnalisé avec alias de format
+LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
+CustomLog logs/access_log common
+
+# Journal personnalisé avec chaîne de format explicite
+CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"</pre>
+
+
+    <p>Le troisième argument est optionnel et permet de contrôler si une
+    requête doit être ou non journalisée. Dans le cas d'une clause
+    '<code>env=!<var>nom</var></code>', la condition peut être la
+    présence ou l'absence d'une variable particulière dans
+    l'<a href="../env.html">environnement du serveur</a>. Dans le cas
+    d'une clause 'expr=<var>expression</var>', la condition consiste
+    en une <a href="../expr.html">expression</a> booléenne
+    quelconque. Si la condition n'est pas vérifiée, la requête ne sera
+    pas journalisée. D'éventuelles références à des en-têtes HTTP dans
+    l'expression rationnelle n'entraîneront pas l'ajout des noms
+    d'en-tête correspondants à l'en-tête Vary.</p>
+
+    <p>Les variables d'environnement peuvent être définies au niveau de
+    chaque requête en utilisant les modules
+    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> et/ou <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
+    Par exemple, si vous voulez enregistrer les requêtes pour toutes les
+    images GIF sur votre serveur dans un fichier journal séparé, et pas
+    dans votre journal principal, vous pouvez utiliser :</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
+CustomLog gif-requests.log common env=gif-image
+CustomLog nongif-requests.log common env=!gif-image</pre>
+
+
+    <p>Ou, pour reproduire le comportement de l'ancienne directive
+    RefererIgnore, vous pouvez utiliser :</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
+CustomLog referer.log referer env=!localreferer</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="logformat" id="logformat">Directive</a> <a name="LogFormat" id="LogFormat">LogFormat</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Décrit un format utilisable dans un fichier
+journal</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LogFormat <var>format</var>|<var>alias</var>
+[<var>alias</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le format du fichier journal
+    des accès.</p>
+
+    <p>La directive <code class="directive">LogFormat</code> se présente sous
+    deux formes. Sous la première forme, qui ne possède qu'un seul
+    argument, la directive définit le format qui sera utilisé dans les
+    journaux spécifiés par les directives
+    <code class="directive">TransferLog</code> ultérieures. L'argument unique
+    peut contenir un <var>format</var> explicite comme décrit dans la
+    section <a href="#formats">formats de journaux personnalisés</a>
+    ci-dessus. Il peut aussi contenir un <var>alias</var> faisant
+    référence à un format de journal prédéfini par une directive
+    <code class="directive">LogFormat</code> comme décrit plus loin.</p>
+
+    <p>Sous sa seconde forme, la directive
+    <code class="directive">LogFormat</code> associe un <var>format</var>
+    explicite à un <var>alias</var>. Cet <var>alias</var> peut
+    ensuite s'utiliser dans les directives
+    <code class="directive">LogFormat</code> ou <code class="directive"><a href="#customlog">CustomLog</a></code> ultérieures, ce qui
+    évite d'avoir à répéter l'ensemble de la chaîne de format. Une
+    directive <code class="directive">LogFormat</code> qui définit un alias
+    <strong>ne fait rien d'autre</strong> -- c'est à dire qu'<em>elle ne
+    fait que</em> définir l'alias, elle n'applique pas le format et n'en
+    fait pas le format par défaut. Par conséquent, elle n'affecte pas
+    les directives <code class="directive"><a href="#transferlog">TransferLog</a></code> ultérieures. En
+    outre, la directive <code class="directive">LogFormat</code> ne peut pas
+    utiliser un alias pour en définir un autre. Notez que l'alias ne
+    doit pas contenir de caractère pourcent (<code>%</code>).</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" serveur_virtuel_commun</pre>
+</div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="transferlog" id="transferlog">Directive</a> <a name="TransferLog" id="TransferLog">TransferLog</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'emplacement d'un fichier journal</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TransferLog <var>fichier</var>|<var>pipe</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>Cette directive possède exactement les mêmes arguments et produit
+    les mêmes effets que la directive <code class="directive"><a href="#customlog">CustomLog</a></code>, à l'exception qu'elle
+    ne permet pas de spécifier un format de journal explicite ou la
+    journalisation conditionnelle des requêtes. En l'occurrence, le
+    format de journal est déterminé par la dernière définition d'une
+    directive <code class="directive"><a href="#logformat">LogFormat</a></code>
+    qui ne définit pas d'alias. Si aucun format particulier n'a été
+    spécifié, c'est le Common Log Format qui sera utilisé.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
+TransferLog logs/access_log</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">Formats de journaux personnalisés</a></h2>
 
@@ -374,198 +566,6 @@ s
     votre sécurité pourrait être compromise, si le répertoire où sont
     stockés les fichiers journaux sont inscriptibles par tout autre
     utilisateur que celui qui démarre le serveur.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="bufferedlogs" id="bufferedlogs">Directive</a> <a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre les entrées du journal dans un tampon en mémoire
-avant de les écrire sur disque</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BufferedLogs Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>Lorsque la directive <code class="directive">BufferedLogs</code> est à
-    "on", <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> stocke de nombreuses entrées
-    du journal en mémoire, et les écrit d'un seul bloc sur disque,
-    plutôt que de les écrire après chaque requête. Sur certains
-    systèmes, ceci peut améliorer l'efficacité des accès disque, et par
-    conséquent les performances. La directive ne peut être définie
-    qu'une seule fois pour l'ensemble du serveur ; elle ne peut pas être
-    définie au niveau d'un serveur virtuel.</p>
-
-    <div class="note">Cette directive doit être utilisée avec
-    précautions car un crash peut provoquer la perte de données de
-    journalisation.</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="customlog" id="customlog">Directive</a> <a name="CustomLog" id="CustomLog">CustomLog</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom et le format du fichier
-journal</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CustomLog  <var>fichier</var>|<var>pipe</var>
-<var>format</var>|<var>alias</var>
-[env=[!]<var>variable-environnement</var>|
-expr=<var>expression</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>La directive <code class="directive">CustomLog</code> permet de contrôler
-    la journalisation des requêtes destinées au serveur. Un format de
-    journal est spécifié, et la journalisation peut s'effectuer de
-    manière conditionnelle en fonction des caractéristiques de la
-    requête en utilisant des variables d'environnement.</p>
-
-    <p>Le premier argument, qui spécifie l'emplacement où les journaux
-    seront écrits, accepte deux types de valeurs :</p>
-
-    <dl>
-      <dt><var>fichier</var></dt>
-      <dd>Un nom de fichier, relatif au répertoire défini par la
-      directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
-
-      <dt><var>pipe</var></dt>
-      <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
-      programme qui recevra les informations de la journalisation sur
-      son entrée standard. Voir les notes à propos de la <a href="../logs.html#piped">journalisation redirigée</a> pour plus
-      d'informations.
-
-      <div class="warning"><h3>Sécurité :</h3>
-      <p>Si les journaux sont redirigés vers un programme, ce dernier
-      s'exécutera sous l'utilisateur qui a démarré
-      <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
-      a été démarré par root ; vérifiez que le programme est
-      sécurisé.</p>
-      </div>
-      <div class="warning"><h3>Note</h3>
-        <p>Lors de la spécification d'un chemin de fichier sur les
-       plate-formes non-Unix, il faut prendre soin de ne pas oublier
-       que seuls les slashes directs doivent être utilisés, même si la
-       plate-forme autorise l'emploi d'anti-slashes. D'une manière
-       générale, c'est une bonne idée que de n'utiliser que des slashes
-       directs dans les fichiers de configuration.</p>
-      </div></dd>
-    </dl>
-
-    <p>Le second argument permet de définir ce qui va être écrit dans le
-    fichier journal. Il peut contenir soit un <var>alias</var> prédéfini
-    par une directive <code class="directive"><a href="#logformat">LogFormat</a></code>, soit une chaîne de
-    <var>format</var> explicite comme décrit dans la section <a href="#formats">formats de journaux</a>.</p>
-
-    <p>Par exemple, les deux blocs de directives suivants produisent le
-    même effet :</p>
-
-    <pre class="prettyprint lang-config"># Journal personnalisé avec alias de format
-LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
-CustomLog logs/access_log common
-
-# Journal personnalisé avec chaîne de format explicite
-CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"</pre>
-
-
-    <p>Le troisième argument est optionnel et permet de contrôler si une
-    requête doit être ou non journalisée. Dans le cas d'une clause
-    '<code>env=!<var>nom</var></code>', la condition peut être la
-    présence ou l'absence d'une variable particulière dans
-    l'<a href="../env.html">environnement du serveur</a>. Dans le cas
-    d'une clause 'expr=<var>expression</var>', la condition consiste
-    en une <a href="../expr.html">expression</a> booléenne
-    quelconque. Si la condition n'est pas vérifiée, la requête ne sera
-    pas journalisée. D'éventuelles références à des en-têtes HTTP dans
-    l'expression rationnelle n'entraîneront pas l'ajout des noms
-    d'en-tête correspondants à l'en-tête Vary.</p>
-
-    <p>Les variables d'environnement peuvent être définies au niveau de
-    chaque requête en utilisant les modules
-    <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> et/ou <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
-    Par exemple, si vous voulez enregistrer les requêtes pour toutes les
-    images GIF sur votre serveur dans un fichier journal séparé, et pas
-    dans votre journal principal, vous pouvez utiliser :</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
-CustomLog gif-requests.log common env=gif-image
-CustomLog nongif-requests.log common env=!gif-image</pre>
-
-
-    <p>Ou, pour reproduire le comportement de l'ancienne directive
-    RefererIgnore, vous pouvez utiliser :</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-CustomLog referer.log referer env=!localreferer</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="logformat" id="logformat">Directive</a> <a name="LogFormat" id="LogFormat">LogFormat</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Décrit un format utilisable dans un fichier
-journal</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LogFormat <var>format</var>|<var>alias</var>
-[<var>alias</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le format du fichier journal
-    des accès.</p>
-
-    <p>La directive <code class="directive">LogFormat</code> se présente sous
-    deux formes. Sous la première forme, qui ne possède qu'un seul
-    argument, la directive définit le format qui sera utilisé dans les
-    journaux spécifiés par les directives
-    <code class="directive">TransferLog</code> ultérieures. L'argument unique
-    peut contenir un <var>format</var> explicite comme décrit dans la
-    section <a href="#formats">formats de journaux personnalisés</a>
-    ci-dessus. Il peut aussi contenir un <var>alias</var> faisant
-    référence à un format de journal prédéfini par une directive
-    <code class="directive">LogFormat</code> comme décrit plus loin.</p>
-
-    <p>Sous sa seconde forme, la directive
-    <code class="directive">LogFormat</code> associe un <var>format</var>
-    explicite à un <var>alias</var>. Cet <var>alias</var> peut
-    ensuite s'utiliser dans les directives
-    <code class="directive">LogFormat</code> ou <code class="directive"><a href="#customlog">CustomLog</a></code> ultérieures, ce qui
-    évite d'avoir à répéter l'ensemble de la chaîne de format. Une
-    directive <code class="directive">LogFormat</code> qui définit un alias
-    <strong>ne fait rien d'autre</strong> -- c'est à dire qu'<em>elle ne
-    fait que</em> définir l'alias, elle n'applique pas le format et n'en
-    fait pas le format par défaut. Par conséquent, elle n'affecte pas
-    les directives <code class="directive"><a href="#transferlog">TransferLog</a></code> ultérieures. En
-    outre, la directive <code class="directive">LogFormat</code> ne peut pas
-    utiliser un alias pour en définir un autre. Notez que l'alias ne
-    doit pas contenir de caractère pourcent (<code>%</code>).</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" serveur_virtuel_commun</pre>
-</div>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="transferlog" id="transferlog">Directive</a> <a name="TransferLog" id="TransferLog">TransferLog</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie l'emplacement d'un fichier journal</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>TransferLog <var>fichier</var>|<var>pipe</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>Cette directive possède exactement les mêmes arguments et produit
-    les mêmes effets que la directive <code class="directive"><a href="#customlog">CustomLog</a></code>, à l'exception qu'elle
-    ne permet pas de spécifier un format de journal explicite ou la
-    journalisation conditionnelle des requêtes. En l'occurrence, le
-    format de journal est déterminé par la dernière définition d'une
-    directive <code class="directive"><a href="#logformat">LogFormat</a></code>
-    qui ne définit pas d'alias. Si aucun format particulier n'a été
-    spécifié, c'est le Common Log Format qui sera utilisé.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
-TransferLog logs/access_log</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 1da183293f99dd2ab446b4ca0002b5901ebf033b..952334ba762f87ba69228d775eb88c4715f7d8b0 100644 (file)
 <li><a href="../logs.html">Apache ログファイル</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ディスクに書き出す前にメモリにログエントリをバッファする</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>BufferedLogs Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.41 以降</td></tr>
+</table>
+    <p><code class="directive">BufferedLogs</code> ディレクティブを使うと
+    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> の挙動が変化して、
+    複数のログを書き出す際に、それぞれのリクエスト処理後毎に
+    書き出すのではなく、いったんメモリに蓄えてから、
+    まとめてディスクに書き出すようになります。
+    この結果ディスクアクセスがより効率的になり、
+    高いパフォーマンスの得られるシステムもあるでしょう。
+    このディレクティブはサーバ全体で一度だけ設定できます; 
+    バーチャルホストごとに設定することはできません。</p>
+
+    <div class="note">このディレクティブは実験的なものですので、
+    使用する際は注意してください。</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ログファイルの名前と書式を設定する</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>CustomLog  <var>file</var>|<var>pipe</var>
+<var>format</var>|<var>nickname</var>
+[env=[!]<var>environment-variable</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p><code class="directive">CustomLog</code> ディレクティブはサーバへのリクエストを
+    ログ収集するために使われます。ログの書式が指定され、
+    環境変数を使ってロギングが条件に応じて行なわれるようにすることもできます。</p>
+
+    <p>ログが書かれる場所を指定する最初の引数は以下の二つの形式の値を
+    とることができます:</p>
+
+    <dl>
+      <dt><var>file</var></dt>
+      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>
+      からの相対パスで表されるファイル名。</dd>
+
+      <dt><var>pipe</var></dt>
+      <dd>パイプ文字 "<code>|</code>" と、その後に標準入力からログの
+      情報を受けとるプログラムへのパスが続いたもの。
+
+      <div class="warning"><h3>セキュリティ</h3>
+      <p>もしプログラムが使用された場合、
+      <code class="program"><a href="../programs/httpd.html">httpd</a></code> が起動されたユーザとして実行されます。これはサーバが
+      root によって起動された場合は root になります。プログラムが
+      安全であるように留意してください。</p>
+      </div>
+      <div class="warning"><h3>注</h3>
+        <p>Unix でないプラットフォームでファイルのパスを入力しているときは、
+        使用しているプラットフォームがバックスラッシュの使用を許可していた
+        として、通常のスラッシュだけを使うように気をつけてください。
+        一般的に、設定ファイル中では常に普通のスラッシュのみを使うようにする
+        方が良いです。</p>
+      </div></dd>
+    </dl>
+
+    <p>二つめの引数はログファイルに何が書かれるかを指定します。
+    前にある <code class="directive"><a href="#logformat">LogFormat</a></code> ディレクティブにより
+    定義された <var>nickname</var> か、<a href="#formats">ログの書式</a>
+    のところで説明されている、明示的な <var>format</var> 文字列の
+    どちらかを指定することができます。</p>
+
+    <p>例えば、以下の二つのディレクティブ群は全く同じ効果をもたらします:</p>
+
+    <div class="example"><p><code>
+      # CustomLog with format nickname<br />
+      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
+      CustomLog logs/access_log common<br />
+      <br />
+      # CustomLog with explicit format string<br />
+      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
+    </code></p></div>
+
+    <p>三つ目の引数は省略可能で、サーバの環境にある変数があるかないかに
+    応じてリクエストをログ収集するかどうかを制御するために使うことができます。
+    指定された<a href="../env.html">環境変数</a>がリクエストに対して
+    設定されていた場合 ('<code>env=!<var>name</var></code>' 文が使われたときは
+    設定されていない場合)、リクエストがログ収集されます。</p>
+
+    <p>環境変数は <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> モジュールと
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> モジュールの両方もしくは
+    片方を用いてリクエストごとに設定することができます。
+    例えば、サーバにあるすべての GIF 画像へのリクエストを別のログファイル
+    には記録したいけれど、メインログには記録したくない、というときは
+    以下のものを使うことができます:</p>
+    
+    <div class="example"><p><code>
+      SetEnvIf Request_URI \.gif$ gif-image<br />
+      CustomLog gif-requests.log common env=gif-image<br />
+      CustomLog nongif-requests.log common env=!gif-image
+    </code></p></div>
+
+    <p>古い RefererIgnore ディレクティブと同じ挙動をさせたい場合は、
+    次のようにします:</p>
+
+    <div class="example"><p><code>
+    SetEnvIf Referer example\.com localreferer<br />
+    CustomLog referer.log referer env=!localreferer
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ログファイルで使用する書式を設定する</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LogFormat <var>format</var>|<var>nickname</var>
+[<var>nickname</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>このディレクティブはアクセスログファイルの書式を指定します。</p>
+
+    <p><code class="directive">LogFormat</code> ディレクティブは二つの形式のどちらかを
+    とることができます。最初の形式では一つの引数のみが指定され、
+    続く <code class="directive">TransferLog</code>
+    で指定されたログで使われるログの書式を設定します。この単独の引数では
+    上の<a href="#formats">カスタムログ書式</a>で説明されているように
+    <var>format</var> を明示的に指定することができます。
+    もしくは、下で説明されているように前に <code class="directive">LogFormat</code>
+    ディレクティブで定義されたログの書式を <var>nickname</var>を使って
+    参照することもできます。</p>
+
+    <p><code class="directive">LogFormat</code> ディレクティブの二つめの形式は
+    <var>format</var> に <var>nickname</var> を与えます。
+    フォーマット文字列全体を再び書くかわりに、
+    この <var>nickname</var> を続きの <code class="directive">LogFormat</code> ディレクティブや
+    <code class="directive">CustomLog</code> ディレクティブで使うことができます。
+    Nickname を定義する <code class="directive">LogFormat</code> ディレクティブは
+    <strong>他には何もしません</strong> -- すなわち、ニックネームを定義
+    する<em>だけ</em>で、実際に書式を適用してデフォルトにするということは行ないません。
+    ですから、これは続く <code class="directive"><a href="#transferlog">TransferLog</a></code>
+    ディレクティブには影響を与えません。
+    さらに、<code class="directive">LogFormat</code> ディレクティブは既存の nickname を
+    使って別の nickname を定義することはできません。Nickname には
+    パーセント記号 (<code>%</code>) が含まれていてはいけないことにも注意
+    してください。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ログファイルの位置を指定</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>TransferLog <var>file</var>|<var>pipe</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>このディレクティブは、ログ書式を直接指定できないことと、
+    条件付きロギングが無いことを除くと、<code class="directive"><a href="#customlog">CustomLog</a></code> と全く同じ引数と効果があります。
+    直接ログ書式を指定する代わりに、ログの書式はそこまでで一番最後に指定された
+    ニックネームを定義しない
+    <code class="directive"><a href="#logformat">LogFormat</a></code> ディレクティブ
+       で定義されたものを使います。
+    もし他の書式が全く指定されていないときは Common Log Format
+    が使われます。</p>
+
+    <div class="example"><h3>例</h3><p><code>
+      LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""<br />
+      TransferLog logs/access_log
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">カスタムログ書式</a></h2>
 
     書き込み可能なときにセキュリティの問題が発生する理由の詳細は<a href="../misc/security_tips.html#serverroot">セキュリティのこつ</a>
     を参照してください。</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ディスクに書き出す前にメモリにログエントリをバッファする</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>BufferedLogs Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>2.0.41 以降</td></tr>
-</table>
-    <p><code class="directive">BufferedLogs</code> ディレクティブを使うと
-    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> の挙動が変化して、
-    複数のログを書き出す際に、それぞれのリクエスト処理後毎に
-    書き出すのではなく、いったんメモリに蓄えてから、
-    まとめてディスクに書き出すようになります。
-    この結果ディスクアクセスがより効率的になり、
-    高いパフォーマンスの得られるシステムもあるでしょう。
-    このディレクティブはサーバ全体で一度だけ設定できます; 
-    バーチャルホストごとに設定することはできません。</p>
-
-    <div class="note">このディレクティブは実験的なものですので、
-    使用する際は注意してください。</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ログファイルの名前と書式を設定する</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>CustomLog  <var>file</var>|<var>pipe</var>
-<var>format</var>|<var>nickname</var>
-[env=[!]<var>environment-variable</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p><code class="directive">CustomLog</code> ディレクティブはサーバへのリクエストを
-    ログ収集するために使われます。ログの書式が指定され、
-    環境変数を使ってロギングが条件に応じて行なわれるようにすることもできます。</p>
-
-    <p>ログが書かれる場所を指定する最初の引数は以下の二つの形式の値を
-    とることができます:</p>
-
-    <dl>
-      <dt><var>file</var></dt>
-      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>
-      からの相対パスで表されるファイル名。</dd>
-
-      <dt><var>pipe</var></dt>
-      <dd>パイプ文字 "<code>|</code>" と、その後に標準入力からログの
-      情報を受けとるプログラムへのパスが続いたもの。
-
-      <div class="warning"><h3>セキュリティ</h3>
-      <p>もしプログラムが使用された場合、
-      <code class="program"><a href="../programs/httpd.html">httpd</a></code> が起動されたユーザとして実行されます。これはサーバが
-      root によって起動された場合は root になります。プログラムが
-      安全であるように留意してください。</p>
-      </div>
-      <div class="warning"><h3>注</h3>
-        <p>Unix でないプラットフォームでファイルのパスを入力しているときは、
-        使用しているプラットフォームがバックスラッシュの使用を許可していた
-        として、通常のスラッシュだけを使うように気をつけてください。
-        一般的に、設定ファイル中では常に普通のスラッシュのみを使うようにする
-        方が良いです。</p>
-      </div></dd>
-    </dl>
-
-    <p>二つめの引数はログファイルに何が書かれるかを指定します。
-    前にある <code class="directive"><a href="#logformat">LogFormat</a></code> ディレクティブにより
-    定義された <var>nickname</var> か、<a href="#formats">ログの書式</a>
-    のところで説明されている、明示的な <var>format</var> 文字列の
-    どちらかを指定することができます。</p>
-
-    <p>例えば、以下の二つのディレクティブ群は全く同じ効果をもたらします:</p>
-
-    <div class="example"><p><code>
-      # CustomLog with format nickname<br />
-      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
-      CustomLog logs/access_log common<br />
-      <br />
-      # CustomLog with explicit format string<br />
-      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
-    </code></p></div>
-
-    <p>三つ目の引数は省略可能で、サーバの環境にある変数があるかないかに
-    応じてリクエストをログ収集するかどうかを制御するために使うことができます。
-    指定された<a href="../env.html">環境変数</a>がリクエストに対して
-    設定されていた場合 ('<code>env=!<var>name</var></code>' 文が使われたときは
-    設定されていない場合)、リクエストがログ収集されます。</p>
-
-    <p>環境変数は <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> モジュールと
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> モジュールの両方もしくは
-    片方を用いてリクエストごとに設定することができます。
-    例えば、サーバにあるすべての GIF 画像へのリクエストを別のログファイル
-    には記録したいけれど、メインログには記録したくない、というときは
-    以下のものを使うことができます:</p>
-    
-    <div class="example"><p><code>
-      SetEnvIf Request_URI \.gif$ gif-image<br />
-      CustomLog gif-requests.log common env=gif-image<br />
-      CustomLog nongif-requests.log common env=!gif-image
-    </code></p></div>
-
-    <p>古い RefererIgnore ディレクティブと同じ挙動をさせたい場合は、
-    次のようにします:</p>
-
-    <div class="example"><p><code>
-    SetEnvIf Referer example\.com localreferer<br />
-    CustomLog referer.log referer env=!localreferer
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ログファイルで使用する書式を設定する</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LogFormat <var>format</var>|<var>nickname</var>
-[<var>nickname</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>このディレクティブはアクセスログファイルの書式を指定します。</p>
-
-    <p><code class="directive">LogFormat</code> ディレクティブは二つの形式のどちらかを
-    とることができます。最初の形式では一つの引数のみが指定され、
-    続く <code class="directive">TransferLog</code>
-    で指定されたログで使われるログの書式を設定します。この単独の引数では
-    上の<a href="#formats">カスタムログ書式</a>で説明されているように
-    <var>format</var> を明示的に指定することができます。
-    もしくは、下で説明されているように前に <code class="directive">LogFormat</code>
-    ディレクティブで定義されたログの書式を <var>nickname</var>を使って
-    参照することもできます。</p>
-
-    <p><code class="directive">LogFormat</code> ディレクティブの二つめの形式は
-    <var>format</var> に <var>nickname</var> を与えます。
-    フォーマット文字列全体を再び書くかわりに、
-    この <var>nickname</var> を続きの <code class="directive">LogFormat</code> ディレクティブや
-    <code class="directive">CustomLog</code> ディレクティブで使うことができます。
-    Nickname を定義する <code class="directive">LogFormat</code> ディレクティブは
-    <strong>他には何もしません</strong> -- すなわち、ニックネームを定義
-    する<em>だけ</em>で、実際に書式を適用してデフォルトにするということは行ないません。
-    ですから、これは続く <code class="directive"><a href="#transferlog">TransferLog</a></code>
-    ディレクティブには影響を与えません。
-    さらに、<code class="directive">LogFormat</code> ディレクティブは既存の nickname を
-    使って別の nickname を定義することはできません。Nickname には
-    パーセント記号 (<code>%</code>) が含まれていてはいけないことにも注意
-    してください。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ログファイルの位置を指定</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>TransferLog <var>file</var>|<var>pipe</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>このディレクティブは、ログ書式を直接指定できないことと、
-    条件付きロギングが無いことを除くと、<code class="directive"><a href="#customlog">CustomLog</a></code> と全く同じ引数と効果があります。
-    直接ログ書式を指定する代わりに、ログの書式はそこまでで一番最後に指定された
-    ニックネームを定義しない
-    <code class="directive"><a href="#logformat">LogFormat</a></code> ディレクティブ
-       で定義されたものを使います。
-    もし他の書式が全く指定されていないときは Common Log Format
-    が使われます。</p>
-
-    <div class="example"><h3>例</h3><p><code>
-      LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""<br />
-      TransferLog logs/access_log
-    </code></p></div>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 18ba763fa102ebb19dde2316f30882448565e365..3c117c64e983e7142853895b8d83e7e4786bcb34 100644 (file)
 <li><a href="../logs.html">¾ÆÆÄÄ¡ ·Î±×ÆÄÀÏ</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Buffer log entries in memory before writing to disk</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code /></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
+</table><p>Documentation not yet translated. Please see English version of document.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>·Î±×ÆÄÀÏ À̸§°ú Çü½ÄÀ» ÁöÁ¤ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>CustomLog  <var>file</var>|<var>pipe</var>
+<var>format</var>|<var>nickname</var>
+[env=[!]<var>environment-variable</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>¼­¹ö°¡ ¿äûÀ» ·Î±×¿¡ ³²±æ¶§ <code class="directive">CustomLog</code>
+    Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù. ·Î±× Çü½ÄÀ» ÁöÁ¤Çϰí, È¯°æº¯¼ö¸¦ »ç¿ëÇÏ¿©
+    ¿äûÀǠƯ¡¿¡ µû¶ó ¼±ÅÃÀûÀ¸·Î ·Î±×¸¦ ³²±æ ¼öµµ ÀÖ´Ù.</p>
+
+    <p>·Î±×¸¦ ±â·ÏÇÒ Àå¼Ò¸¦ ÁöÁ¤Çϴ ù¹øÂ° ¾Æ±Ô¸ÕÆ®¿¡´Â ´ÙÀ½
+    µÑÁß Çϳª¸¦ »ç¿ëÇÑ´Ù.</p>
+
+    <dl>
+      <dt><var>file</var></dt>
+      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>¿¡
+      »ó´ëÀûÀΠÆÄÀϸí.</dd>
+
+      <dt><var>pipe</var></dt>
+      <dd>ÆÄÀÌÇÁ¹®ÀÚ "<code>|</code>"µÚ¿¡ ·Î±× Á¤º¸¸¦ Ç¥ÁØÀÔ·ÂÀ¸·Î
+      ¹ÞÀ» ÇÁ·Î±×·¥ °æ·Î¸¦ Àû´Â´Ù.
+
+      <div class="warning"><h3>º¸¾È:</h3>
+      <p>ÇÁ·Î±×·¥À» »ç¿ëÇÑ´Ù¸é ÇÁ·Î±×·¥Àº À¥¼­¹ö¸¦ ½ÃÀÛÇÑ »ç¿ëÀÚ
+      ±ÇÇÑÀ¸·Î ½ÇÇàµÈ´Ù. ¼­¹ö¸¦ root·Î ½ÃÀÛÇÑ´Ù¸é ÇÁ·Î±×·¥µµ
+      root·Î ½ÇÇàÇϹǷΠÇÁ·Î±×·¥ÀÌ ¾ÈÀüÇÑÁö È®ÀÎÇ϶ó.</p>
+      </div>
+      <div class="warning"><h3>ÁÖÀÇ</h3>
+        <p>À¯´Ð½º°¡ ¾Æ´Ñ Ç÷¡Æû¿¡¼­ ÆÄÀϰæ·Î¸¦ ÀÔ·ÂÇÒ¶§ Ç÷¡ÆûÀÌ
+        ¹é½½·¡½¬¸¦ »ç¿ëÇÏ´õ¶óµµ ¹Ýµå½Ã ½½·¡½¬¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
+        ÀϹÝÀûÀ¸·Î ¼³Á¤ÆÄÀÏ¿¡¼­´Â Ç×»ó ½½·¡½¬¸¦ »ç¿ëÇϴ °ÍÀÌ
+        ÁÁ´Ù.</p>
+      </div></dd>
+    </dl>
+
+    <p>µÎ¹øÂ° ¾Æ±Ô¸ÕÆ®´Â ·Î±×ÆÄÀÏ¿¡ ±â·ÏÇÒ ³»¿ëÀ» ÁöÁ¤ÇÑ´Ù.
+    Àü¿¡ <code class="directive"><a href="#logformat">LogFormat</a></code>À¸·Î
+    Á¤ÀÇÇÑ <var>nickname</var>À» »ç¿ëÇϰųª Á÷Á¢ <a href="#formats">·Î±× Çü½Ä</a> Àý¿¡¼­ ¼³¸íÇÑ <var>format</var>
+    ¹®ÀÚ¿­À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
+
+    <p>¿¹¸¦ µé¾î, ´ÙÀ½ µÎ Áö½Ã¾î´Â ¶È°°Àº ÀÏÀ» ÇÑ´Ù.</p>
+
+    <div class="example"><p><code>
+      # Çü½Ä º°ÄªÀ» »ç¿ëÇÑ CustomLog<br />
+      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
+      CustomLog logs/access_log common<br />
+      <br />
+      # Á÷Á¢ Çü½Ä ¹®ÀÚ¿­À» »ç¿ëÇÑ CustomLog<br />
+      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
+    </code></p></div>
+
+    <p>¼¼¹øÂ° ¾Æ±Ô¸ÕÆ®´Â ¾ø¾îµµ µÇ¸ç, Æ¯Á¤ ¼­¹ö È¯°æº¯¼ö À¯¹«¿¡
+    µû¶ó ¿äûÀ» ·Î±×¿¡ ±â·ÏÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù. ¿äû¿¡ ÁöÁ¤ÇÑ
+    <a href="../env.html">ȯ°æº¯¼ö</a>°¡ Á¤ÀǵÇÀÖ´Ù¸é (ȤÀº
+    '<code>env=!<var>name</var></code>'¸¦ »ç¿ëÇÑ °æ¿ì ¾ø´Ù¸é)
+    ¿äûÀ» ·Î±×¿¡ ±â·ÏÇÑ´Ù.</p>
+
+    <p><code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>³ª <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+    ¸ðµâÀ» »ç¿ëÇÏ¿© ¿äûº°·Î È¯°æº¯¼ö¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦
+    µé¾î, ¼­¹ö°¡ GIF ±×¸²¿¡ ´ëÇÑ ¸ðµç ¿äûÀ» ÁÖ¼­¹ö ·Î±×°¡ ¾Æ´Ñ
+    ´Ù¸¥ ·Î±×ÆÄÀÏ¿¡ ±â·ÏÇÏ·Á¸é,</p>
+    
+    <div class="example"><p><code>
+      SetEnvIf Request_URI \.gif$ gif-image<br />
+      CustomLog gif-requests.log common env=gif-image<br />
+      CustomLog nongif-requests.log common env=!gif-image
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>·Î±×ÆÄÀÏ¿¡ »ç¿ëÇÒ Çü½ÄÀ» ±â¼úÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LogFormat <var>format</var>|<var>nickname</var>
+[<var>nickname</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>ÀÌ Áö½Ã¾î´Â Á¢±Ù ·Î±×ÆÄÀÏÀÇ Çü½ÄÀ» ÁöÁ¤ÇÑ´Ù.</p>
+
+    <p><code class="directive">LogFormat</code> Áö½Ã¾î´Â µÎ°¡Áö Çü½ÄÀ¸·Î
+    »ç¿ëÇÑ´Ù. Ã¹¹øÂ° Çü½ÄÀº ¾Æ±Ô¸ÕÆ®¸¦ ÇѰ³¸¸ »ç¿ëÇÏ¿© ´ÙÀ½
+    <code class="directive">TransferLog</code> Áö½Ã¾îµéÀÌ »ç¿ëÇÒ ·Î±×
+    Çü½ÄÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ¾Æ±Ô¸ÕÆ®¿¡ À§ÀÇ <a href="#formats">·Î±×
+    Çü½Ä ÁöÁ¤Çϱâ</a> Àý¿¡¼­ ¼³¸íÇÑ <var>format</var>À» Á÷Á¢
+    »ç¿ëÇϰųª, ´ÙÀ½¿¡ ¼³¸íÇÒ <code class="directive">LogFormat</code>
+    Áö½Ã¾î·Î ¹Ì¸® Á¤ÀÇÇÑ (·Î±× Çü½ÄÀ» ÁöĪÇÏ´Â) <var>nickname</var>À»
+    »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
+
+    <p><code class="directive">LogFormat</code> Áö½Ã¾îÀÇ µÎ¹øÂ° Çü½ÄÀº
+    <var>format</var>°ú <var>nickname</var>À» ¿¬°áÇÑ´Ù. ±×·¯¸é
+    µÚ¿¡¼­ »ç¿ëÇϴ <code class="directive">LogFormat</code>À̳ª <code class="directive"><a href="#customlog">CustomLog</a></code> Áö½Ã¾î¿¡ ¹Ýº¹Çؼ­
+    Çü½Ä ¹®ÀÚ¿­À» ¸ðµÎ ÀÔ·ÂÇϴ ´ë½Å <var>nickname</var>À» »ç¿ëÇÒ
+    ¼ö ÀÖ´Ù. º°ÄªÀ» Á¤ÀÇÇϴ <code class="directive">LogFormat</code>
+    Áö½Ã¾î´Â <strong>ÀÌ ¿Ü¿¡´Â ¾Æ¹« ±â´ÉÀ» ÇÏÁö ¾Ê´Â´Ù</strong>.
+    Áï, º°Äª<em>¸¸</em>À» Á¤ÀÇÇϸç, ½ÇÁ¦·Î Çü½ÄÀ» Àû¿ëÇϰųª
+    Çü½ÄÀ» ±âº»°ªÀ¸·Î ¸¸µéÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ´ÙÀ½¿¡ ³ª¿À´Â
+    <code class="directive"><a href="#transferlog">TransferLog</a></code>
+    Áö½Ã¾î¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù. ¶Ç,
+    <code class="directive">LogFormat</code>Àº º°ÄªÀ¸·Î ´Ù¸¥ º°ÄªÀ»
+    Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. º°Äª À̸§¿¡´Â ÆÛ¼¾Æ® ±âÈ£(<code>%</code>)¸¦
+    »ç¿ëÇÒ ¼ö ¾øÀ½À» ÁÖÀÇÇ϶ó.</p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>·Î±×ÆÄÀÏ À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>TransferLog <var>file</var>|<var>pipe</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>ÀÌ Áö½Ã¾î´Â <code class="directive"><a href="#customlog">CustomLog</a></code> Áö½Ã¾î¿Í ¾Æ±Ô¸ÕÆ®¿Í
+    ±â´ÉÀÌ ºñ½ÁÇÏÁö¸¸, ·Î±× Çü½ÄÀ» Á÷Á¢ ÁöÁ¤Çϰųª ¿äûÀ» Á¶°Ç¿¡
+    µû¶ó ·Î±×¿¡ ³²±æ ¼ö ¾ø´Ù. ´ë½Å °¡Àå ÃÖ±Ù »ç¿ëÇÑ (º°ÄªÀ»
+    Á¤ÀÇÇÏÁö ¾ÊÀº) <code class="directive"><a href="#logformat">LogFormat</a></code> Áö½Ã¾î°¡ ÁöÁ¤ÇÑ
+    ·Î±× Çü½ÄÀ» »ç¿ëÇÑ´Ù. ¹Ì¸® Çü½ÄÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é Common
+    Log FormatÀ» »ç¿ëÇÑ´Ù.</p>
+
+    <div class="example"><h3>¿¹Á¦</h3><p><code>
+      LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""<br />
+      TransferLog logs/access_log
+    </code></p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">·Î±× Çü½Ä ÁöÁ¤Çϱâ</a></h2>
 
     <a href="../misc/security_tips.html#serverroot">º¸¾È ÆÁ</a>
     ¹®¼­¸¦ Âü°íÇ϶ó.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Buffer log entries in memory before writing to disk</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code /></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
-</table><p>Documentation not yet translated. Please see English version of document.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>·Î±×ÆÄÀÏ À̸§°ú Çü½ÄÀ» ÁöÁ¤ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>CustomLog  <var>file</var>|<var>pipe</var>
-<var>format</var>|<var>nickname</var>
-[env=[!]<var>environment-variable</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>¼­¹ö°¡ ¿äûÀ» ·Î±×¿¡ ³²±æ¶§ <code class="directive">CustomLog</code>
-    Áö½Ã¾î¸¦ »ç¿ëÇÑ´Ù. ·Î±× Çü½ÄÀ» ÁöÁ¤Çϰí, È¯°æº¯¼ö¸¦ »ç¿ëÇÏ¿©
-    ¿äûÀǠƯ¡¿¡ µû¶ó ¼±ÅÃÀûÀ¸·Î ·Î±×¸¦ ³²±æ ¼öµµ ÀÖ´Ù.</p>
-
-    <p>·Î±×¸¦ ±â·ÏÇÒ Àå¼Ò¸¦ ÁöÁ¤Çϴ ù¹øÂ° ¾Æ±Ô¸ÕÆ®¿¡´Â ´ÙÀ½
-    µÑÁß Çϳª¸¦ »ç¿ëÇÑ´Ù.</p>
-
-    <dl>
-      <dt><var>file</var></dt>
-      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>¿¡
-      »ó´ëÀûÀΠÆÄÀϸí.</dd>
-
-      <dt><var>pipe</var></dt>
-      <dd>ÆÄÀÌÇÁ¹®ÀÚ "<code>|</code>"µÚ¿¡ ·Î±× Á¤º¸¸¦ Ç¥ÁØÀÔ·ÂÀ¸·Î
-      ¹ÞÀ» ÇÁ·Î±×·¥ °æ·Î¸¦ Àû´Â´Ù.
-
-      <div class="warning"><h3>º¸¾È:</h3>
-      <p>ÇÁ·Î±×·¥À» »ç¿ëÇÑ´Ù¸é ÇÁ·Î±×·¥Àº À¥¼­¹ö¸¦ ½ÃÀÛÇÑ »ç¿ëÀÚ
-      ±ÇÇÑÀ¸·Î ½ÇÇàµÈ´Ù. ¼­¹ö¸¦ root·Î ½ÃÀÛÇÑ´Ù¸é ÇÁ·Î±×·¥µµ
-      root·Î ½ÇÇàÇϹǷΠÇÁ·Î±×·¥ÀÌ ¾ÈÀüÇÑÁö È®ÀÎÇ϶ó.</p>
-      </div>
-      <div class="warning"><h3>ÁÖÀÇ</h3>
-        <p>À¯´Ð½º°¡ ¾Æ´Ñ Ç÷¡Æû¿¡¼­ ÆÄÀϰæ·Î¸¦ ÀÔ·ÂÇÒ¶§ Ç÷¡ÆûÀÌ
-        ¹é½½·¡½¬¸¦ »ç¿ëÇÏ´õ¶óµµ ¹Ýµå½Ã ½½·¡½¬¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
-        ÀϹÝÀûÀ¸·Î ¼³Á¤ÆÄÀÏ¿¡¼­´Â Ç×»ó ½½·¡½¬¸¦ »ç¿ëÇϴ °ÍÀÌ
-        ÁÁ´Ù.</p>
-      </div></dd>
-    </dl>
-
-    <p>µÎ¹øÂ° ¾Æ±Ô¸ÕÆ®´Â ·Î±×ÆÄÀÏ¿¡ ±â·ÏÇÒ ³»¿ëÀ» ÁöÁ¤ÇÑ´Ù.
-    Àü¿¡ <code class="directive"><a href="#logformat">LogFormat</a></code>À¸·Î
-    Á¤ÀÇÇÑ <var>nickname</var>À» »ç¿ëÇϰųª Á÷Á¢ <a href="#formats">·Î±× Çü½Ä</a> Àý¿¡¼­ ¼³¸íÇÑ <var>format</var>
-    ¹®ÀÚ¿­À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
-
-    <p>¿¹¸¦ µé¾î, ´ÙÀ½ µÎ Áö½Ã¾î´Â ¶È°°Àº ÀÏÀ» ÇÑ´Ù.</p>
-
-    <div class="example"><p><code>
-      # Çü½Ä º°ÄªÀ» »ç¿ëÇÑ CustomLog<br />
-      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
-      CustomLog logs/access_log common<br />
-      <br />
-      # Á÷Á¢ Çü½Ä ¹®ÀÚ¿­À» »ç¿ëÇÑ CustomLog<br />
-      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
-    </code></p></div>
-
-    <p>¼¼¹øÂ° ¾Æ±Ô¸ÕÆ®´Â ¾ø¾îµµ µÇ¸ç, Æ¯Á¤ ¼­¹ö È¯°æº¯¼ö À¯¹«¿¡
-    µû¶ó ¿äûÀ» ·Î±×¿¡ ±â·ÏÇÒÁö ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù. ¿äû¿¡ ÁöÁ¤ÇÑ
-    <a href="../env.html">ȯ°æº¯¼ö</a>°¡ Á¤ÀǵÇÀÖ´Ù¸é (ȤÀº
-    '<code>env=!<var>name</var></code>'¸¦ »ç¿ëÇÑ °æ¿ì ¾ø´Ù¸é)
-    ¿äûÀ» ·Î±×¿¡ ±â·ÏÇÑ´Ù.</p>
-
-    <p><code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>³ª <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-    ¸ðµâÀ» »ç¿ëÇÏ¿© ¿äûº°·Î È¯°æº¯¼ö¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦
-    µé¾î, ¼­¹ö°¡ GIF ±×¸²¿¡ ´ëÇÑ ¸ðµç ¿äûÀ» ÁÖ¼­¹ö ·Î±×°¡ ¾Æ´Ñ
-    ´Ù¸¥ ·Î±×ÆÄÀÏ¿¡ ±â·ÏÇÏ·Á¸é,</p>
-    
-    <div class="example"><p><code>
-      SetEnvIf Request_URI \.gif$ gif-image<br />
-      CustomLog gif-requests.log common env=gif-image<br />
-      CustomLog nongif-requests.log common env=!gif-image
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>·Î±×ÆÄÀÏ¿¡ »ç¿ëÇÒ Çü½ÄÀ» ±â¼úÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LogFormat <var>format</var>|<var>nickname</var>
-[<var>nickname</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>ÀÌ Áö½Ã¾î´Â Á¢±Ù ·Î±×ÆÄÀÏÀÇ Çü½ÄÀ» ÁöÁ¤ÇÑ´Ù.</p>
-
-    <p><code class="directive">LogFormat</code> Áö½Ã¾î´Â µÎ°¡Áö Çü½ÄÀ¸·Î
-    »ç¿ëÇÑ´Ù. Ã¹¹øÂ° Çü½ÄÀº ¾Æ±Ô¸ÕÆ®¸¦ ÇѰ³¸¸ »ç¿ëÇÏ¿© ´ÙÀ½
-    <code class="directive">TransferLog</code> Áö½Ã¾îµéÀÌ »ç¿ëÇÒ ·Î±×
-    Çü½ÄÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ¾Æ±Ô¸ÕÆ®¿¡ À§ÀÇ <a href="#formats">·Î±×
-    Çü½Ä ÁöÁ¤Çϱâ</a> Àý¿¡¼­ ¼³¸íÇÑ <var>format</var>À» Á÷Á¢
-    »ç¿ëÇϰųª, ´ÙÀ½¿¡ ¼³¸íÇÒ <code class="directive">LogFormat</code>
-    Áö½Ã¾î·Î ¹Ì¸® Á¤ÀÇÇÑ (·Î±× Çü½ÄÀ» ÁöĪÇÏ´Â) <var>nickname</var>À»
-    »ç¿ëÇÒ ¼ö ÀÖ´Ù.</p>
-
-    <p><code class="directive">LogFormat</code> Áö½Ã¾îÀÇ µÎ¹øÂ° Çü½ÄÀº
-    <var>format</var>°ú <var>nickname</var>À» ¿¬°áÇÑ´Ù. ±×·¯¸é
-    µÚ¿¡¼­ »ç¿ëÇϴ <code class="directive">LogFormat</code>À̳ª <code class="directive"><a href="#customlog">CustomLog</a></code> Áö½Ã¾î¿¡ ¹Ýº¹Çؼ­
-    Çü½Ä ¹®ÀÚ¿­À» ¸ðµÎ ÀÔ·ÂÇϴ ´ë½Å <var>nickname</var>À» »ç¿ëÇÒ
-    ¼ö ÀÖ´Ù. º°ÄªÀ» Á¤ÀÇÇϴ <code class="directive">LogFormat</code>
-    Áö½Ã¾î´Â <strong>ÀÌ ¿Ü¿¡´Â ¾Æ¹« ±â´ÉÀ» ÇÏÁö ¾Ê´Â´Ù</strong>.
-    Áï, º°Äª<em>¸¸</em>À» Á¤ÀÇÇϸç, ½ÇÁ¦·Î Çü½ÄÀ» Àû¿ëÇϰųª
-    Çü½ÄÀ» ±âº»°ªÀ¸·Î ¸¸µéÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î ´ÙÀ½¿¡ ³ª¿À´Â
-    <code class="directive"><a href="#transferlog">TransferLog</a></code>
-    Áö½Ã¾î¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù. ¶Ç,
-    <code class="directive">LogFormat</code>Àº º°ÄªÀ¸·Î ´Ù¸¥ º°ÄªÀ»
-    Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. º°Äª À̸§¿¡´Â ÆÛ¼¾Æ® ±âÈ£(<code>%</code>)¸¦
-    »ç¿ëÇÒ ¼ö ¾øÀ½À» ÁÖÀÇÇ϶ó.</p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common
-    </code></p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>·Î±×ÆÄÀÏ À§Ä¡¸¦ ¼³Á¤ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>TransferLog <var>file</var>|<var>pipe</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤, °¡»óÈ£½ºÆ®</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>ÀÌ Áö½Ã¾î´Â <code class="directive"><a href="#customlog">CustomLog</a></code> Áö½Ã¾î¿Í ¾Æ±Ô¸ÕÆ®¿Í
-    ±â´ÉÀÌ ºñ½ÁÇÏÁö¸¸, ·Î±× Çü½ÄÀ» Á÷Á¢ ÁöÁ¤Çϰųª ¿äûÀ» Á¶°Ç¿¡
-    µû¶ó ·Î±×¿¡ ³²±æ ¼ö ¾ø´Ù. ´ë½Å °¡Àå ÃÖ±Ù »ç¿ëÇÑ (º°ÄªÀ»
-    Á¤ÀÇÇÏÁö ¾ÊÀº) <code class="directive"><a href="#logformat">LogFormat</a></code> Áö½Ã¾î°¡ ÁöÁ¤ÇÑ
-    ·Î±× Çü½ÄÀ» »ç¿ëÇÑ´Ù. ¹Ì¸® Çü½ÄÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é Common
-    Log FormatÀ» »ç¿ëÇÑ´Ù.</p>
-
-    <div class="example"><h3>¿¹Á¦</h3><p><code>
-      LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""<br />
-      TransferLog logs/access_log
-    </code></p></div>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index cd8ec9a3191509067dd4dae13e97165a919c231d..1c77b2efd5634e4f17aa9434b97412d583846c2a 100644 (file)
 <li><a href="../logs.html">Apache Günlük Dosyaları</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Günlük girdilerini diske yazmadan önce bellekte tamponlar
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>BufferedLogs Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>2.0.41 ve sonrasında mevcuttur.</td></tr>
+</table>
+    <p><code class="directive">BufferedLogs</code> yönergesi,
+      <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> modülünün çeşitli günlük girdilerini her
+      isteğin hemen ardından tek tek değil, bir bütün halinde diske yazılmak
+      üzere bellekte saklanmasını sağlar. Bu, bazı sistemlerde daha verimli
+      disk erişimi, dolayısıyla daha yüksek başarım sağlayabilir. Sadece
+      sunucu geneli için belirtilebilir, sanal konaklar için ayrı ayrı
+      yapılandırılamaz.</p>
+
+    <div class="note">Bir çökme günlük verisi kaybına sebep olacağından bu yönerge
+      dikkatli kullanılmalıdır.</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Günlük dosyasın ismini ve girdi biçemini belirler.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>CustomLog  <var>dosya</var>|<var>borulu-süreç</var>
+<var>biçem</var>|<var>takma-ad</var>
+[env=[!]<var>ortam-değişkeni</var>]|
+expr=<var>ifade</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p><code class="directive">CustomLog</code> yönergesi istekleri günlüğe kaydetmek
+      için kullanılır. Yönerge ile bir günlük biçemi belirtilebilir ve günlük
+      kaydı isteğin özelliklerine bağlı olarak ortam değişkenleri vasıtasıyla
+      şarta bağlı kılınabilir.</p>
+
+    <p>İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer
+      belirtilebilir:</p>
+
+    <dl>
+      <dt><var>dosya</var></dt>
+      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> yönergesinin
+        değerine göreli bir dosya ismi.</dd>
+
+      <dt><var>borulu-süreç</var></dt>
+      <dd>"<code>|</code>" boru karakteri ile öncelenmiş olarak günlük
+        bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut
+        satırı) Daha fazla bilgi için <a href="../logs.html#piped">borulu
+        günlükler</a>e bakınız.
+
+      <div class="warning"><h3>Güvenlik:</h3>
+      <p>Bir borulu süreç kullanılmışsa, süreç <code class="program"><a href="../programs/httpd.html">httpd</a></code>’yi
+        başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından
+        başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak
+        programın güvenilir olması önemlidir.</p>
+      </div>
+      <div class="warning"><h3>Bilginize</h3>
+        <p>Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı
+          platformlarda bile yapılandırma dosyasında bu amaçla normal bölü
+          çizgilerini kullanmaya özen gösterilmelidir.</p>
+      </div></dd>
+    </dl>
+
+    <p>İkinci argümanda günlüğe ne yazılacağı belirtilir. Ya evvelce
+      <code class="directive"><a href="#logformat">LogFormat</a></code> yönergesi ile
+      tanımlanmış bir <var>takma-ad</var> ya da içeriği <a href="#formats">Günlük Girdilerinin Kişiselleştirilmesi</a> bölümünde
+      açıklanmış bir <var>biçem</var> dizgesi olabilir.</p>
+
+    <p>Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:</p>
+
+    <pre class="prettyprint lang-config"># Biçem dizgesi yerine takma ad içeren CustomLog
+LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
+CustomLog logs/access_log common
+
+# Biçem dizgesinin kendisini içeren CustomLog
+CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"</pre>
+
+
+    <p>Üçüncü argüman isteğe bağlı olup,belli bir isteğin günlüğe kaydedilip
+      kaydedilmeyeceğini belirler. Koşul, sunucu <a href="../env.html">ortamında</a> belli bir değişkenin varlığı veya
+      yokluğu olabilir (bir '<code>env=!<var>isim</var></code>' durumu).
+      İstenirse koşul keyfi bir mantıksal <a href="../expr.html">ifade</a>
+      olarak da belirtilebilir. Eğer koşul sağlanmazsa istek günlüğe
+      kaydedilmez. İfadede bulunan HTTP başlıklarına başvurular bu başlık
+      isimlerinin Vary başlığına eklenmesine sebep olmaz.</p>
+
+    <p>Ortam değişkenleri <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>
+      ve/veya <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modülleri kullanılarak her istek
+      için ayrı ayrı atanabilir. Örneğin, GIF biçemli resimler için yapılan
+      istekleri ana günlük dosyasına değil de başka bir dosyaya kaydetmek
+      isterseniz:</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
+CustomLog gif-requests.log common env=gif-image
+CustomLog nongif-requests.log common env=!gif-image</pre>
+
+
+    <p>Veya eski <code>RefererIgnore</code> yönergesinin davranışını taklit
+      etmek isterseniz:</p>
+
+    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
+CustomLog referer.log referer env=!localreferer</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LogFormat <var>biçem</var>|<var>takma-ad</var>
+[<var>takma-ad</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.</p>
+
+    <p><code class="directive">LogFormat</code> yönergesi iki şekilde kullanılabilir.
+      Tek argüman belirtilebilen ilkinde daha sonra
+      <code class="directive">TransferLog</code> yönergelerinde belirtilen günlüklerde
+      kullanılmak üzere günlük biçemini belirler. Bu günlük biçemi yukarıda
+      açıklanan <a href="#formats"><var>biçem</var></a> belirteçlerinden
+      oluşur. Bu tek argüman yerine aşağıda açıklandığı gibi önceki bir
+      <code class="directive">LogFormat</code> yönergesinde tanımlanmış bir günlük
+      biçemine atıf yapan bir <var>takma-ad</var> da belirtilebilir.</p>
+
+    <p><code class="directive">LogFormat</code> yönergesinin ikinci kullanım şeklinde
+      <var>biçem</var> bir <var>takma-ad</var> için tanımlanır. Bu takma ad
+      daha sonraki <code class="directive">LogFormat</code> veya <code class="directive"><a href="#customlog">CustomLog</a></code> yönergelerinde aynı biçem
+      dizgesini uzun uzadıya yazmamak için <var>takma-ad</var> olarak
+      kullanılır. Bir <code class="directive">LogFormat</code> yönergesi bir takma ad
+      tanımlamaktan <strong>başka bir şey yapmaz</strong>; yani, yaptığı iş
+      sadece bir takma ad tanımlamaktan ibarettir, biçemi uygulamaz veya
+      biçemi öntanımlı hale getirmez. Bu bakımdan sonraki <code class="directive"><a href="#transferlog">TransferLog</a></code> yönergelerini de
+      etkilemeyecektir. Ayrıca, <code class="directive">LogFormat</code> yönergesi bir
+      takma ada başka bir takma ad tanımlamakta da kullanılamaz. Bir takma
+      adın yüzde imi (<code>%</code>) içeremeyeceğine de dikkat ediniz.</p>
+
+    <pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir günlük dosyasının yerini belirtir.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>TransferLog <var>dosya</var>|<var>borulu-süreç</var>
+[<var>takma-ad</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
+</table>
+    <p>Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün
+      kılmaması haricinde <code class="directive"><a href="#customlog">CustomLog</a></code> yönergesi gibidir. Günlük biçemi yerine kendinden
+      önce yer alan bir <code class="directive"><a href="#logformat">LogFormat</a></code> yönergesinde tanımlanan
+      bir takma ad kullanılır. Açıkça bir günlük biçemi takma adı
+      belirtilmedikçe Ortak Günlük Biçemi öntanımlıdır.</p>
+
+    <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
+TransferLog logs/access_log</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">Günlük Girdilerinin Kişiselleştirilmesi</a></h2>
 
       dışında diğer kullanıcılar tarafından yazılabiliyor olması halinde
       güvenliğinizden nasıl feragat etmiş olacağınız <a href="../misc/security_tips.html#serverroot">güvenlik ipuçları</a>
       belgesinde açıklanmıştır.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BufferedLogs" id="BufferedLogs">BufferedLogs</a> <a name="bufferedlogs" id="bufferedlogs">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Günlük girdilerini diske yazmadan önce bellekte tamponlar
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>BufferedLogs On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>BufferedLogs Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>2.0.41 ve sonrasında mevcuttur.</td></tr>
-</table>
-    <p><code class="directive">BufferedLogs</code> yönergesi,
-      <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> modülünün çeşitli günlük girdilerini her
-      isteğin hemen ardından tek tek değil, bir bütün halinde diske yazılmak
-      üzere bellekte saklanmasını sağlar. Bu, bazı sistemlerde daha verimli
-      disk erişimi, dolayısıyla daha yüksek başarım sağlayabilir. Sadece
-      sunucu geneli için belirtilebilir, sanal konaklar için ayrı ayrı
-      yapılandırılamaz.</p>
-
-    <div class="note">Bir çökme günlük verisi kaybına sebep olacağından bu yönerge
-      dikkatli kullanılmalıdır.</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CustomLog" id="CustomLog">CustomLog</a> <a name="customlog" id="customlog">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Günlük dosyasın ismini ve girdi biçemini belirler.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>CustomLog  <var>dosya</var>|<var>borulu-süreç</var>
-<var>biçem</var>|<var>takma-ad</var>
-[env=[!]<var>ortam-değişkeni</var>]|
-expr=<var>ifade</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p><code class="directive">CustomLog</code> yönergesi istekleri günlüğe kaydetmek
-      için kullanılır. Yönerge ile bir günlük biçemi belirtilebilir ve günlük
-      kaydı isteğin özelliklerine bağlı olarak ortam değişkenleri vasıtasıyla
-      şarta bağlı kılınabilir.</p>
-
-    <p>İlk argümanda günlüğün yazılacağı yer belirtilir. İki tür yer
-      belirtilebilir:</p>
-
-    <dl>
-      <dt><var>dosya</var></dt>
-      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> yönergesinin
-        değerine göreli bir dosya ismi.</dd>
-
-      <dt><var>borulu-süreç</var></dt>
-      <dd>"<code>|</code>" boru karakteri ile öncelenmiş olarak günlük
-        bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut
-        satırı) Daha fazla bilgi için <a href="../logs.html#piped">borulu
-        günlükler</a>e bakınız.
-
-      <div class="warning"><h3>Güvenlik:</h3>
-      <p>Bir borulu süreç kullanılmışsa, süreç <code class="program"><a href="../programs/httpd.html">httpd</a></code>’yi
-        başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından
-        başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak
-        programın güvenilir olması önemlidir.</p>
-      </div>
-      <div class="warning"><h3>Bilginize</h3>
-        <p>Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı
-          platformlarda bile yapılandırma dosyasında bu amaçla normal bölü
-          çizgilerini kullanmaya özen gösterilmelidir.</p>
-      </div></dd>
-    </dl>
-
-    <p>İkinci argümanda günlüğe ne yazılacağı belirtilir. Ya evvelce
-      <code class="directive"><a href="#logformat">LogFormat</a></code> yönergesi ile
-      tanımlanmış bir <var>takma-ad</var> ya da içeriği <a href="#formats">Günlük Girdilerinin Kişiselleştirilmesi</a> bölümünde
-      açıklanmış bir <var>biçem</var> dizgesi olabilir.</p>
-
-    <p>Örneğin, aşağıdaki iki yönerge kümesi aynı etkiye sahiptir:</p>
-
-    <pre class="prettyprint lang-config"># Biçem dizgesi yerine takma ad içeren CustomLog
-LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common
-CustomLog logs/access_log common
-
-# Biçem dizgesinin kendisini içeren CustomLog
-CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"</pre>
-
-
-    <p>Üçüncü argüman isteğe bağlı olup,belli bir isteğin günlüğe kaydedilip
-      kaydedilmeyeceğini belirler. Koşul, sunucu <a href="../env.html">ortamında</a> belli bir değişkenin varlığı veya
-      yokluğu olabilir (bir '<code>env=!<var>isim</var></code>' durumu).
-      İstenirse koşul keyfi bir mantıksal <a href="../expr.html">ifade</a>
-      olarak da belirtilebilir. Eğer koşul sağlanmazsa istek günlüğe
-      kaydedilmez. İfadede bulunan HTTP başlıklarına başvurular bu başlık
-      isimlerinin Vary başlığına eklenmesine sebep olmaz.</p>
-
-    <p>Ortam değişkenleri <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code>
-      ve/veya <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> modülleri kullanılarak her istek
-      için ayrı ayrı atanabilir. Örneğin, GIF biçemli resimler için yapılan
-      istekleri ana günlük dosyasına değil de başka bir dosyaya kaydetmek
-      isterseniz:</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf Request_URI \.gif$ gif-image
-CustomLog gif-requests.log common env=gif-image
-CustomLog nongif-requests.log common env=!gif-image</pre>
-
-
-    <p>Veya eski <code>RefererIgnore</code> yönergesinin davranışını taklit
-      etmek isterseniz:</p>
-
-    <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-CustomLog referer.log referer env=!localreferer</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LogFormat" id="LogFormat">LogFormat</a> <a name="logformat" id="logformat">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir günlük dosyasında kullanılmak üzere girdi biçemi tanımlar.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LogFormat <var>biçem</var>|<var>takma-ad</var>
-[<var>takma-ad</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>LogFormat "%h %l %u %t \"%r\" %&gt;s %b"</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>Bu yönerge erişim günlüğü dosyasının girdi biçemini belirler.</p>
-
-    <p><code class="directive">LogFormat</code> yönergesi iki şekilde kullanılabilir.
-      Tek argüman belirtilebilen ilkinde daha sonra
-      <code class="directive">TransferLog</code> yönergelerinde belirtilen günlüklerde
-      kullanılmak üzere günlük biçemini belirler. Bu günlük biçemi yukarıda
-      açıklanan <a href="#formats"><var>biçem</var></a> belirteçlerinden
-      oluşur. Bu tek argüman yerine aşağıda açıklandığı gibi önceki bir
-      <code class="directive">LogFormat</code> yönergesinde tanımlanmış bir günlük
-      biçemine atıf yapan bir <var>takma-ad</var> da belirtilebilir.</p>
-
-    <p><code class="directive">LogFormat</code> yönergesinin ikinci kullanım şeklinde
-      <var>biçem</var> bir <var>takma-ad</var> için tanımlanır. Bu takma ad
-      daha sonraki <code class="directive">LogFormat</code> veya <code class="directive"><a href="#customlog">CustomLog</a></code> yönergelerinde aynı biçem
-      dizgesini uzun uzadıya yazmamak için <var>takma-ad</var> olarak
-      kullanılır. Bir <code class="directive">LogFormat</code> yönergesi bir takma ad
-      tanımlamaktan <strong>başka bir şey yapmaz</strong>; yani, yaptığı iş
-      sadece bir takma ad tanımlamaktan ibarettir, biçemi uygulamaz veya
-      biçemi öntanımlı hale getirmez. Bu bakımdan sonraki <code class="directive"><a href="#transferlog">TransferLog</a></code> yönergelerini de
-      etkilemeyecektir. Ayrıca, <code class="directive">LogFormat</code> yönergesi bir
-      takma ada başka bir takma ad tanımlamakta da kullanılamaz. Bir takma
-      adın yüzde imi (<code>%</code>) içeremeyeceğine de dikkat ediniz.</p>
-
-    <pre class="prettyprint lang-config">LogFormat "%v %h %l %u %t \"%r\" %&gt;s %b" vhost_common</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="TransferLog" id="TransferLog">TransferLog</a> <a name="transferlog" id="transferlog">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir günlük dosyasının yerini belirtir.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>TransferLog <var>dosya</var>|<var>borulu-süreç</var>
-[<var>takma-ad</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Temel</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_config</td></tr>
-</table>
-    <p>Bir günlük biçemi tanımlanmasını ve şarta bağlı günlük kaydını mümkün
-      kılmaması haricinde <code class="directive"><a href="#customlog">CustomLog</a></code> yönergesi gibidir. Günlük biçemi yerine kendinden
-      önce yer alan bir <code class="directive"><a href="#logformat">LogFormat</a></code> yönergesinde tanımlanan
-      bir takma ad kullanılır. Açıkça bir günlük biçemi takma adı
-      belirtilmedikçe Ortak Günlük Biçemi öntanımlıdır.</p>
-
-    <pre class="prettyprint lang-config">LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-agent}i\""
-TransferLog logs/access_log</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 8d617d30f92aa16dd834b6c65818d7f2fd8bf3ce..2c11367454430d6364a8e9f7803f45d689d43a7c 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
-
-    <ol>
-      <li>
-        Log message after request to /foo/* is processed:
-
-        <pre class="prettyprint lang-config">&lt;Location "/foo/"&gt;
-  LogMessage "/foo/ has been requested"
-&lt;/Location&gt;</pre>
-
-      </li>
-
-      <li>
-        Log message if request to /foo/* is processed in a sub-request:
-        <pre class="prettyprint lang-config">&lt;Location "/foo/"&gt;
-  LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ}
-&lt;/Location&gt;</pre>
-
-
-        The default log_transaction hook is not executed for sub-requests,
-        therefore we have to use a different hook.
-      </li>
-
-
-      <li>
-        Log message if an IPv6 client causes a request timeout:
-        <pre class="prettyprint lang-config">LogMessage "IPv6 timeout from %{REMOTE_ADDR}" "expr=-T %{IPV6} &amp;&amp; %{REQUEST_STATUS} = 408"</pre>
-
-        Note the placing of the double quotes for the <code>expr=</code> argument.
-      </li>
-
-      <li>
-        Log the value of the "X-Foo" request environment variable in each
-        stage of the request:
-        <pre class="prettyprint lang-config">&lt;Location "/"&gt;
-  LogMessage "%{reqenv:X-Foo}" hook=all
-&lt;/Location&gt;</pre>
-
-        Together with microsecond time stamps in the error log,
-        <code>hook=all</code> also lets you determine the times spent
-        in the different parts of the request processing.
-      </li>
-
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="LogMessage" id="LogMessage">LogMessage</a> <a name="logmessage" id="logmessage">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Log user-defined message to error log
     headers will not cause the header names to be added to the Vary header.</p>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+
+    <ol>
+      <li>
+        Log message after request to /foo/* is processed:
+
+        <pre class="prettyprint lang-config">&lt;Location "/foo/"&gt;
+  LogMessage "/foo/ has been requested"
+&lt;/Location&gt;</pre>
+
+      </li>
+
+      <li>
+        Log message if request to /foo/* is processed in a sub-request:
+        <pre class="prettyprint lang-config">&lt;Location "/foo/"&gt;
+  LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ}
+&lt;/Location&gt;</pre>
+
+
+        The default log_transaction hook is not executed for sub-requests,
+        therefore we have to use a different hook.
+      </li>
+
+
+      <li>
+        Log message if an IPv6 client causes a request timeout:
+        <pre class="prettyprint lang-config">LogMessage "IPv6 timeout from %{REMOTE_ADDR}" "expr=-T %{IPV6} &amp;&amp; %{REQUEST_STATUS} = 408"</pre>
+
+        Note the placing of the double quotes for the <code>expr=</code> argument.
+      </li>
+
+      <li>
+        Log the value of the "X-Foo" request environment variable in each
+        stage of the request:
+        <pre class="prettyprint lang-config">&lt;Location "/"&gt;
+  LogMessage "%{reqenv:X-Foo}" hook=all
+&lt;/Location&gt;</pre>
+
+        Together with microsecond time stamps in the error log,
+        <code>hook=all</code> also lets you determine the times spent
+        in the different parts of the request processing.
+      </li>
+
+    </ol>
 </div>
 </div>
 <div class="bottomlang">
index 42b7ec2a61d4987b75905e5f78d1141b7f01e886..826448bb04a33562be261e3358848a07c87d9084 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-
-    <ol>
-      <li>
-        Enregistre un message après le traitement d'une requête pour
-       /foo/* :
-
-        <pre class="prettyprint lang-config">&lt;Location /foo/&gt;
-  LogMessage "/foo/ has been requested"
-&lt;/Location&gt;</pre>
-
-      </li>
-
-      <li>
-        Enregistre un message si une requête pour /foo/* est traitée
-       dans une sous-requête :
-        <pre class="prettyprint lang-config">&lt;Location /foo/&gt;
-  LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ}
-&lt;/Location&gt;</pre>
-
-
-        Le branchement (hook) par défaut log_transaction n'est pas
-       exécuté pour les sous-requêtes ; nous devons donc en utiliser un
-       autre.
-      </li>
-
-
-      <li>
-        Enregistre un message si un client IPv6 est à l'origine d'un
-       dépassement de délai pour une requête :
-        <pre class="prettyprint lang-config">LogMessage "IPv6 timeout from %{REMOTE_ADDR}" "expr=-T %{IPV6} &amp;&amp; %{REQUEST_STATUS} = 408"</pre>
-
-        Notez l'emplacement des guillemets pour l'argument
-       <code>expr=</code>.
-      </li>
-
-      <li>
-        Enregistre la valeur de la variable d'environnement de requête
-       "X-Foo" à chaque étape du traitement :
-        <pre class="prettyprint lang-config">&lt;Location /&gt;
-  LogMessage "%{reqenv:X-Foo}" hook=all
-&lt;/Location&gt;</pre>
-
-        En association avec les repères de temps en microsecondes du journal des erreurs,
-       <code>hook=all</code> permet aussi de déterminer la durée d'exécution des
-       différentes phases du traitement de la requête.
-      </li>
-
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="logmessage" id="logmessage">Directive</a> <a name="LogMessage" id="LogMessage">LogMessage</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enregistre des messages personnalisés dans le journal des
@@ -148,6 +96,58 @@ erreurs</td></tr>
     correspondants à l'en-tête Vary.</p>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
+
+    <ol>
+      <li>
+        Enregistre un message après le traitement d'une requête pour
+       /foo/* :
+
+        <pre class="prettyprint lang-config">&lt;Location /foo/&gt;
+  LogMessage "/foo/ has been requested"
+&lt;/Location&gt;</pre>
+
+      </li>
+
+      <li>
+        Enregistre un message si une requête pour /foo/* est traitée
+       dans une sous-requête :
+        <pre class="prettyprint lang-config">&lt;Location /foo/&gt;
+  LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ}
+&lt;/Location&gt;</pre>
+
+
+        Le branchement (hook) par défaut log_transaction n'est pas
+       exécuté pour les sous-requêtes ; nous devons donc en utiliser un
+       autre.
+      </li>
+
+
+      <li>
+        Enregistre un message si un client IPv6 est à l'origine d'un
+       dépassement de délai pour une requête :
+        <pre class="prettyprint lang-config">LogMessage "IPv6 timeout from %{REMOTE_ADDR}" "expr=-T %{IPV6} &amp;&amp; %{REQUEST_STATUS} = 408"</pre>
+
+        Notez l'emplacement des guillemets pour l'argument
+       <code>expr=</code>.
+      </li>
+
+      <li>
+        Enregistre la valeur de la variable d'environnement de requête
+       "X-Foo" à chaque étape du traitement :
+        <pre class="prettyprint lang-config">&lt;Location /&gt;
+  LogMessage "%{reqenv:X-Foo}" hook=all
+&lt;/Location&gt;</pre>
+
+        En association avec les repères de temps en microsecondes du journal des erreurs,
+       <code>hook=all</code> permet aussi de déterminer la durée d'exécution des
+       différentes phases du traitement de la requête.
+      </li>
+
+    </ol>
 </div>
 </div>
 <div class="bottomlang">
index 9c66c0252614dc29f3e077f88cdb377475150cda..1b8f56cce6cf9b16b43e5ef0cd6b3b9f0f4f947c 100644 (file)
@@ -69,6 +69,52 @@ version 2.1</td></tr></table>
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ForensicLog" id="ForensicLog">ForensicLog</a> <a name="forensiclog" id="forensiclog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets filename of the forensic log</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForensicLog <var>filename</var>|<var>pipe</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_forensic</td></tr>
+</table>
+    <p>The <code class="directive">ForensicLog</code> directive is used to
+    log requests to the server for forensic analysis. Each log entry
+    is assigned a unique ID which can be associated with the request
+    using the normal <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>
+    directive. <code class="module"><a href="../mod/mod_log_forensic.html">mod_log_forensic</a></code> creates a token called
+    <code>forensic-id</code>, which can be added to the transfer log
+    using the <code>%{forensic-id}n</code> format string.</p>
+
+    <p>The argument, which specifies the location to which
+    the logs will be written, can take one of the following two
+    types of values:</p>
+
+    <dl>
+      <dt><var>filename</var></dt>
+      <dd>A filename, relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
+
+      <dt><var>pipe</var></dt>
+      <dd>The pipe character "<code>|</code>", followed by the path
+      to a program to receive the log information on its standard
+      input. The program name can be specified relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> directive.
+
+      <div class="warning"><h3>Security:</h3>
+      <p>If a program is used, then it will be run as the user who
+      started <code class="program"><a href="../programs/httpd.html">httpd</a></code>. This will be root if the server was
+      started by root; be sure that the program is secure or switches to a
+      less privileged user.</p>
+      </div>
+
+      <div class="note"><h3>Note</h3>
+        <p>When entering a file path on non-Unix platforms, care should be taken
+        to make sure that only forward slashes are used even though the platform
+        may allow the use of back slashes. In general it is a good idea to always
+        use forward slashes throughout the configuration files.</p>
+      </div></dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">Forensic Log Format</a></h2>
     <p>Each request is logged two times. The first time is <em>before</em> it's
@@ -115,52 +161,6 @@ version 2.1</td></tr></table>
     they should not be readable by anyone except the user that starts the
     server.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ForensicLog" id="ForensicLog">ForensicLog</a> <a name="forensiclog" id="forensiclog">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets filename of the forensic log</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForensicLog <var>filename</var>|<var>pipe</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_forensic</td></tr>
-</table>
-    <p>The <code class="directive">ForensicLog</code> directive is used to
-    log requests to the server for forensic analysis. Each log entry
-    is assigned a unique ID which can be associated with the request
-    using the normal <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code>
-    directive. <code class="module"><a href="../mod/mod_log_forensic.html">mod_log_forensic</a></code> creates a token called
-    <code>forensic-id</code>, which can be added to the transfer log
-    using the <code>%{forensic-id}n</code> format string.</p>
-
-    <p>The argument, which specifies the location to which
-    the logs will be written, can take one of the following two
-    types of values:</p>
-
-    <dl>
-      <dt><var>filename</var></dt>
-      <dd>A filename, relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
-
-      <dt><var>pipe</var></dt>
-      <dd>The pipe character "<code>|</code>", followed by the path
-      to a program to receive the log information on its standard
-      input. The program name can be specified relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> directive.
-
-      <div class="warning"><h3>Security:</h3>
-      <p>If a program is used, then it will be run as the user who
-      started <code class="program"><a href="../programs/httpd.html">httpd</a></code>. This will be root if the server was
-      started by root; be sure that the program is secure or switches to a
-      less privileged user.</p>
-      </div>
-
-      <div class="note"><h3>Note</h3>
-        <p>When entering a file path on non-Unix platforms, care should be taken
-        to make sure that only forward slashes are used even though the platform
-        may allow the use of back slashes. In general it is a good idea to always
-        use forward slashes throughout the configuration files.</p>
-      </div></dd>
-    </dl>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_log_forensic.html" title="English">&nbsp;en&nbsp;</a> |
index 4943af22757515ded8cbb1832aef3ef2a0d5cad5..276d75f964d7e85f07bdab7feef5982f7e9c1a5c 100644 (file)
@@ -76,6 +76,59 @@ d'Apache</a></li>
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="forensiclog" id="forensiclog">Directive</a> <a name="ForensicLog" id="ForensicLog">ForensicLog</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom de fichier du journal légal</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForensicLog <var>nom-fichier</var>|<var>pipe</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_forensic</td></tr>
+</table>
+    <p>La directive <code class="directive">ForensicLog</code> permet de
+    contrôler la journalisation des requêtes à des fins d'analyse
+    légale. Chaque entrée du journal se voit assigner un identifiant
+    unique qui peut être associé à la requête en utilisant la directive
+    <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> habituelle.
+    <code class="module"><a href="../mod/mod_log_forensic.html">mod_log_forensic</a></code> crée un élément nommé
+    <code>forensic-id</code>, qui peut être ajouté au journal standard
+    en utilisant l'élément de format <code>%{forensic-id}n</code>.</p>
+
+    <p>L'argument, qui permet de spécifier l'emplacement vers lequel le
+    journal légal sera écrit, peut contenir les deux types de valeurs
+    suivants :</p>
+
+    <dl>
+      <dt><var>nom-fichier</var></dt>
+      <dd>Un nom de fichier relatif au répertoire défini par la
+      directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
+
+      <dt><var>pipe</var></dt>
+      <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
+      programme qui recevra les informations de la journalisation sur
+      son entrée standard. Le nom du programme peut être relatif au
+      répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
+
+      <div class="warning"><h3>Sécurité :</h3>
+      <p>Si les journaux sont redirigés vers un programme, ce dernier
+      s'exécutera sous l'utilisateur qui a démarré
+      <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
+      a été démarré par root ; vérifiez que le programme est
+      sécurisé ou passe sous le contrôle d'un utilisateur possédant des
+      droits restreints.</p>
+      </div>
+
+      <div class="note"><h3>Note</h3>
+        <p>Lors de la spécification d'un chemin de fichier sur les
+       plate-formes non-Unix, il faut prendre soin de ne pas oublier
+       que seuls les slashes directs doivent être utilisés, même si la
+       plate-forme autorise l'emploi d'anti-slashes. D'une manière
+       générale, c'est une bonne idée que de n'utiliser que des slashes
+       directs dans les fichiers de configuration.</p>
+      </div></dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">Format du journal Forensic</a></h2>
     <p>Chaque requête fait l'objet d'une double journalisation. La
@@ -130,59 +183,6 @@ s
     peuvent contenir des mots de passe) ; ils ne doivent donc être
     lisibles que par l'utilisateur qui démarre le serveur.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="forensiclog" id="forensiclog">Directive</a> <a name="ForensicLog" id="ForensicLog">ForensicLog</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le nom de fichier du journal légal</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForensicLog <var>nom-fichier</var>|<var>pipe</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_log_forensic</td></tr>
-</table>
-    <p>La directive <code class="directive">ForensicLog</code> permet de
-    contrôler la journalisation des requêtes à des fins d'analyse
-    légale. Chaque entrée du journal se voit assigner un identifiant
-    unique qui peut être associé à la requête en utilisant la directive
-    <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> habituelle.
-    <code class="module"><a href="../mod/mod_log_forensic.html">mod_log_forensic</a></code> crée un élément nommé
-    <code>forensic-id</code>, qui peut être ajouté au journal standard
-    en utilisant l'élément de format <code>%{forensic-id}n</code>.</p>
-
-    <p>L'argument, qui permet de spécifier l'emplacement vers lequel le
-    journal légal sera écrit, peut contenir les deux types de valeurs
-    suivants :</p>
-
-    <dl>
-      <dt><var>nom-fichier</var></dt>
-      <dd>Un nom de fichier relatif au répertoire défini par la
-      directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</dd>
-
-      <dt><var>pipe</var></dt>
-      <dd>Le caractère pipe "<code>|</code>", suivi du chemin vers un
-      programme qui recevra les informations de la journalisation sur
-      son entrée standard. Le nom du programme peut être relatif au
-      répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.
-
-      <div class="warning"><h3>Sécurité :</h3>
-      <p>Si les journaux sont redirigés vers un programme, ce dernier
-      s'exécutera sous l'utilisateur qui a démarré
-      <code class="program"><a href="../programs/httpd.html">httpd</a></code>. Ce sera l'utilisateur root si le serveur
-      a été démarré par root ; vérifiez que le programme est
-      sécurisé ou passe sous le contrôle d'un utilisateur possédant des
-      droits restreints.</p>
-      </div>
-
-      <div class="note"><h3>Note</h3>
-        <p>Lors de la spécification d'un chemin de fichier sur les
-       plate-formes non-Unix, il faut prendre soin de ne pas oublier
-       que seuls les slashes directs doivent être utilisés, même si la
-       plate-forme autorise l'emploi d'anti-slashes. D'une manière
-       générale, c'est une bonne idée que de n'utiliser que des slashes
-       directs dans les fichiers de configuration.</p>
-      </div></dd>
-    </dl>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_log_forensic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 80cecdcd87e1b74130ec02ad71b6584404f984ea..85eb32740082a9d9f972dc570ac275489cd98447 100644 (file)
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="formats" id="formats">Forensic ログフォーマット</a></h2>
-    <p>各リクエストは2回ログ収集されます。最初はリクエストが処理される
-    <em>前</em> (つまり、ヘッダを受け取った後) です。2度目のログは
-    リクエストが処理された<em>後</em>、通常のログ収集と同じときに
-    行なわれます。</p>
-
-    <p>各リクエストを識別するために、リクエストには
-    一意なリクエスト ID が割り当てられます。この forensic ID は
-    フォーマット文字列 <code>%{forensic-id}n</code> を使うことで
-    通常の transfer ログにログ収集することもできます。
-    <code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> を使っている場合は、それが生成する
-    ID が使われます。</p>
-
-    <p>最初の行は forensic ID、リクエスト行と受け取ったすべてのヘッダを
-    パイプ文字 (<code>|</code>) で分離してログ収集します。
-    例えば以下のようになります (実際はすべて同じ行になります):</p>
-
-    <div class="example"><p><code>
-        +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif
-        HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11;
-        U; Linux i686; en-US; rv%3a1.6) Gecko/20040216
-        Firefox/0.8|Accept:image/png, <var>etc...</var>
-    </code></p></div>
-
-    <p>最初のプラス文字がこのログは最初のログであることを示します。
-    二番目の行はマイナス文字と ID のみです:</p>
-
-    <div class="example"><p><code>
-      -yQtJf8CoAB4AAFNXBIEAAAAA
-    </code></p></div>
-
-    <p><code>check_forensic</code> スクリプトは引数としてログファイルの名前を
-    取ります。<code>+</code>/<code>-</code> の ID の組を調べ、完了していない
-    リクエストがある場合は警告を発します。</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="security" id="security">セキュリティの問題</a></h2>
-    <p>ログファイルが保存されるディレクトリがサーバを起動したユーザ
-    以外で書き込み可能になっているときにセキュリティが破られる可能性が
-    あることについての詳細は<a href="../misc/security_tips.html#serverroot">セキュリティのこつ</a>を
-    参照してください。</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ForensicLog" id="ForensicLog">ForensicLog</a> <a name="forensiclog" id="forensiclog">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Forensic ログのファイル名を設定する</td></tr>
     </dl>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="formats" id="formats">Forensic ログフォーマット</a></h2>
+    <p>各リクエストは2回ログ収集されます。最初はリクエストが処理される
+    <em>前</em> (つまり、ヘッダを受け取った後) です。2度目のログは
+    リクエストが処理された<em>後</em>、通常のログ収集と同じときに
+    行なわれます。</p>
+
+    <p>各リクエストを識別するために、リクエストには
+    一意なリクエスト ID が割り当てられます。この forensic ID は
+    フォーマット文字列 <code>%{forensic-id}n</code> を使うことで
+    通常の transfer ログにログ収集することもできます。
+    <code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> を使っている場合は、それが生成する
+    ID が使われます。</p>
+
+    <p>最初の行は forensic ID、リクエスト行と受け取ったすべてのヘッダを
+    パイプ文字 (<code>|</code>) で分離してログ収集します。
+    例えば以下のようになります (実際はすべて同じ行になります):</p>
+
+    <div class="example"><p><code>
+        +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif
+        HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11;
+        U; Linux i686; en-US; rv%3a1.6) Gecko/20040216
+        Firefox/0.8|Accept:image/png, <var>etc...</var>
+    </code></p></div>
+
+    <p>最初のプラス文字がこのログは最初のログであることを示します。
+    二番目の行はマイナス文字と ID のみです:</p>
+
+    <div class="example"><p><code>
+      -yQtJf8CoAB4AAFNXBIEAAAAA
+    </code></p></div>
+
+    <p><code>check_forensic</code> スクリプトは引数としてログファイルの名前を
+    取ります。<code>+</code>/<code>-</code> の ID の組を調べ、完了していない
+    リクエストがある場合は警告を発します。</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="security" id="security">セキュリティの問題</a></h2>
+    <p>ログファイルが保存されるディレクトリがサーバを起動したユーザ
+    以外で書き込み可能になっているときにセキュリティが破られる可能性が
+    あることについての詳細は<a href="../misc/security_tips.html#serverroot">セキュリティのこつ</a>を
+    参照してください。</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_log_forensic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 4a8e40695b46155b254bcbdc4d5e23f050cb32f2..171b28cb8ec1bca27f248998ea41bca4fc4fc345 100644 (file)
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ForensicLog" id="ForensicLog">ForensicLog</a> <a name="forensiclog" id="forensiclog">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Adli günlük için dosya ismini belirler.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>ForensicLog <var>dosya-adı</var>|<var>borulu-süreç</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_forensic</td></tr>
+</table>
+    <p><code class="directive">ForensicLog</code> yönergesi adli inceleme için
+      sunucuya yapılan istekleri günlüğe kaydetmekte kullanılır. Her günlük
+      girdisine, normal <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinde kullanılarak istekle
+      ilişkilendirilebilen eşsiz bir kimlik atanır.
+      <code class="module"><a href="../mod/mod_log_forensic.html">mod_log_forensic</a></code> modülü, aktarım günlüğünün biçem
+      dizgesinde <code>%{forensic-id}n</code> şeklinde kullanılmak üzere
+      <code>forensic-id</code> adı verilen bir dizgecik oluşturur.</p>
+
+    <p>Günlüğün yazılacağı yeri belirleyen argüman şu iki değerden birini
+      alabilir:</p>
+
+    <dl>
+      <dt><var>dosya-adı</var></dt>
+      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> yönergesinin
+        değerine göreli bir dosya ismi.</dd>
+
+      <dt><var>borulu-süreç</var></dt>
+      <dd>"<code>|</code>" boru karakteri ile öncelenmiş olarak günlük
+        bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut
+        satırı). Program adının <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> yönergesinin değerine göre belirtildiği
+        varsayılır.
+
+      <div class="warning"><h3>Güvenlik:</h3>
+      <p>Bir borulu süreç kullanılmışsa, süreç <code class="program"><a href="../programs/httpd.html">httpd</a></code>’yi
+        başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından
+        başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak
+        programın güvenilir olması veya daha az yetkili bir kullanıcıya geçiş
+        yapması önemlidir.</p>
+      </div>
+
+      <div class="warning"><h3>Bilginize</h3>
+        <p>Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı
+          platformlarda bile yapılandırma dosyasında bu amaçla normal bölü
+          çizgilerini kullanmaya özen gösterilmelidir.</p>
+      </div></dd>
+    </dl>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="formats" id="formats">Adli Günlük Biçemi</a></h2>
     <p>Her istek günlüğe iki defa kaydedilir. İlki, işlemin başlangıcında
       sunucuyu başlatan kullanıcıdan başkası tarafından okunamaması sağlanmış
       olmalıdır.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ForensicLog" id="ForensicLog">ForensicLog</a> <a name="forensiclog" id="forensiclog">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Adli günlük için dosya ismini belirler.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>ForensicLog <var>dosya-adı</var>|<var>borulu-süreç</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_log_forensic</td></tr>
-</table>
-    <p><code class="directive">ForensicLog</code> yönergesi adli inceleme için
-      sunucuya yapılan istekleri günlüğe kaydetmekte kullanılır. Her günlük
-      girdisine, normal <code class="directive"><a href="../mod/mod_log_config.html#customlog">CustomLog</a></code> yönergesinde kullanılarak istekle
-      ilişkilendirilebilen eşsiz bir kimlik atanır.
-      <code class="module"><a href="../mod/mod_log_forensic.html">mod_log_forensic</a></code> modülü, aktarım günlüğünün biçem
-      dizgesinde <code>%{forensic-id}n</code> şeklinde kullanılmak üzere
-      <code>forensic-id</code> adı verilen bir dizgecik oluşturur.</p>
-
-    <p>Günlüğün yazılacağı yeri belirleyen argüman şu iki değerden birini
-      alabilir:</p>
-
-    <dl>
-      <dt><var>dosya-adı</var></dt>
-      <dd><code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> yönergesinin
-        değerine göreli bir dosya ismi.</dd>
-
-      <dt><var>borulu-süreç</var></dt>
-      <dd>"<code>|</code>" boru karakteri ile öncelenmiş olarak günlük
-        bilgisini standart girdisinden kabul edecek sürecin ismi (veya komut
-        satırı). Program adının <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> yönergesinin değerine göre belirtildiği
-        varsayılır.
-
-      <div class="warning"><h3>Güvenlik:</h3>
-      <p>Bir borulu süreç kullanılmışsa, süreç <code class="program"><a href="../programs/httpd.html">httpd</a></code>’yi
-        başlatan kullanıcı tarafından başlatılacaktır. Sunucu root tarafından
-        başlatılıyorsa bu root olacaktır; bu bakımdan günlük kaydını alacak
-        programın güvenilir olması veya daha az yetkili bir kullanıcıya geçiş
-        yapması önemlidir.</p>
-      </div>
-
-      <div class="warning"><h3>Bilginize</h3>
-        <p>Dosya yolunu belirtirken tersbölü çizgisi kullanılan Unix dışı
-          platformlarda bile yapılandırma dosyasında bu amaçla normal bölü
-          çizgilerini kullanmaya özen gösterilmelidir.</p>
-      </div></dd>
-    </dl>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_log_forensic.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 9f32118b2813230d634cb259a08bb62eccec6cc4..93bc7e0f9b99523f3730737f740a315136173b91 100644 (file)
@@ -95,279 +95,906 @@ trust, as it can be abused to change the internal workings of httpd.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#databases">Database connectivity</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicconf" id="basicconf">Basic Configuration</a></h2>
-
-<p>The basic module loading directive is</p>
+<div class="directive-section"><h2><a name="LuaAuthzProvider" id="LuaAuthzProvider">LuaAuthzProvider</a> <a name="luaauthzprovider" id="luaauthzprovider">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Plug an authorization provider function into <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.3 and later</td></tr>
+</table>
+<p>After a lua function has been registered as authorization provider, it can be used
+with the <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive:</p>
 
-<pre class="prettyprint lang-config">LoadModule lua_module modules/mod_lua.so</pre>
+<pre class="prettyprint lang-config">LuaRoot "/usr/local/apache2/lua"
+LuaAuthzProvider foo authz.lua authz_check_foo
+&lt;Location "/"&gt;
+  Require foo johndoe
+&lt;/Location&gt;</pre>
 
+<pre class="prettyprint lang-lua">require "apache2"
+function authz_check_foo(r, who)
+    if r.user ~= who then return apache2.AUTHZ_DENIED
+    return apache2.AUTHZ_GRANTED
+end</pre>
 
-<p>
-<code>mod_lua</code> provides a handler named <code>lua-script</code>,
-which can be used with a <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> or
-<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> directive:</p>
 
-<pre class="prettyprint lang-config">&lt;Files "*.lua"&gt;
-    SetHandler lua-script
-&lt;/Files&gt;</pre>
 
 
-<p>
-This will cause <code>mod_lua</code> to handle requests for files
-ending in <code>.lua</code> by invoking that file's
-<code>handle</code> function.
-</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaCodeCache" id="LuaCodeCache">LuaCodeCache</a> <a name="luacodecache" id="luacodecache">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure the compiled code cache.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaCodeCache stat|forever|never</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LuaCodeCache stat</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>
+    Specify the behavior of the in-memory code cache. The default
+    is stat, which stats the top level script (not any included
+    ones) each time that file is needed, and reloads it if the
+    modified time indicates it is newer than the one it has
+    already loaded. The other values cause it to keep the file
+    cached forever (don't stat and replace) or to never cache the
+    file.</p>
 
-<p>For more flexibility, see <code class="directive">LuaMapHandler</code>.
-</p>
+    <p>In general stat or forever is good for production, and stat or never
+    for development.</p>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="writinghandlers" id="writinghandlers">Writing Handlers</a></h2>
-<p> In the Apache HTTP Server API, the handler is a specific kind of hook
-responsible for generating the response.  Examples of modules that include a
-handler are <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>,
-and <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.</p>
+    <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaCodeCache stat
+LuaCodeCache forever
+LuaCodeCache never</pre>
+</div>
 
-<p><code>mod_lua</code> always looks to invoke a Lua function for the handler, rather than
-just evaluating a script body CGI style. A handler function looks
-something like this:</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookAccessChecker" id="LuaHookAccessChecker">LuaHookAccessChecker</a> <a name="luahookaccesschecker" id="luahookaccesschecker">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the access_checker phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookAccessChecker  /path/to/lua/script.lua  hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
+</table>
+<p>Add your hook to the access_checker phase.  An access checker
+hook function usually returns OK, DECLINED, or HTTP_FORBIDDEN.</p>
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   control when this script runs relative to other modules.</p></div>
 
-<pre class="prettyprint lang-lua">
-<strong>example.lua</strong><br />
--- example handler
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookAuthChecker" id="LuaHookAuthChecker">LuaHookAuthChecker</a> <a name="luahookauthchecker" id="luahookauthchecker">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the auth_checker phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookAuthChecker  /path/to/lua/script.lua hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
+</table>
+<p>Invoke a lua function in the auth_checker phase of processing
+a request.  This can be used to implement arbitrary authentication
+and authorization checking.  A very simple example:
+</p>
+<pre class="prettyprint lang-lua">require 'apache2'
 
-require "string"
+-- fake authcheck hook
+-- If request has no auth info, set the response header and
+-- return a 401 to ask the browser for basic auth info.
+-- If request has auth info, don't actually look at it, just
+-- pretend we got userid 'foo' and validated it.
+-- Then check if the userid is 'foo' and accept the request.
+function authcheck_hook(r)
 
---[[
-     This is the default method name for Lua handlers, see the optional
-     function-name in the LuaMapHandler directive to choose a different
-     entry point.
---]]
-function handle(r)
-    r.content_type = "text/plain"
+   -- look for auth info
+   auth = r.headers_in['Authorization']
+   if auth ~= nil then
+     -- fake the user
+     r.user = 'foo'
+   end
 
-    if r.method == 'GET' then
-        r:puts("Hello Lua World!\n")
-        for k, v in pairs( r:parseargs() ) do
-            r:puts( string.format("%s: %s\n", k, v) )
-        end
-    elseif r.method == 'POST' then
-        r:puts("Hello Lua World!\n")
-        for k, v in pairs( r:parsebody() ) do
-            r:puts( string.format("%s: %s\n", k, v) )
-        end
-    elseif r.method == 'PUT' then
--- use our own Error contents
-        r:puts("Unsupported HTTP method " .. r.method)
-        r.status = 405
-        return apache2.ok
-    else
--- use the ErrorDocument
-        return 501
-    end
-    return apache2.OK
+   if r.user == nil then
+      r:debug("authcheck: user is nil, returning 401")
+      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
+      return 401
+   elseif r.user == "foo" then
+      r:debug('user foo: OK')
+   else
+      r:debug("authcheck: user='" .. r.user .. "'")
+      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
+      return 401
+   end
+   return apache2.OK
 end</pre>
 
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   control when this script runs relative to other modules.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookCheckUserID" id="LuaHookCheckUserID">LuaHookCheckUserID</a> <a name="luahookcheckuserid" id="luahookcheckuserid">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the check_user_id phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookCheckUserID  /path/to/lua/script.lua hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
+</table><p>...</p>
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   control when this script runs relative to other modules.</p></div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookFixups" id="LuaHookFixups">LuaHookFixups</a> <a name="luahookfixups" id="luahookfixups">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the fixups phase of a request
+processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookFixups  /path/to/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
 <p>
-This handler function just prints out the uri or form encoded
-arguments to a plaintext page.
+    Just like LuaHookTranslateName, but executed at the fixups phase
 </p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a> <a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the insert_filter phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookInsertFilter  /path/to/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>Not Yet Implemented</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookLog" id="LuaHookLog">LuaHookLog</a> <a name="luahooklog" id="luahooklog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the access log phase of a request
+processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookLog  /path/to/lua/script.lua log_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
 <p>
-This means (and in fact encourages) that you can have multiple
-handlers (or hooks, or filters) in the same script.
+    This simple logging hook allows you to run a function when httpd enters the 
+    logging phase of a request. With it, you can append data to your own logs, 
+    manipulate data before the regular log is written, or prevent a log entry 
+    from being created. To prevent the usual logging from happening, simply return
+    <code>apache2.DONE</code> in your logging handler, otherwise return 
+    <code>apache2.OK</code> to tell httpd to log as normal.
 </p>
+<p>Example:</p>
+<pre class="prettyprint lang-config">LuaHookLog "/path/to/script.lua" logger</pre>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="writingauthzproviders" id="writingauthzproviders">Writing Authorization Providers</a></h2>
+<pre class="prettyprint lang-lua">-- /path/to/script.lua --
+function logger(r)
+    -- flip a coin:
+    -- If 1, then we write to our own Lua log and tell httpd not to log
+    -- in the main log.
+    -- If 2, then we just sanitize the output a bit and tell httpd to 
+    -- log the sanitized bits.
 
+    if math.random(1,2) == 1 then
+        -- Log stuff ourselves and don't log in the regular log
+        local f = io.open("/foo/secret.log", "a")
+        if f then
+            f:write("Something secret happened at " .. r.uri .. "\n")
+            f:close()
+        end
+        return apache2.DONE -- Tell httpd not to use the regular logging functions
+    else
+        r.uri = r.uri:gsub("somesecretstuff", "") -- sanitize the URI
+        return apache2.OK -- tell httpd to log it.
+    end
+end</pre>
 
-<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides a high-level interface to
-authorization that is much easier to use than using into the relevant
-hooks directly. The first argument to the
-<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive gives
-the name of the responsible authorization provider. For any
-<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> line,
-<code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> will call the authorization provider
-of the given name, passing the rest of the line as parameters. The
-provider will then check authorization and pass the result as return
-value.</p>
-
-<p>The authz provider is normally called before authentication. If it needs to
-know the authenticated user name (or if the user will be authenticated at
-all), the provider must return <code>apache2.AUTHZ_DENIED_NO_USER</code>.
-This will cause authentication to proceed and the authz provider to be
-called a second time.</p>
 
-<p>The following authz provider function takes two arguments, one ip
-address and one user name. It will allow access from the given ip address
-without authentication, or if the authenticated user matches the second
-argument:</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a> <a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the map_to_storage phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookMapToStorage  /path/to/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Like <code class="directive">LuaHookTranslateName</code> but executed at the 
+    map-to-storage phase of a request. Modules like mod_cache run at this phase,
+    which makes for an interesting example on what to do here:</p>
+    <pre class="prettyprint lang-config">LuaHookMapToStorage "/path/to/lua/script.lua" check_cache</pre>
 
-<pre class="prettyprint lang-lua">
-<strong>authz_provider.lua</strong><br />
+    <pre class="prettyprint lang-lua">require"apache2"
+cached_files = {}
 
-require 'apache2'
+function read_file(filename) 
+    local input = io.open(filename, "r")
+    if input then
+        local data = input:read("*a")
+        cached_files[filename] = data
+        file = cached_files[filename]
+        input:close()
+    end
+    return cached_files[filename]
+end
 
-function authz_check_foo(r, ip, user)
-    if r.useragent_ip == ip then
-        return apache2.AUTHZ_GRANTED
-    elseif r.user == nil then
-        return apache2.AUTHZ_DENIED_NO_USER
-    elseif r.user == user then
-        return apache2.AUTHZ_GRANTED
-    else
-        return apache2.AUTHZ_DENIED
+function check_cache(r)
+    if r.filename:match("%.png$") then -- Only match PNG files
+        local file = cached_files[r.filename] -- Check cache entries
+        if not file then
+            file = read_file(r.filename)  -- Read file into cache
+        end
+        if file then -- If file exists, write it out
+            r.status = 200
+            r:write(file)
+            r:info(("Sent %s to client from cache"):format(r.filename))
+            return apache2.DONE -- skip default handler for PNG files
+        end
     end
+    return apache2.DECLINED -- If we had nothing to do, let others serve this.
 end</pre>
 
 
-<p>The following configuration registers this function as provider
-<code>foo</code> and configures it for URL <code>/</code>:</p>
-<pre class="prettyprint lang-config">LuaAuthzProvider foo authz_provider.lua authz_check_foo
-&lt;Location "/"&gt;
-  Require foo 10.1.2.3 john_doe
-&lt;/Location&gt;</pre>
-
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="writinghooks" id="writinghooks">Writing Hooks</a></h2>
-
-<p>Hook functions are how modules (and Lua scripts) participate in the
-processing of requests. Each type of hook exposed by the server exists for
-a specific purpose, such as mapping requests to the file system,
-performing access control, or setting mime types:</p>
-
-<table class="bordered"><tr class="header">
-        <th>Hook phase</th>
-        <th>mod_lua directive</th>
-        <th>Description</th>
-    </tr>
-<tr>
-        <td>Quick handler</td>
-        <td><code class="directive"><a href="#luaquickhandler">LuaQuickHandler</a></code></td>
-        <td>This is the first hook that will be called after a request has 
-            been mapped to a host or virtual host</td>
-    </tr>
-<tr class="odd">
-        <td>Translate name</td>
-        <td><code class="directive"><a href="#luahooktranslatename">LuaHookTranslateName</a></code></td>
-        <td>This phase translates the requested URI into a filename on the 
-            system. Modules such as <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> and
-            <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> operate in this phase.</td>
-    </tr>
-<tr>
-        <td>Map to storage</td>
-        <td><code class="directive"><a href="#luahookmaptostorage">LuaHookMapToStorage</a></code></td>
-        <td>This phase maps files to their physical, cached or external/proxied storage. 
-            It can be used by proxy or caching modules</td>
-    </tr>
-<tr class="odd">
-        <td>Check Access</td>
-        <td><code class="directive"><a href="#luahookaccesschecker">LuaHookAccessChecker</a></code></td>
-        <td>This phase checks whether a client has access to a resource. This 
-            phase is run before the user is authenticated, so beware.
-        </td>
-    </tr>
-<tr>
-        <td>Check User ID</td>
-        <td><code class="directive"><a href="#luahookcheckuserid">LuaHookCheckUserID</a></code></td>
-        <td>This phase it used to check the negotiated user ID</td>
-    </tr>
-<tr class="odd">
-        <td>Check Authorization</td>
-        <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code> or 
-            <code class="directive"><a href="#luaauthzprovider">LuaAuthzProvider</a></code></td>
-        <td>This phase authorizes a user based on the negotiated credentials, such as 
-            user ID, client certificate etc.
-        </td>
-    </tr>
-<tr>
-        <td>Check Type</td>
-        <td><code class="directive"><a href="#luahooktypechecker">LuaHookTypeChecker</a></code></td>
-        <td>This phase checks the requested file and assigns a content type and 
-            a handler to it</td>
-    </tr>
-<tr class="odd">
-        <td>Fixups</td>
-        <td><code class="directive"><a href="#luahookfixups">LuaHookFixups</a></code></td>
-        <td>This is the final "fix anything" phase before the content handlers 
-            are run. Any last-minute changes to the request should be made here.</td>
-    </tr>
-<tr>
-        <td>Content handler</td>
-        <td>fx. <code>.lua</code> files or through <code class="directive"><a href="#luamaphandler">LuaMapHandler</a></code></td>
-        <td>This is where the content is handled. Files are read, parsed, some are run, 
-            and the result is sent to the client</td>
-    </tr>
-<tr class="odd">
-        <td>Logging</td>
-        <td><code class="directive"><a href="#luahooklog">LuaHookLog</a></code></td>
-        <td>Once a request has been handled, it enters several logging phases, 
-            which logs the request in either the error or access log. Mod_lua
-            is able to hook into the start of this and control logging output.</td>
-    </tr>
-</table>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookTranslateName" id="LuaHookTranslateName">LuaHookTranslateName</a> <a name="luahooktranslatename" id="luahooktranslatename">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the translate name phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookTranslateName  /path/to/lua/script.lua  hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
+</table><p>
+    Add a hook (at APR_HOOK_MIDDLE) to the translate name phase of
+    request processing. The hook function receives a single
+    argument, the request_rec, and should return a status code,
+    which is either an HTTP error code, or the constants defined
+    in the apache2 module: apache2.OK, apache2.DECLINED, or
+    apache2.DONE. </p>
 
-<p>Hook functions are passed the request object as their only argument 
-(except for LuaAuthzProvider, which also gets passed the arguments from 
-the Require directive).
-They can return any value, depending on the hook, but most commonly
-they'll return OK, DONE, or DECLINED, which you can write in Lua as
-<code>apache2.OK</code>, <code>apache2.DONE</code>, or
-<code>apache2.DECLINED</code>, or else an HTTP status code.</p>
+    <p>For those new to hooks, basically each hook will be invoked
+    until one of them returns apache2.OK. If your hook doesn't
+    want to do the translation it should just return
+    apache2.DECLINED. If the request should stop processing, then
+    return apache2.DONE.</p>
 
+    <p>Example:</p>
 
-<pre class="prettyprint lang-lua">
-<strong>translate_name.lua</strong><br />
--- example hook that rewrites the URI to a filesystem path.
+<pre class="prettyprint lang-config"># httpd.conf
+LuaHookTranslateName "/scripts/conf/hooks.lua" silly_mapper</pre>
 
-require 'apache2'
 
-function translate_name(r)
-    if r.uri == "/translate-name" then
-        r.filename = r.document_root .. "/find_me.txt"
+<pre class="prettyprint lang-lua">-- /scripts/conf/hooks.lua --
+require "apache2"
+function silly_mapper(r)
+    if r.uri == "/" then
+        r.filename = "/var/www/home.lua"
         return apache2.OK
+    else
+        return apache2.DECLINED
     end
-    -- we don't care about this URL, give another module a chance
-    return apache2.DECLINED
 end</pre>
 
 
+   <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, or htaccess
+   context.</p></div>
 
-<pre class="prettyprint lang-lua">
-<strong>translate_name2.lua</strong><br />
---[[ example hook that rewrites one URI to another URI. It returns a
-     apache2.DECLINED to give other URL mappers a chance to work on the
-     substitution, including the core translate_name hook which maps based
-     on the DocumentRoot.
+   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
+   control when this script runs relative to other modules.</p></div>
 
-     Note: Use the early/late flags in the directive to make it run before
-           or after mod_alias.
---]]
 
-require 'apache2'
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a> <a name="luahooktypechecker" id="luahooktypechecker">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the type_checker phase of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookTypeChecker  /path/to/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>
+    This directive provides a hook for the type_checker phase of the request processing. 
+    This phase is where requests are assigned a content type and a handler, and thus can 
+    be used to modify the type and handler based on input:
+    </p>
+    <pre class="prettyprint lang-config">LuaHookTypeChecker "/path/to/lua/script.lua" type_checker</pre>
+
+    <pre class="prettyprint lang-lua">    function type_checker(r)
+        if r.uri:match("%.to_gif$") then -- match foo.png.to_gif
+            r.content_type = "image/gif" -- assign it the image/gif type
+            r.handler = "gifWizard"      -- tell the gifWizard module to handle this
+            r.filename = r.uri:gsub("%.to_gif$", "") -- fix the filename requested
+            return apache2.OK
+        end
 
-function translate_name(r)
-    if r.uri == "/translate-name" then
-        r.uri = "/find_me.txt"
         return apache2.DECLINED
-    end
-    return apache2.DECLINED
-end</pre>
+    end</pre>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="datastructures" id="datastructures">Data Structures</a></h2>
 
-<dl>
-<dt>request_rec</dt>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaInherit" id="LuaInherit">LuaInherit</a> <a name="luainherit" id="luainherit">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls how parent configuration sections are merged into children</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaInherit none|parent-first|parent-last</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LuaInherit parent-first</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.0 and later</td></tr>
+</table><p>By default, if LuaHook* directives are used in overlapping
+    Directory or Location configuration sections, the scripts defined in the
+    more specific section are run <em>after</em> those defined in the more
+    generic section (LuaInherit parent-first).  You can reverse this order, or
+    make the parent context not apply at all.</p>
+    
+    <p> In previous 2.3.x releases, the default was effectively to ignore LuaHook*
+    directives from parent configuration sections.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaInputFilter" id="LuaInputFilter">LuaInputFilter</a> <a name="luainputfilter" id="luainputfilter">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a Lua function for content input filtering</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaInputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.5 and later</td></tr>
+</table>
+<p>Provides a means of adding a Lua function as an input filter. 
+As with output filters, input filters work as coroutines, 
+first yielding before buffers are sent, then yielding whenever 
+a bucket needs to be passed down the chain, and finally (optionally) 
+yielding anything that needs to be appended to the input data. The 
+global variable <code>bucket</code> holds the buckets as they are passed 
+onto the Lua script:
+</p>
+
+<pre class="prettyprint lang-config">LuaInputFilter myInputFilter "/www/filter.lua" input_filter
+&lt;Files "*.lua"&gt;
+  SetInputFilter myInputFilter
+&lt;/Files&gt;</pre>
+
+<pre class="prettyprint lang-lua">--[[
+    Example input filter that converts all POST data to uppercase.
+]]--
+function input_filter(r)
+    print("luaInputFilter called") -- debug print
+    coroutine.yield() -- Yield and wait for buckets
+    while bucket do -- For each bucket, do...
+        local output = string.upper(bucket) -- Convert all POST data to uppercase
+        coroutine.yield(output) -- Send converted data down the chain
+    end
+    -- No more buckets available.
+    coroutine.yield("&amp;filterSignature=1234") -- Append signature at the end
+end</pre>
+
+<p>
+The input filter supports denying/skipping a filter if it is deemed unwanted:
+</p>
+<pre class="prettyprint lang-lua">function input_filter(r)
+    if not good then
+        return -- Simply deny filtering, passing on the original content instead
+    end
+    coroutine.yield() -- wait for buckets
+    ... -- insert filter stuff here
+end</pre>
+
+<p>
+See "<a href="#modifying_buckets">Modifying contents with Lua 
+filters</a>" for more information.
+</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaMapHandler" id="LuaMapHandler">LuaMapHandler</a> <a name="luamaphandler" id="luamaphandler">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Map a path to a lua handler</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaMapHandler uri-pattern /path/to/lua/script.lua [function-name]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>This directive matches a uri pattern to invoke a specific
+    handler function in a specific file. It uses PCRE regular
+    expressions to match the uri, and supports interpolating
+    match groups into both the file path and the function name. 
+    Be careful writing your regular expressions to avoid security
+    issues.</p>
+   <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaMapHandler "/(\w+)/(\w+)" "/scripts/$1.lua" "handle_$2"</pre>
+</div>
+        <p>This would match uri's such as /photos/show?id=9
+        to the file /scripts/photos.lua and invoke the
+        handler function handle_show on the lua vm after
+        loading that file.</p>
+
+<pre class="prettyprint lang-config">LuaMapHandler "/bingo" "/scripts/wombat.lua"</pre>
+
+        <p>This would invoke the "handle" function, which
+        is the default if no specific function name is
+        provided.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaOutputFilter" id="LuaOutputFilter">LuaOutputFilter</a> <a name="luaoutputfilter" id="luaoutputfilter">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a Lua function for content output filtering</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaOutputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.5 and later</td></tr>
+</table>
+<p>Provides a means of adding a Lua function as an output filter. 
+As with input filters, output filters work as coroutines, 
+first yielding before buffers are sent, then yielding whenever 
+a bucket needs to be passed down the chain, and finally (optionally) 
+yielding anything that needs to be appended to the input data. The 
+global variable <code>bucket</code> holds the buckets as they are passed 
+onto the Lua script:
+</p>
+
+<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter "/www/filter.lua" output_filter
+&lt;Files "*.lua"&gt;
+  SetOutputFilter myOutputFilter
+&lt;/Files&gt;</pre>
+
+<pre class="prettyprint lang-lua">--[[
+    Example output filter that escapes all HTML entities in the output
+]]--
+function output_filter(r)
+    coroutine.yield("(Handled by myOutputFilter)&lt;br/&gt;\n") -- Prepend some data to the output,
+                                                          -- yield and wait for buckets.
+    while bucket do -- For each bucket, do...
+        local output = r:escape_html(bucket) -- Escape all output
+        coroutine.yield(output) -- Send converted data down the chain
+    end
+    -- No more buckets available.
+end</pre>
+
+<p>
+As with the input filter, the output filter supports denying/skipping a filter 
+if it is deemed unwanted:
+</p>
+<pre class="prettyprint lang-lua">function output_filter(r)
+    if not r.content_type:match("text/html") then
+        return -- Simply deny filtering, passing on the original content instead
+    end
+    coroutine.yield() -- wait for buckets
+    ... -- insert filter stuff here
+end</pre>
+
+<div class="note"><h3>Lua filters with <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></h3>
+<p> When a Lua filter is used as the underlying provider via the 
+<code class="directive"><a href="../mod/mod_filter.html#filterprovider">FilterProvider</a></code> directive, filtering 
+will only work when the <var>filter-name</var> is identical to the <var>provider-name</var>.
+</p> </div>
+
+<p>
+See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more 
+information.
+</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaPackageCPath" id="LuaPackageCPath">LuaPackageCPath</a> <a name="luapackagecpath" id="luapackagecpath">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add a directory to lua's package.cpath</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaPackageCPath /path/to/include/?.soa</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Add a path to lua's shared library search path. Follows the same
+    conventions as lua. This just munges the package.cpath in the
+    lua vms.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaPackagePath" id="LuaPackagePath">LuaPackagePath</a> <a name="luapackagepath" id="luapackagepath">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add a directory to lua's package.path</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaPackagePath /path/to/include/?.lua</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>Add a path to lua's module search path. Follows the same
+    conventions as lua. This just munges the package.path in the
+    lua vms.</p>
+
+    <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaPackagePath "/scripts/lib/?.lua"
+LuaPackagePath "/scripts/lib/?/init.lua"</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaQuickHandler" id="LuaQuickHandler">LuaQuickHandler</a> <a name="luaquickhandler" id="luaquickhandler">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the quick handler of request processing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaQuickHandler /path/to/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>
+    This phase is run immediately after the request has been mapped to a virtal host, 
+    and can be used to either do some request processing before the other phases kick 
+    in, or to serve a request without the need to translate, map to storage et cetera. 
+    As this phase is run before anything else, directives such as <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> or <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> are void in this phase, just as 
+    URIs have not been properly parsed yet.
+    </p>
+   <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, or htaccess
+   context.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaRoot" id="LuaRoot">LuaRoot</a> <a name="luaroot" id="luaroot">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify the base path for resolving relative paths for mod_lua directives</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaRoot /path/to/a/directory</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Specify the base path which will be used to evaluate all
+    relative paths within mod_lua. If not specified they
+    will be resolved relative to the current working directory,
+    which may not always work well for a server.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LuaScope" id="LuaScope">LuaScope</a> <a name="luascope" id="luascope">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>One of once, request, conn, thread -- default is once</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaScope once|request|conn|thread|server [min] [max]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LuaScope once</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Specify the life cycle scope of the Lua interpreter which will
+    be used by handlers in this "Directory." The default is "once"</p>
+
+   <dl>
+    <dt>once:</dt> <dd>use the interpreter once and throw it away.</dd>
+
+    <dt>request:</dt> <dd>use the interpreter to handle anything based on
+             the same file within this request, which is also
+             request scoped.</dd>
+
+    <dt>conn:</dt> <dd>Same as request but attached to the connection_rec</dd>
+
+    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread 
+            handling the request (only available with threaded MPMs).</dd>
+
+    <dt>server:</dt>  <dd>This one is different than others because the
+            server scope is quite long lived, and multiple threads
+            will have the same server_rec. To accommodate this,
+            server scoped Lua states are stored in an apr
+            resource list. The <code>min</code> and <code>max</code> arguments 
+            specify the minimum and maximum number of Lua states to keep in the 
+            pool.</dd>
+   </dl>
+    <p>
+    Generally speaking, the <code>thread</code> and <code>server</code> scopes 
+    execute roughly 2-3 times faster than the rest, because they don't have to 
+    spawn new Lua states on every request (especially with the event MPM, as 
+    even keepalive requests will use a new thread for each request). If you are 
+    satisfied that your scripts will not have problems reusing a state, then 
+    the <code>thread</code> or <code>server</code> scopes should be used for 
+    maximum performance. While the <code>thread</code> scope will provide the 
+    fastest responses, the <code>server</code> scope will use less memory, as 
+    states are pooled, allowing f.x. 1000 threads to share only 100 Lua states, 
+    thus using only 10% of the memory required by the <code>thread</code> scope.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicconf" id="basicconf">Basic Configuration</a></h2>
+
+<p>The basic module loading directive is</p>
+
+<pre class="prettyprint lang-config">LoadModule lua_module modules/mod_lua.so</pre>
+
+
+<p>
+<code>mod_lua</code> provides a handler named <code>lua-script</code>,
+which can be used with a <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> or
+<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> directive:</p>
+
+<pre class="prettyprint lang-config">&lt;Files "*.lua"&gt;
+    SetHandler lua-script
+&lt;/Files&gt;</pre>
+
+
+<p>
+This will cause <code>mod_lua</code> to handle requests for files
+ending in <code>.lua</code> by invoking that file's
+<code>handle</code> function.
+</p>
+
+<p>For more flexibility, see <code class="directive">LuaMapHandler</code>.
+</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="writinghandlers" id="writinghandlers">Writing Handlers</a></h2>
+<p> In the Apache HTTP Server API, the handler is a specific kind of hook
+responsible for generating the response.  Examples of modules that include a
+handler are <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code>,
+and <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.</p>
+
+<p><code>mod_lua</code> always looks to invoke a Lua function for the handler, rather than
+just evaluating a script body CGI style. A handler function looks
+something like this:</p>
+
+
+<pre class="prettyprint lang-lua">
+<strong>example.lua</strong><br />
+-- example handler
+
+require "string"
+
+--[[
+     This is the default method name for Lua handlers, see the optional
+     function-name in the LuaMapHandler directive to choose a different
+     entry point.
+--]]
+function handle(r)
+    r.content_type = "text/plain"
+
+    if r.method == 'GET' then
+        r:puts("Hello Lua World!\n")
+        for k, v in pairs( r:parseargs() ) do
+            r:puts( string.format("%s: %s\n", k, v) )
+        end
+    elseif r.method == 'POST' then
+        r:puts("Hello Lua World!\n")
+        for k, v in pairs( r:parsebody() ) do
+            r:puts( string.format("%s: %s\n", k, v) )
+        end
+    elseif r.method == 'PUT' then
+-- use our own Error contents
+        r:puts("Unsupported HTTP method " .. r.method)
+        r.status = 405
+        return apache2.ok
+    else
+-- use the ErrorDocument
+        return 501
+    end
+    return apache2.OK
+end</pre>
+
+
+<p>
+This handler function just prints out the uri or form encoded
+arguments to a plaintext page.
+</p>
+
+<p>
+This means (and in fact encourages) that you can have multiple
+handlers (or hooks, or filters) in the same script.
+</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="writingauthzproviders" id="writingauthzproviders">Writing Authorization Providers</a></h2>
+
+
+<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> provides a high-level interface to
+authorization that is much easier to use than using into the relevant
+hooks directly. The first argument to the
+<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive gives
+the name of the responsible authorization provider. For any
+<code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> line,
+<code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> will call the authorization provider
+of the given name, passing the rest of the line as parameters. The
+provider will then check authorization and pass the result as return
+value.</p>
+
+<p>The authz provider is normally called before authentication. If it needs to
+know the authenticated user name (or if the user will be authenticated at
+all), the provider must return <code>apache2.AUTHZ_DENIED_NO_USER</code>.
+This will cause authentication to proceed and the authz provider to be
+called a second time.</p>
+
+<p>The following authz provider function takes two arguments, one ip
+address and one user name. It will allow access from the given ip address
+without authentication, or if the authenticated user matches the second
+argument:</p>
+
+<pre class="prettyprint lang-lua">
+<strong>authz_provider.lua</strong><br />
+
+require 'apache2'
+
+function authz_check_foo(r, ip, user)
+    if r.useragent_ip == ip then
+        return apache2.AUTHZ_GRANTED
+    elseif r.user == nil then
+        return apache2.AUTHZ_DENIED_NO_USER
+    elseif r.user == user then
+        return apache2.AUTHZ_GRANTED
+    else
+        return apache2.AUTHZ_DENIED
+    end
+end</pre>
+
+
+<p>The following configuration registers this function as provider
+<code>foo</code> and configures it for URL <code>/</code>:</p>
+<pre class="prettyprint lang-config">LuaAuthzProvider foo authz_provider.lua authz_check_foo
+&lt;Location "/"&gt;
+  Require foo 10.1.2.3 john_doe
+&lt;/Location&gt;</pre>
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="writinghooks" id="writinghooks">Writing Hooks</a></h2>
+
+<p>Hook functions are how modules (and Lua scripts) participate in the
+processing of requests. Each type of hook exposed by the server exists for
+a specific purpose, such as mapping requests to the file system,
+performing access control, or setting mime types:</p>
+
+<table class="bordered"><tr class="header">
+        <th>Hook phase</th>
+        <th>mod_lua directive</th>
+        <th>Description</th>
+    </tr>
+<tr>
+        <td>Quick handler</td>
+        <td><code class="directive"><a href="#luaquickhandler">LuaQuickHandler</a></code></td>
+        <td>This is the first hook that will be called after a request has 
+            been mapped to a host or virtual host</td>
+    </tr>
+<tr class="odd">
+        <td>Translate name</td>
+        <td><code class="directive"><a href="#luahooktranslatename">LuaHookTranslateName</a></code></td>
+        <td>This phase translates the requested URI into a filename on the 
+            system. Modules such as <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> and
+            <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> operate in this phase.</td>
+    </tr>
+<tr>
+        <td>Map to storage</td>
+        <td><code class="directive"><a href="#luahookmaptostorage">LuaHookMapToStorage</a></code></td>
+        <td>This phase maps files to their physical, cached or external/proxied storage. 
+            It can be used by proxy or caching modules</td>
+    </tr>
+<tr class="odd">
+        <td>Check Access</td>
+        <td><code class="directive"><a href="#luahookaccesschecker">LuaHookAccessChecker</a></code></td>
+        <td>This phase checks whether a client has access to a resource. This 
+            phase is run before the user is authenticated, so beware.
+        </td>
+    </tr>
+<tr>
+        <td>Check User ID</td>
+        <td><code class="directive"><a href="#luahookcheckuserid">LuaHookCheckUserID</a></code></td>
+        <td>This phase it used to check the negotiated user ID</td>
+    </tr>
+<tr class="odd">
+        <td>Check Authorization</td>
+        <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code> or 
+            <code class="directive"><a href="#luaauthzprovider">LuaAuthzProvider</a></code></td>
+        <td>This phase authorizes a user based on the negotiated credentials, such as 
+            user ID, client certificate etc.
+        </td>
+    </tr>
+<tr>
+        <td>Check Type</td>
+        <td><code class="directive"><a href="#luahooktypechecker">LuaHookTypeChecker</a></code></td>
+        <td>This phase checks the requested file and assigns a content type and 
+            a handler to it</td>
+    </tr>
+<tr class="odd">
+        <td>Fixups</td>
+        <td><code class="directive"><a href="#luahookfixups">LuaHookFixups</a></code></td>
+        <td>This is the final "fix anything" phase before the content handlers 
+            are run. Any last-minute changes to the request should be made here.</td>
+    </tr>
+<tr>
+        <td>Content handler</td>
+        <td>fx. <code>.lua</code> files or through <code class="directive"><a href="#luamaphandler">LuaMapHandler</a></code></td>
+        <td>This is where the content is handled. Files are read, parsed, some are run, 
+            and the result is sent to the client</td>
+    </tr>
+<tr class="odd">
+        <td>Logging</td>
+        <td><code class="directive"><a href="#luahooklog">LuaHookLog</a></code></td>
+        <td>Once a request has been handled, it enters several logging phases, 
+            which logs the request in either the error or access log. Mod_lua
+            is able to hook into the start of this and control logging output.</td>
+    </tr>
+</table>
+
+<p>Hook functions are passed the request object as their only argument 
+(except for LuaAuthzProvider, which also gets passed the arguments from 
+the Require directive).
+They can return any value, depending on the hook, but most commonly
+they'll return OK, DONE, or DECLINED, which you can write in Lua as
+<code>apache2.OK</code>, <code>apache2.DONE</code>, or
+<code>apache2.DECLINED</code>, or else an HTTP status code.</p>
+
+
+<pre class="prettyprint lang-lua">
+<strong>translate_name.lua</strong><br />
+-- example hook that rewrites the URI to a filesystem path.
+
+require 'apache2'
+
+function translate_name(r)
+    if r.uri == "/translate-name" then
+        r.filename = r.document_root .. "/find_me.txt"
+        return apache2.OK
+    end
+    -- we don't care about this URL, give another module a chance
+    return apache2.DECLINED
+end</pre>
+
+
+
+<pre class="prettyprint lang-lua">
+<strong>translate_name2.lua</strong><br />
+--[[ example hook that rewrites one URI to another URI. It returns a
+     apache2.DECLINED to give other URL mappers a chance to work on the
+     substitution, including the core translate_name hook which maps based
+     on the DocumentRoot.
+
+     Note: Use the early/late flags in the directive to make it run before
+           or after mod_alias.
+--]]
+
+require 'apache2'
+
+function translate_name(r)
+    if r.uri == "/translate-name" then
+        r.uri = "/find_me.txt"
+        return apache2.DECLINED
+    end
+    return apache2.DECLINED
+end</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="datastructures" id="datastructures">Data Structures</a></h2>
+
+<dl>
+<dt>request_rec</dt>
         <dd>
         <p>The request_rec is mapped in as a userdata. It has a metatable
         which lets you do useful things with it. For the most part it
@@ -650,1215 +1277,588 @@ end</pre>
 <tr>
           <td><code>useragent_ip</code></td>
           <td>string</td>
-          <td>no</td>
-          <td>The IP of the user agent making the request</td>
-        </tr>
-</table>
-           </dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="functions" id="functions">Built in functions</a></h2>
-
-<p>The request_rec object has (at least) the following methods:</p>
-
-<pre class="prettyprint lang-lua">r:flush()   -- flushes the output buffer.
-            -- Returns true if the flush was successful, false otherwise.
-
-while we_have_stuff_to_send do
-    r:puts("Bla bla bla\n") -- print something to client
-    r:flush() -- flush the buffer (send to client)
-    r.usleep(500000) -- fake processing time for 0.5 sec. and repeat
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:addoutputfilter(name|function) -- add an output filter:
-
-r:addoutputfilter("fooFilter") -- add the fooFilter to the output stream</pre>
-
-
-<pre class="prettyprint lang-lua">r:sendfile(filename) -- sends an entire file to the client, using sendfile if supported by the current platform:
-
-if use_sendfile_thing then
-    r:sendfile("/var/www/large_file.img")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:parseargs() -- returns two tables; one standard key/value table for regular GET data, 
-              -- and one for multi-value data (fx. foo=1&amp;foo=2&amp;foo=3):
-
-local GET, GETMULTI = r:parseargs()
-r:puts("Your name is: " .. GET['name'] or "Unknown")</pre>
-
-
-<pre class="prettyprint lang-lua">r:parsebody([sizeLimit]) -- parse the request body as a POST and return two lua tables,
-                         -- just like r:parseargs().
-                         -- An optional number may be passed to specify the maximum number 
-                         -- of bytes to parse. Default is 8192 bytes:
-                 
-local POST, POSTMULTI = r:parsebody(1024*1024)
-r:puts("Your name is: " .. POST['name'] or "Unknown")</pre>
-
-
-<pre class="prettyprint lang-lua">r:puts("hello", " world", "!") -- print to response body, self explanatory</pre>
-
-
-<pre class="prettyprint lang-lua">r:write("a single string") -- print to response body, self explanatory</pre>
-
-
-<pre class="prettyprint lang-lua">r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Escapes HTML code and returns the escaped result</pre>
-
-
-<pre class="prettyprint lang-lua">r:base64_encode(string) -- Encodes a string using the Base64 encoding standard:
-
-local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q=</pre>
-
-
-<pre class="prettyprint lang-lua">r:base64_decode(string) -- Decodes a Base64-encoded string:
-
-local decoded = r:base64_decode("VGhpcyBpcyBhIHRlc3Q=") -- returns 'This is a test'</pre>
-
-
-<pre class="prettyprint lang-lua">r:md5(string) -- Calculates and returns the MD5 digest of a string (binary safe):
-
-local hash = r:md5("This is a test") -- returns ce114e4501d2f4e2dcea3e17b546f339</pre>
-
-
-<pre class="prettyprint lang-lua">r:sha1(string) -- Calculates and returns the SHA1 digest of a string (binary safe):
-
-local hash = r:sha1("This is a test") -- returns a54d88e06612d820bc3be72877c74f257b561b19</pre>
-
-
-<pre class="prettyprint lang-lua">r:escape(string) -- URL-Escapes a string:
-
-local url = "http://foo.bar/1 2 3 &amp; 4 + 5"
-local escaped = r:escape(url) -- returns 'http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5'</pre>
-
-
-<pre class="prettyprint lang-lua">r:unescape(string) -- Unescapes an URL-escaped string:
-
-local url = "http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5"
-local unescaped = r:unescape(url) -- returns 'http://foo.bar/1 2 3 &amp; 4 + 5'</pre>
-
-
-<pre class="prettyprint lang-lua">r:construct_url(string) -- Constructs an URL from an URI
-
-local url = r:construct_url(r.uri)</pre>
-
-
-<pre class="prettyprint lang-lua">r.mpm_query(number) -- Queries the server for MPM information using ap_mpm_query:
-
-local mpm = r.mpm_query(14)
-if mpm == 1 then
-    r:puts("This server uses the Event MPM")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:expr(string) -- Evaluates an <a href="../expr.html">expr</a> string.
-
-if r:expr("%{HTTP_HOST} =~ /^www/") then
-    r:puts("This host name starts with www")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:scoreboard_process(a) -- Queries the server for information about the process at position <code>a</code>:
-
-local process = r:scoreboard_process(1)
-r:puts("Server 1 has PID " .. process.pid)</pre>
-
-
-<pre class="prettyprint lang-lua">r:scoreboard_worker(a, b) -- Queries for information about the worker thread, <code>b</code>, in process <code>a</code>:
-
-local thread = r:scoreboard_worker(1, 1)
-r:puts("Server 1's thread 1 has thread ID " .. thread.tid .. " and is in " .. thread.status .. " status")</pre>
-
-
-
-<pre class="prettyprint lang-lua">r:clock() -- Returns the current time with microsecond precision</pre>
-
-
-<pre class="prettyprint lang-lua">r:requestbody(filename) -- Reads and returns the request body of a request.
-                -- If 'filename' is specified, it instead saves the
-                -- contents to that file:
-                
-local input = r:requestbody()
-r:puts("You sent the following request body to me:\n")
-r:puts(input)</pre>
-
-
-<pre class="prettyprint lang-lua">r:add_input_filter(filter_name) -- Adds 'filter_name' as an input filter</pre>
-
-
-<pre class="prettyprint lang-lua">r.module_info(module_name) -- Queries the server for information about a module
-
-local mod = r.module_info("mod_lua.c")
-if mod then
-    for k, v in pairs(mod.commands) do
-       r:puts( ("%s: %s\n"):format(k,v)) -- print out all directives accepted by this module
-    end
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:loaded_modules() -- Returns a list of modules loaded by httpd:
-
-for k, module in pairs(r:loaded_modules()) do
-    r:puts("I have loaded module " .. module .. "\n")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file") 
-                         -- relative to the appropriate run-time directory.</pre>
-
-
-<pre class="prettyprint lang-lua">r:server_info() -- Returns a table containing server information, such as 
-                -- the name of the httpd executable file, mpm used etc.</pre>
-
-
-<pre class="prettyprint lang-lua">r:set_document_root(file_path) -- Sets the document root for the request to file_path</pre>
-
-
-
-
-<pre class="prettyprint lang-lua">r:set_context_info(prefix, docroot) -- Sets the context prefix and context document root for a request</pre>
-
-
-<pre class="prettyprint lang-lua">r:os_escape_path(file_path) -- Converts an OS path to a URL in an OS dependent way</pre>
-
-
-<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Escapes a string for logging</pre>
-
-
-<pre class="prettyprint lang-lua">r.strcmp_match(string, pattern) -- Checks if 'string' matches 'pattern' using strcmp_match (globs).
-                        -- fx. whether 'www.example.com' matches '*.example.com':
-                        
-local match = r.strcmp_match("foobar.com", "foo*.com")
-if match then 
-    r:puts("foobar.com matches foo*.com")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:set_keepalive() -- Sets the keepalive status for a request. Returns true if possible, false otherwise.</pre>
-
-
-<pre class="prettyprint lang-lua">r:make_etag() -- Constructs and returns the etag for the current request.</pre>
-
-
-<pre class="prettyprint lang-lua">r:send_interim_response(clear) -- Sends an interim (1xx) response to the client.
-                       -- if 'clear' is true, available headers will be sent and cleared.</pre>
-
-
-<pre class="prettyprint lang-lua">r:custom_response(status_code, string) -- Construct and set a custom response for a given status code.
-                               -- This works much like the ErrorDocument directive:
-                               
-r:custom_response(404, "Baleted!")</pre>
-
-
-<pre class="prettyprint lang-lua">r.exists_config_define(string) -- Checks whether a configuration definition exists or not:
-
-if r.exists_config_define("FOO") then
-    r:puts("httpd was probably run with -DFOO, or it was defined in the configuration")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:state_query(string) -- Queries the server for state information</pre>
+          <td>no</td>
+          <td>The IP of the user agent making the request</td>
+        </tr>
+</table>
+           </dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="functions" id="functions">Built in functions</a></h2>
 
+<p>The request_rec object has (at least) the following methods:</p>
 
-<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Runs stat() on a file, and returns a table with file information:
+<pre class="prettyprint lang-lua">r:flush()   -- flushes the output buffer.
+            -- Returns true if the flush was successful, false otherwise.
 
-local info = r:stat("/var/www/foo.txt")
-if info then
-    r:puts("This file exists and was last modified at: " .. info.modified)
+while we_have_stuff_to_send do
+    r:puts("Bla bla bla\n") -- print something to client
+    r:flush() -- flush the buffer (send to client)
+    r.usleep(500000) -- fake processing time for 0.5 sec. and repeat
 end</pre>
 
 
-<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Runs a regular expression match on a string, returning captures if matched:
+<pre class="prettyprint lang-lua">r:addoutputfilter(name|function) -- add an output filter:
 
-local matches = r:regex("foo bar baz", [[foo (\w+) (\S*)]])
-if matches then
-    r:puts("The regex matched, and the last word captured ($2) was: " .. matches[2])
-end
+r:addoutputfilter("fooFilter") -- add the fooFilter to the output stream</pre>
 
--- Example ignoring case sensitivity:
-local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
 
--- Flags can be a bitwise combination of:
--- 0x01: Ignore case
--- 0x02: Multiline search</pre>
+<pre class="prettyprint lang-lua">r:sendfile(filename) -- sends an entire file to the client, using sendfile if supported by the current platform:
 
+if use_sendfile_thing then
+    r:sendfile("/var/www/large_file.img")
+end</pre>
 
-<pre class="prettyprint lang-lua">r.usleep(number_of_microseconds) -- Puts the script to sleep for a given number of microseconds.</pre>
 
+<pre class="prettyprint lang-lua">r:parseargs() -- returns two tables; one standard key/value table for regular GET data, 
+              -- and one for multi-value data (fx. foo=1&amp;foo=2&amp;foo=3):
 
-<pre class="prettyprint lang-lua">r:dbacquire(dbType[, dbParams]) -- Acquires a connection to a database and returns a database class.
-                        -- See '<a href="#databases">Database connectivity</a>' for details.</pre>
+local GET, GETMULTI = r:parseargs()
+r:puts("Your name is: " .. GET['name'] or "Unknown")</pre>
 
 
-<pre class="prettyprint lang-lua">r:ivm_set("key", value) -- Set an Inter-VM variable to hold a specific value.
-                        -- These values persist even though the VM is gone or not being used,
-                        -- and so should only be used if MaxConnectionsPerChild is &gt; 0
-                        -- Values can be numbers, strings and booleans, and are stored on a 
-                        -- per process basis (so they won't do much good with a prefork mpm)
-                        
-r:ivm_get("key")        -- Fetches a variable set by ivm_set. Returns the contents of the variable
-                        -- if it exists or nil if no such variable exists.
-                        
--- An example getter/setter that saves a global variable outside the VM:
-function handle(r)
-    -- First VM to call this will get no value, and will have to create it
-    local foo = r:ivm_get("cached_data")
-    if not foo then
-        foo = do_some_calcs() -- fake some return value
-        r:ivm_set("cached_data", foo) -- set it globally
-    end
-    r:puts("Cached data is: ", foo)
-end</pre>
+<pre class="prettyprint lang-lua">r:parsebody([sizeLimit]) -- parse the request body as a POST and return two lua tables,
+                         -- just like r:parseargs().
+                         -- An optional number may be passed to specify the maximum number 
+                         -- of bytes to parse. Default is 8192 bytes:
+                 
+local POST, POSTMULTI = r:parsebody(1024*1024)
+r:puts("Your name is: " .. POST['name'] or "Unknown")</pre>
 
 
-<pre class="prettyprint lang-lua">r:htpassword(string [,algorithm [,cost]]) -- Creates a password hash from a string.
-                                          -- algorithm: 0 = APMD5 (default), 1 = SHA, 2 = BCRYPT, 3 = CRYPT.
-                                          -- cost: only valid with BCRYPT algorithm (default = 5).</pre>
+<pre class="prettyprint lang-lua">r:puts("hello", " world", "!") -- print to response body, self explanatory</pre>
 
 
-<pre class="prettyprint lang-lua">r:mkdir(dir [,mode]) -- Creates a directory and sets mode to optional mode paramter.</pre>
+<pre class="prettyprint lang-lua">r:write("a single string") -- print to response body, self explanatory</pre>
 
 
-<pre class="prettyprint lang-lua">r:mkrdir(dir [,mode]) -- Creates directories recursive and sets mode to optional mode paramter.</pre>
+<pre class="prettyprint lang-lua">r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Escapes HTML code and returns the escaped result</pre>
 
 
-<pre class="prettyprint lang-lua">r:rmdir(dir) -- Removes a directory.</pre>
+<pre class="prettyprint lang-lua">r:base64_encode(string) -- Encodes a string using the Base64 encoding standard:
 
+local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q=</pre>
 
-<pre class="prettyprint lang-lua">r:touch(file [,mtime]) -- Sets the file modification time to current time or to optional mtime msec value.</pre>
 
+<pre class="prettyprint lang-lua">r:base64_decode(string) -- Decodes a Base64-encoded string:
 
-<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Returns a table with all directory entries.
+local decoded = r:base64_decode("VGhpcyBpcyBhIHRlc3Q=") -- returns 'This is a test'</pre>
 
-function handle(r)
-  local dir = r.context_document_root
-  for _, f in ipairs(r:get_direntries(dir)) do
-    local info = r:stat(dir .. "/" .. f)
-    if info then
-      local mtime = os.date(fmt, info.mtime / 1000000)
-      local ftype = (info.filetype == 2) and "[dir] " or "[file]"
-      r:puts( ("%s %s %10i %s\n"):format(ftype, mtime, info.size, f) )
-    end
-  end
-end</pre>
 
+<pre class="prettyprint lang-lua">r:md5(string) -- Calculates and returns the MD5 digest of a string (binary safe):
 
-<pre class="prettyprint lang-lua">r.date_parse_rfc(string) -- Parses a date/time string and returns seconds since epoche.</pre>
+local hash = r:md5("This is a test") -- returns ce114e4501d2f4e2dcea3e17b546f339</pre>
 
 
-<pre class="prettyprint lang-lua">r:getcookie(key) -- Gets a HTTP cookie</pre>
+<pre class="prettyprint lang-lua">r:sha1(string) -- Calculates and returns the SHA1 digest of a string (binary safe):
 
+local hash = r:sha1("This is a test") -- returns a54d88e06612d820bc3be72877c74f257b561b19</pre>
 
-<pre class="prettyprint lang-lua">r:setcookie{
-  key = [key],
-  value = [value],
-  expires = [expiry],
-  secure = [boolean],
-  httponly = [boolean],
-  path = [path],
-  domain = [domain]
-} -- Sets a HTTP cookie, for instance:
 
-r:setcookie{
-  key = "cookie1",
-  value = "HDHfa9eyffh396rt",
-  expires = os.time() + 86400,
-  secure = true
-}</pre>
+<pre class="prettyprint lang-lua">r:escape(string) -- URL-Escapes a string:
 
+local url = "http://foo.bar/1 2 3 &amp; 4 + 5"
+local escaped = r:escape(url) -- returns 'http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5'</pre>
 
-<pre class="prettyprint lang-lua">r:wsupgrade() -- Upgrades a connection to WebSockets if possible (and requested):
-if r:wsupgrade() then -- if we can upgrade:
-    r:wswrite("Welcome to websockets!") -- write something to the client
-    r:wsclose()  -- goodbye!
-end</pre>
 
+<pre class="prettyprint lang-lua">r:unescape(string) -- Unescapes an URL-escaped string:
 
-<pre class="prettyprint lang-lua">r:wsread() -- Reads a WebSocket frame from a WebSocket upgraded connection (see above):
+local url = "http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5"
+local unescaped = r:unescape(url) -- returns 'http://foo.bar/1 2 3 &amp; 4 + 5'</pre>
 
-local line, isFinal = r:wsread() -- isFinal denotes whether this is the final frame.
-                                 -- If it isn't, then more frames can be read
-r:wswrite("You wrote: " .. line)</pre>
 
+<pre class="prettyprint lang-lua">r:construct_url(string) -- Constructs an URL from an URI
 
-<pre class="prettyprint lang-lua">r:wswrite(line) -- Writes a frame to a WebSocket client:
-r:wswrite("Hello, world!")</pre>
+local url = r:construct_url(r.uri)</pre>
 
 
-<pre class="prettyprint lang-lua">r:wsclose() -- Closes a WebSocket request and terminates it for httpd:
+<pre class="prettyprint lang-lua">r.mpm_query(number) -- Queries the server for MPM information using ap_mpm_query:
 
-if r:wsupgrade() then
-    r:wswrite("Write something: ")
-    local line = r:wsread() or "nothing"
-    r:wswrite("You wrote: " .. line);
-    r:wswrite("Goodbye!")
-    r:wsclose()
+local mpm = r.mpm_query(14)
+if mpm == 1 then
+    r:puts("This server uses the Event MPM")
 end</pre>
 
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logging" id="logging">Logging Functions</a></h2>
-
-<pre class="prettyprint lang-lua">        -- examples of logging messages<br />
-        r:trace1("This is a trace log message") -- trace1 through trace8 can be used <br />
-        r:debug("This is a debug log message")<br />
-        r:info("This is an info log message")<br />
-        r:notice("This is a notice log message")<br />
-        r:warn("This is a warn log message")<br />
-        r:err("This is an err log message")<br />
-        r:alert("This is an alert log message")<br />
-        r:crit("This is a crit log message")<br />
-        r:emerg("This is an emerg log message")<br />
-</pre>
-
+<pre class="prettyprint lang-lua">r:expr(string) -- Evaluates an <a href="../expr.html">expr</a> string.
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="apache2" id="apache2">apache2 Package</a></h2>
-<p>A package named <code>apache2</code> is available with (at least) the following contents.</p>
-<dl>
-  <dt>apache2.OK</dt>
-  <dd>internal constant OK.  Handlers should return this if they've
-  handled the request.</dd>
-  <dt>apache2.DECLINED</dt>
-  <dd>internal constant DECLINED.  Handlers should return this if
-  they are not going to handle the request.</dd>
-  <dt>apache2.DONE</dt>
-  <dd>internal constant DONE.</dd>
-  <dt>apache2.version</dt>
-  <dd>Apache HTTP server version string</dd>
-  <dt>apache2.HTTP_MOVED_TEMPORARILY</dt>
-  <dd>HTTP status code</dd>
-  <dt>apache2.PROXYREQ_NONE, apache2.PROXYREQ_PROXY, apache2.PROXYREQ_REVERSE, apache2.PROXYREQ_RESPONSE</dt>
-  <dd>internal constants used by <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
-  <dt>apache2.AUTHZ_DENIED, apache2.AUTHZ_GRANTED, apache2.AUTHZ_NEUTRAL, apache2.AUTHZ_GENERAL_ERROR, apache2.AUTHZ_DENIED_NO_USER</dt>
-  <dd>internal constants used by <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></dd>
+if r:expr("%{HTTP_HOST} =~ /^www/") then
+    r:puts("This host name starts with www")
+end</pre>
 
-</dl>
-<p>(Other HTTP status codes are not yet implemented.)</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="modifying_buckets" id="modifying_buckets">Modifying contents with Lua filters</a></h2>
-    
-    <p>
-    Filter functions implemented via <code class="directive"><a href="#luainputfilter">LuaInputFilter</a></code> 
-    or <code class="directive"><a href="#luaoutputfilter">LuaOutputFilter</a></code> are designed as 
-    three-stage non-blocking functions using coroutines to suspend and resume a 
-    function as buckets are sent down the filter chain. The core structure of 
-    such a function is:
-    </p>
-    <pre class="prettyprint lang-lua">function filter(r)
-    -- Our first yield is to signal that we are ready to receive buckets.
-    -- Before this yield, we can set up our environment, check for conditions,
-    -- and, if we deem it necessary, decline filtering a request alltogether:
-    if something_bad then
-        return -- This would skip this filter.
-    end
-    -- Regardless of whether we have data to prepend, a yield MUST be called here.
-    -- Note that only output filters can prepend data. Input filters must use the 
-    -- final stage to append data to the content.
-    coroutine.yield([optional header to be prepended to the content])
-    
-    -- After we have yielded, buckets will be sent to us, one by one, and we can 
-    -- do whatever we want with them and then pass on the result.
-    -- Buckets are stored in the global variable 'bucket', so we create a loop
-    -- that checks if 'bucket' is not nil:
-    while bucket ~= nil do
-        local output = mangle(bucket) -- Do some stuff to the content
-        coroutine.yield(output) -- Return our new content to the filter chain
-    end
 
-    -- Once the buckets are gone, 'bucket' is set to nil, which will exit the 
-    -- loop and land us here. Anything extra we want to append to the content
-    -- can be done by doing a final yield here. Both input and output filters 
-    -- can append data to the content in this phase.
-    coroutine.yield([optional footer to be appended to the content])
-end</pre>
+<pre class="prettyprint lang-lua">r:scoreboard_process(a) -- Queries the server for information about the process at position <code>a</code>:
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="databases" id="databases">Database connectivity</a></h2>
-    
-    <p>
-    Mod_lua implements a simple database feature for querying and running commands
-    on the most popular database engines (mySQL, PostgreSQL, FreeTDS, ODBC, SQLite, Oracle)
-    as well as mod_dbd.
-    </p>
-    <p>The example below shows how to acquire a database handle and return information from a table:</p>
-    <pre class="prettyprint lang-lua">function handle(r)
-    -- Acquire a database handle
-    local database, err = r:dbacquire("mysql", "server=localhost,user=someuser,pass=somepass,dbname=mydb")
-    if not err then
-        -- Select some information from it
-        local results, err = database:select(r, "SELECT `name`, `age` FROM `people` WHERE 1")
-        if not err then
-            local rows = results(0) -- fetch all rows synchronously
-            for k, row in pairs(rows) do
-                r:puts( string.format("Name: %s, Age: %s&lt;br/&gt;", row[1], row[2]) )
-            end
-        else
-            r:puts("Database query error: " .. err)
-        end
-        database:close()
-    else
-        r:puts("Could not connect to the database: " .. err)
-    end
-end</pre>
+local process = r:scoreboard_process(1)
+r:puts("Server 1 has PID " .. process.pid)</pre>
 
-    <p>
-    To utilize <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>, specify <code>mod_dbd</code>
-    as the database type, or leave the field blank:
-    </p>
-    <pre class="prettyprint lang-lua">local database = r:dbacquire("mod_dbd")</pre>
 
-    <h3><a name="database_object" id="database_object">Database object and contained functions</a></h3>
-        
-        <p>The database object returned by <code>dbacquire</code> has the following methods:</p>
-        <p><strong>Normal select and query from a database:</strong></p>
-    <pre class="prettyprint lang-lua">-- Run a statement and return the number of rows affected:
-local affected, errmsg = database:query(r, "DELETE FROM `tbl` WHERE 1")
+<pre class="prettyprint lang-lua">r:scoreboard_worker(a, b) -- Queries for information about the worker thread, <code>b</code>, in process <code>a</code>:
 
--- Run a statement and return a result set that can be used synchronously or async:
-local result, errmsg = database:select(r, "SELECT * FROM `people` WHERE 1")</pre>
+local thread = r:scoreboard_worker(1, 1)
+r:puts("Server 1's thread 1 has thread ID " .. thread.tid .. " and is in " .. thread.status .. " status")</pre>
 
-        <p><strong>Using prepared statements (recommended):</strong></p>
-    <pre class="prettyprint lang-lua">-- Create and run a prepared statement:
-local statement, errmsg = database:prepare(r, "DELETE FROM `tbl` WHERE `age` &gt; %u")
-if not errmsg then
-    local result, errmsg = statement:query(20) -- run the statement with age &gt; 20
-end
 
--- Fetch a prepared statement from a DBDPrepareSQL directive:
-local statement, errmsg = database:prepared(r, "someTag")
-if not errmsg then
-    local result, errmsg = statement:select("John Doe", 123) -- inject the values "John Doe" and 123 into the statement
-end</pre>
 
-        <p><strong>Escaping values, closing databases etc:</strong></p>
-    <pre class="prettyprint lang-lua">-- Escape a value for use in a statement:
-local escaped = database:escape(r, [["'|blabla]])
+<pre class="prettyprint lang-lua">r:clock() -- Returns the current time with microsecond precision</pre>
 
--- Close a database connection and free up handles:
-database:close()
 
--- Check whether a database connection is up and running:
-local connected = database:active()</pre>
+<pre class="prettyprint lang-lua">r:requestbody(filename) -- Reads and returns the request body of a request.
+                -- If 'filename' is specified, it instead saves the
+                -- contents to that file:
+                
+local input = r:requestbody()
+r:puts("You sent the following request body to me:\n")
+r:puts(input)</pre>
 
-    
-    <h3><a name="result_sets" id="result_sets">Working with result sets</a></h3>
-    
-    <p>The result set returned by <code>db:select</code> or by the prepared statement functions 
-    created through <code>db:prepare</code> can be used to
-    fetch rows synchronously or asynchronously, depending on the row number specified:<br />
-    <code>result(0)</code> fetches all rows in a synchronous manner, returning a table of rows.<br />
-    <code>result(-1)</code> fetches the next available row in the set, asynchronously.<br />
-    <code>result(N)</code> fetches row number <code>N</code>, asynchronously:
-    </p>
-    <pre class="prettyprint lang-lua">-- fetch a result set using a regular query:
-local result, err = db:select(r, "SELECT * FROM `tbl` WHERE 1")
 
-local rows = result(0) -- Fetch ALL rows synchronously
-local row = result(-1) -- Fetch the next available row, asynchronously
-local row = result(1234) -- Fetch row number 1234, asynchronously
-local row = result(-1, true) -- Fetch the next available row, using row names as key indexes.</pre>
+<pre class="prettyprint lang-lua">r:add_input_filter(filter_name) -- Adds 'filter_name' as an input filter</pre>
 
-    <p>One can construct a function that returns an iterative function to iterate over all rows 
-    in a synchronous or asynchronous way, depending on the async argument:
-    </p>
-    <pre class="prettyprint lang-lua">function rows(resultset, async)
-    local a = 0
-    local function getnext()
-        a = a + 1
-        local row = resultset(-1)
-        return row and a or nil, row
-    end
-    if not async then
-        return pairs(resultset(0))
-    else
-        return getnext, self
-    end
-end
 
-local statement, err = db:prepare(r, "SELECT * FROM `tbl` WHERE `age` &gt; %u")
-if not err then
-     -- fetch rows asynchronously:
-    local result, err = statement:select(20)
-    if not err then
-        for index, row in rows(result, true) do
-            ....
-        end
-    end
+<pre class="prettyprint lang-lua">r.module_info(module_name) -- Queries the server for information about a module
 
-     -- fetch rows synchronously:
-    local result, err = statement:select(20)
-    if not err then
-        for index, row in rows(result, false) do
-            ....
-        end
+local mod = r.module_info("mod_lua.c")
+if mod then
+    for k, v in pairs(mod.commands) do
+       r:puts( ("%s: %s\n"):format(k,v)) -- print out all directives accepted by this module
     end
 end</pre>
 
-    
-    <h3><a name="closing_databases" id="closing_databases">Closing a database connection</a></h3>
-        
 
-    <p>Database handles should be closed using <code>database:close()</code> when they are no longer
-    needed. If you do not close them manually, they will eventually be garbage collected and 
-    closed by mod_lua, but you may end up having too many unused connections to the database 
-    if you leave the closing up to mod_lua. Essentially, the following two measures are
-    the same:
-    </p>
-    <pre class="prettyprint lang-lua">-- Method 1: Manually close a handle
-local database = r:dbacquire("mod_dbd")
-database:close() -- All done
+<pre class="prettyprint lang-lua">r:loaded_modules() -- Returns a list of modules loaded by httpd:
 
--- Method 2: Letting the garbage collector close it
-local database = r:dbacquire("mod_dbd")
-database = nil -- throw away the reference
-collectgarbage() -- close the handle via GC</pre>
+for k, module in pairs(r:loaded_modules()) do
+    r:puts("I have loaded module " .. module .. "\n")
+end</pre>
 
-    
-    <h3><a name="database_caveat" id="database_caveat">Precautions when working with databases</a></h3>
-    
-    <p>Although the standard <code>query</code> and <code>run</code> functions are freely 
-    available, it is recommended that you use prepared statements whenever possible, to 
-    both optimize performance (if your db handle lives on for a long time) and to minimize 
-    the risk of SQL injection attacks. <code>run</code> and <code>query</code> should only
-    be used when there are no variables inserted into a statement (a static statement). 
-    When using dynamic statements, use <code>db:prepare</code> or <code>db:prepared</code>.
-    </p>
-    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaAuthzProvider" id="LuaAuthzProvider">LuaAuthzProvider</a> <a name="luaauthzprovider" id="luaauthzprovider">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Plug an authorization provider function into <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.3 and later</td></tr>
-</table>
-<p>After a lua function has been registered as authorization provider, it can be used
-with the <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive:</p>
+<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- Compute the name of a run-time file (e.g., shared memory "file") 
+                         -- relative to the appropriate run-time directory.</pre>
 
-<pre class="prettyprint lang-config">LuaRoot "/usr/local/apache2/lua"
-LuaAuthzProvider foo authz.lua authz_check_foo
-&lt;Location "/"&gt;
-  Require foo johndoe
-&lt;/Location&gt;</pre>
 
-<pre class="prettyprint lang-lua">require "apache2"
-function authz_check_foo(r, who)
-    if r.user ~= who then return apache2.AUTHZ_DENIED
-    return apache2.AUTHZ_GRANTED
+<pre class="prettyprint lang-lua">r:server_info() -- Returns a table containing server information, such as 
+                -- the name of the httpd executable file, mpm used etc.</pre>
+
+
+<pre class="prettyprint lang-lua">r:set_document_root(file_path) -- Sets the document root for the request to file_path</pre>
+
+
+
+
+<pre class="prettyprint lang-lua">r:set_context_info(prefix, docroot) -- Sets the context prefix and context document root for a request</pre>
+
+
+<pre class="prettyprint lang-lua">r:os_escape_path(file_path) -- Converts an OS path to a URL in an OS dependent way</pre>
+
+
+<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Escapes a string for logging</pre>
+
+
+<pre class="prettyprint lang-lua">r.strcmp_match(string, pattern) -- Checks if 'string' matches 'pattern' using strcmp_match (globs).
+                        -- fx. whether 'www.example.com' matches '*.example.com':
+                        
+local match = r.strcmp_match("foobar.com", "foo*.com")
+if match then 
+    r:puts("foobar.com matches foo*.com")
 end</pre>
 
 
+<pre class="prettyprint lang-lua">r:set_keepalive() -- Sets the keepalive status for a request. Returns true if possible, false otherwise.</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaCodeCache" id="LuaCodeCache">LuaCodeCache</a> <a name="luacodecache" id="luacodecache">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure the compiled code cache.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaCodeCache stat|forever|never</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LuaCodeCache stat</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>
-    Specify the behavior of the in-memory code cache. The default
-    is stat, which stats the top level script (not any included
-    ones) each time that file is needed, and reloads it if the
-    modified time indicates it is newer than the one it has
-    already loaded. The other values cause it to keep the file
-    cached forever (don't stat and replace) or to never cache the
-    file.</p>
+<pre class="prettyprint lang-lua">r:make_etag() -- Constructs and returns the etag for the current request.</pre>
 
-    <p>In general stat or forever is good for production, and stat or never
-    for development.</p>
 
-    <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaCodeCache stat
-LuaCodeCache forever
-LuaCodeCache never</pre>
-</div>
+<pre class="prettyprint lang-lua">r:send_interim_response(clear) -- Sends an interim (1xx) response to the client.
+                       -- if 'clear' is true, available headers will be sent and cleared.</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookAccessChecker" id="LuaHookAccessChecker">LuaHookAccessChecker</a> <a name="luahookaccesschecker" id="luahookaccesschecker">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the access_checker phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookAccessChecker  /path/to/lua/script.lua  hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
-</table>
-<p>Add your hook to the access_checker phase.  An access checker
-hook function usually returns OK, DECLINED, or HTTP_FORBIDDEN.</p>
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
-   control when this script runs relative to other modules.</p></div>
+<pre class="prettyprint lang-lua">r:custom_response(status_code, string) -- Construct and set a custom response for a given status code.
+                               -- This works much like the ErrorDocument directive:
+                               
+r:custom_response(404, "Baleted!")</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookAuthChecker" id="LuaHookAuthChecker">LuaHookAuthChecker</a> <a name="luahookauthchecker" id="luahookauthchecker">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the auth_checker phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookAuthChecker  /path/to/lua/script.lua hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
-</table>
-<p>Invoke a lua function in the auth_checker phase of processing
-a request.  This can be used to implement arbitrary authentication
-and authorization checking.  A very simple example:
-</p>
-<pre class="prettyprint lang-lua">require 'apache2'
 
--- fake authcheck hook
--- If request has no auth info, set the response header and
--- return a 401 to ask the browser for basic auth info.
--- If request has auth info, don't actually look at it, just
--- pretend we got userid 'foo' and validated it.
--- Then check if the userid is 'foo' and accept the request.
-function authcheck_hook(r)
+<pre class="prettyprint lang-lua">r.exists_config_define(string) -- Checks whether a configuration definition exists or not:
+
+if r.exists_config_define("FOO") then
+    r:puts("httpd was probably run with -DFOO, or it was defined in the configuration")
+end</pre>
+
 
-   -- look for auth info
-   auth = r.headers_in['Authorization']
-   if auth ~= nil then
-     -- fake the user
-     r.user = 'foo'
-   end
+<pre class="prettyprint lang-lua">r:state_query(string) -- Queries the server for state information</pre>
 
-   if r.user == nil then
-      r:debug("authcheck: user is nil, returning 401")
-      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
-      return 401
-   elseif r.user == "foo" then
-      r:debug('user foo: OK')
-   else
-      r:debug("authcheck: user='" .. r.user .. "'")
-      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
-      return 401
-   end
-   return apache2.OK
+
+<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Runs stat() on a file, and returns a table with file information:
+
+local info = r:stat("/var/www/foo.txt")
+if info then
+    r:puts("This file exists and was last modified at: " .. info.modified)
 end</pre>
 
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
-   control when this script runs relative to other modules.</p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookCheckUserID" id="LuaHookCheckUserID">LuaHookCheckUserID</a> <a name="luahookcheckuserid" id="luahookcheckuserid">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the check_user_id phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookCheckUserID  /path/to/lua/script.lua hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
-</table><p>...</p>
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
-   control when this script runs relative to other modules.</p></div>
+<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Runs a regular expression match on a string, returning captures if matched:
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookFixups" id="LuaHookFixups">LuaHookFixups</a> <a name="luahookfixups" id="luahookfixups">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the fixups phase of a request
-processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookFixups  /path/to/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-<p>
-    Just like LuaHookTranslateName, but executed at the fixups phase
-</p>
+local matches = r:regex("foo bar baz", [[foo (\w+) (\S*)]])
+if matches then
+    r:puts("The regex matched, and the last word captured ($2) was: " .. matches[2])
+end
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a> <a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the insert_filter phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookInsertFilter  /path/to/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>Not Yet Implemented</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookLog" id="LuaHookLog">LuaHookLog</a> <a name="luahooklog" id="luahooklog">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the access log phase of a request
-processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookLog  /path/to/lua/script.lua log_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-<p>
-    This simple logging hook allows you to run a function when httpd enters the 
-    logging phase of a request. With it, you can append data to your own logs, 
-    manipulate data before the regular log is written, or prevent a log entry 
-    from being created. To prevent the usual logging from happening, simply return
-    <code>apache2.DONE</code> in your logging handler, otherwise return 
-    <code>apache2.OK</code> to tell httpd to log as normal.
-</p>
-<p>Example:</p>
-<pre class="prettyprint lang-config">LuaHookLog "/path/to/script.lua" logger</pre>
+-- Example ignoring case sensitivity:
+local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
 
-<pre class="prettyprint lang-lua">-- /path/to/script.lua --
-function logger(r)
-    -- flip a coin:
-    -- If 1, then we write to our own Lua log and tell httpd not to log
-    -- in the main log.
-    -- If 2, then we just sanitize the output a bit and tell httpd to 
-    -- log the sanitized bits.
+-- Flags can be a bitwise combination of:
+-- 0x01: Ignore case
+-- 0x02: Multiline search</pre>
 
-    if math.random(1,2) == 1 then
-        -- Log stuff ourselves and don't log in the regular log
-        local f = io.open("/foo/secret.log", "a")
-        if f then
-            f:write("Something secret happened at " .. r.uri .. "\n")
-            f:close()
-        end
-        return apache2.DONE -- Tell httpd not to use the regular logging functions
-    else
-        r.uri = r.uri:gsub("somesecretstuff", "") -- sanitize the URI
-        return apache2.OK -- tell httpd to log it.
-    end
-end</pre>
 
+<pre class="prettyprint lang-lua">r.usleep(number_of_microseconds) -- Puts the script to sleep for a given number of microseconds.</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a> <a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the map_to_storage phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookMapToStorage  /path/to/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Like <code class="directive">LuaHookTranslateName</code> but executed at the 
-    map-to-storage phase of a request. Modules like mod_cache run at this phase,
-    which makes for an interesting example on what to do here:</p>
-    <pre class="prettyprint lang-config">LuaHookMapToStorage "/path/to/lua/script.lua" check_cache</pre>
 
-    <pre class="prettyprint lang-lua">require"apache2"
-cached_files = {}
+<pre class="prettyprint lang-lua">r:dbacquire(dbType[, dbParams]) -- Acquires a connection to a database and returns a database class.
+                        -- See '<a href="#databases">Database connectivity</a>' for details.</pre>
 
-function read_file(filename) 
-    local input = io.open(filename, "r")
-    if input then
-        local data = input:read("*a")
-        cached_files[filename] = data
-        file = cached_files[filename]
-        input:close()
-    end
-    return cached_files[filename]
-end
 
-function check_cache(r)
-    if r.filename:match("%.png$") then -- Only match PNG files
-        local file = cached_files[r.filename] -- Check cache entries
-        if not file then
-            file = read_file(r.filename)  -- Read file into cache
-        end
-        if file then -- If file exists, write it out
-            r.status = 200
-            r:write(file)
-            r:info(("Sent %s to client from cache"):format(r.filename))
-            return apache2.DONE -- skip default handler for PNG files
-        end
+<pre class="prettyprint lang-lua">r:ivm_set("key", value) -- Set an Inter-VM variable to hold a specific value.
+                        -- These values persist even though the VM is gone or not being used,
+                        -- and so should only be used if MaxConnectionsPerChild is &gt; 0
+                        -- Values can be numbers, strings and booleans, and are stored on a 
+                        -- per process basis (so they won't do much good with a prefork mpm)
+                        
+r:ivm_get("key")        -- Fetches a variable set by ivm_set. Returns the contents of the variable
+                        -- if it exists or nil if no such variable exists.
+                        
+-- An example getter/setter that saves a global variable outside the VM:
+function handle(r)
+    -- First VM to call this will get no value, and will have to create it
+    local foo = r:ivm_get("cached_data")
+    if not foo then
+        foo = do_some_calcs() -- fake some return value
+        r:ivm_set("cached_data", foo) -- set it globally
     end
-    return apache2.DECLINED -- If we had nothing to do, let others serve this.
+    r:puts("Cached data is: ", foo)
 end</pre>
 
 
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookTranslateName" id="LuaHookTranslateName">LuaHookTranslateName</a> <a name="luahooktranslatename" id="luahooktranslatename">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the translate name phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookTranslateName  /path/to/lua/script.lua  hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>The optional third argument is supported in 2.3.15 and later</td></tr>
-</table><p>
-    Add a hook (at APR_HOOK_MIDDLE) to the translate name phase of
-    request processing. The hook function receives a single
-    argument, the request_rec, and should return a status code,
-    which is either an HTTP error code, or the constants defined
-    in the apache2 module: apache2.OK, apache2.DECLINED, or
-    apache2.DONE. </p>
+<pre class="prettyprint lang-lua">r:htpassword(string [,algorithm [,cost]]) -- Creates a password hash from a string.
+                                          -- algorithm: 0 = APMD5 (default), 1 = SHA, 2 = BCRYPT, 3 = CRYPT.
+                                          -- cost: only valid with BCRYPT algorithm (default = 5).</pre>
 
-    <p>For those new to hooks, basically each hook will be invoked
-    until one of them returns apache2.OK. If your hook doesn't
-    want to do the translation it should just return
-    apache2.DECLINED. If the request should stop processing, then
-    return apache2.DONE.</p>
 
-    <p>Example:</p>
+<pre class="prettyprint lang-lua">r:mkdir(dir [,mode]) -- Creates a directory and sets mode to optional mode paramter.</pre>
 
-<pre class="prettyprint lang-config"># httpd.conf
-LuaHookTranslateName "/scripts/conf/hooks.lua" silly_mapper</pre>
 
+<pre class="prettyprint lang-lua">r:mkrdir(dir [,mode]) -- Creates directories recursive and sets mode to optional mode paramter.</pre>
 
-<pre class="prettyprint lang-lua">-- /scripts/conf/hooks.lua --
-require "apache2"
-function silly_mapper(r)
-    if r.uri == "/" then
-        r.filename = "/var/www/home.lua"
-        return apache2.OK
-    else
-        return apache2.DECLINED
+
+<pre class="prettyprint lang-lua">r:rmdir(dir) -- Removes a directory.</pre>
+
+
+<pre class="prettyprint lang-lua">r:touch(file [,mtime]) -- Sets the file modification time to current time or to optional mtime msec value.</pre>
+
+
+<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Returns a table with all directory entries.
+
+function handle(r)
+  local dir = r.context_document_root
+  for _, f in ipairs(r:get_direntries(dir)) do
+    local info = r:stat(dir .. "/" .. f)
+    if info then
+      local mtime = os.date(fmt, info.mtime / 1000000)
+      local ftype = (info.filetype == 2) and "[dir] " or "[file]"
+      r:puts( ("%s %s %10i %s\n"):format(ftype, mtime, info.size, f) )
     end
+  end
 end</pre>
 
 
-   <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, or htaccess
-   context.</p></div>
+<pre class="prettyprint lang-lua">r.date_parse_rfc(string) -- Parses a date/time string and returns seconds since epoche.</pre>
+
+
+<pre class="prettyprint lang-lua">r:getcookie(key) -- Gets a HTTP cookie</pre>
+
+
+<pre class="prettyprint lang-lua">r:setcookie{
+  key = [key],
+  value = [value],
+  expires = [expiry],
+  secure = [boolean],
+  httponly = [boolean],
+  path = [path],
+  domain = [domain]
+} -- Sets a HTTP cookie, for instance:
+
+r:setcookie{
+  key = "cookie1",
+  value = "HDHfa9eyffh396rt",
+  expires = os.time() + 86400,
+  secure = true
+}</pre>
+
 
-   <div class="note"><h3>Ordering</h3><p>The optional arguments "early" or "late" 
-   control when this script runs relative to other modules.</p></div>
+<pre class="prettyprint lang-lua">r:wsupgrade() -- Upgrades a connection to WebSockets if possible (and requested):
+if r:wsupgrade() then -- if we can upgrade:
+    r:wswrite("Welcome to websockets!") -- write something to the client
+    r:wsclose()  -- goodbye!
+end</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a> <a name="luahooktypechecker" id="luahooktypechecker">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the type_checker phase of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaHookTypeChecker  /path/to/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>
-    This directive provides a hook for the type_checker phase of the request processing. 
-    This phase is where requests are assigned a content type and a handler, and thus can 
-    be used to modify the type and handler based on input:
-    </p>
-    <pre class="prettyprint lang-config">LuaHookTypeChecker "/path/to/lua/script.lua" type_checker</pre>
+<pre class="prettyprint lang-lua">r:wsread() -- Reads a WebSocket frame from a WebSocket upgraded connection (see above):
 
-    <pre class="prettyprint lang-lua">    function type_checker(r)
-        if r.uri:match("%.to_gif$") then -- match foo.png.to_gif
-            r.content_type = "image/gif" -- assign it the image/gif type
-            r.handler = "gifWizard"      -- tell the gifWizard module to handle this
-            r.filename = r.uri:gsub("%.to_gif$", "") -- fix the filename requested
-            return apache2.OK
-        end
+local line, isFinal = r:wsread() -- isFinal denotes whether this is the final frame.
+                                 -- If it isn't, then more frames can be read
+r:wswrite("You wrote: " .. line)</pre>
 
-        return apache2.DECLINED
-    end</pre>
 
+<pre class="prettyprint lang-lua">r:wswrite(line) -- Writes a frame to a WebSocket client:
+r:wswrite("Hello, world!")</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaInherit" id="LuaInherit">LuaInherit</a> <a name="luainherit" id="luainherit">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Controls how parent configuration sections are merged into children</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaInherit none|parent-first|parent-last</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LuaInherit parent-first</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.0 and later</td></tr>
-</table><p>By default, if LuaHook* directives are used in overlapping
-    Directory or Location configuration sections, the scripts defined in the
-    more specific section are run <em>after</em> those defined in the more
-    generic section (LuaInherit parent-first).  You can reverse this order, or
-    make the parent context not apply at all.</p>
-    
-    <p> In previous 2.3.x releases, the default was effectively to ignore LuaHook*
-    directives from parent configuration sections.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaInputFilter" id="LuaInputFilter">LuaInputFilter</a> <a name="luainputfilter" id="luainputfilter">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a Lua function for content input filtering</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaInputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.5 and later</td></tr>
-</table>
-<p>Provides a means of adding a Lua function as an input filter. 
-As with output filters, input filters work as coroutines, 
-first yielding before buffers are sent, then yielding whenever 
-a bucket needs to be passed down the chain, and finally (optionally) 
-yielding anything that needs to be appended to the input data. The 
-global variable <code>bucket</code> holds the buckets as they are passed 
-onto the Lua script:
-</p>
 
-<pre class="prettyprint lang-config">LuaInputFilter myInputFilter "/www/filter.lua" input_filter
-&lt;Files "*.lua"&gt;
-  SetInputFilter myInputFilter
-&lt;/Files&gt;</pre>
+<pre class="prettyprint lang-lua">r:wsclose() -- Closes a WebSocket request and terminates it for httpd:
 
-<pre class="prettyprint lang-lua">--[[
-    Example input filter that converts all POST data to uppercase.
-]]--
-function input_filter(r)
-    print("luaInputFilter called") -- debug print
-    coroutine.yield() -- Yield and wait for buckets
-    while bucket do -- For each bucket, do...
-        local output = string.upper(bucket) -- Convert all POST data to uppercase
-        coroutine.yield(output) -- Send converted data down the chain
-    end
-    -- No more buckets available.
-    coroutine.yield("&amp;filterSignature=1234") -- Append signature at the end
+if r:wsupgrade() then
+    r:wswrite("Write something: ")
+    local line = r:wsread() or "nothing"
+    r:wswrite("You wrote: " .. line);
+    r:wswrite("Goodbye!")
+    r:wsclose()
 end</pre>
 
-<p>
-The input filter supports denying/skipping a filter if it is deemed unwanted:
-</p>
-<pre class="prettyprint lang-lua">function input_filter(r)
-    if not good then
-        return -- Simply deny filtering, passing on the original content instead
-    end
-    coroutine.yield() -- wait for buckets
-    ... -- insert filter stuff here
-end</pre>
 
-<p>
-See "<a href="#modifying_buckets">Modifying contents with Lua 
-filters</a>" for more information.
-</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logging" id="logging">Logging Functions</a></h2>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaMapHandler" id="LuaMapHandler">LuaMapHandler</a> <a name="luamaphandler" id="luamaphandler">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Map a path to a lua handler</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaMapHandler uri-pattern /path/to/lua/script.lua [function-name]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>This directive matches a uri pattern to invoke a specific
-    handler function in a specific file. It uses PCRE regular
-    expressions to match the uri, and supports interpolating
-    match groups into both the file path and the function name. 
-    Be careful writing your regular expressions to avoid security
-    issues.</p>
-   <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaMapHandler "/(\w+)/(\w+)" "/scripts/$1.lua" "handle_$2"</pre>
-</div>
-        <p>This would match uri's such as /photos/show?id=9
-        to the file /scripts/photos.lua and invoke the
-        handler function handle_show on the lua vm after
-        loading that file.</p>
+<pre class="prettyprint lang-lua">        -- examples of logging messages<br />
+        r:trace1("This is a trace log message") -- trace1 through trace8 can be used <br />
+        r:debug("This is a debug log message")<br />
+        r:info("This is an info log message")<br />
+        r:notice("This is a notice log message")<br />
+        r:warn("This is a warn log message")<br />
+        r:err("This is an err log message")<br />
+        r:alert("This is an alert log message")<br />
+        r:crit("This is a crit log message")<br />
+        r:emerg("This is an emerg log message")<br />
+</pre>
 
-<pre class="prettyprint lang-config">LuaMapHandler "/bingo" "/scripts/wombat.lua"</pre>
 
-        <p>This would invoke the "handle" function, which
-        is the default if no specific function name is
-        provided.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="apache2" id="apache2">apache2 Package</a></h2>
+<p>A package named <code>apache2</code> is available with (at least) the following contents.</p>
+<dl>
+  <dt>apache2.OK</dt>
+  <dd>internal constant OK.  Handlers should return this if they've
+  handled the request.</dd>
+  <dt>apache2.DECLINED</dt>
+  <dd>internal constant DECLINED.  Handlers should return this if
+  they are not going to handle the request.</dd>
+  <dt>apache2.DONE</dt>
+  <dd>internal constant DONE.</dd>
+  <dt>apache2.version</dt>
+  <dd>Apache HTTP server version string</dd>
+  <dt>apache2.HTTP_MOVED_TEMPORARILY</dt>
+  <dd>HTTP status code</dd>
+  <dt>apache2.PROXYREQ_NONE, apache2.PROXYREQ_PROXY, apache2.PROXYREQ_REVERSE, apache2.PROXYREQ_RESPONSE</dt>
+  <dd>internal constants used by <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+  <dt>apache2.AUTHZ_DENIED, apache2.AUTHZ_GRANTED, apache2.AUTHZ_NEUTRAL, apache2.AUTHZ_GENERAL_ERROR, apache2.AUTHZ_DENIED_NO_USER</dt>
+  <dd>internal constants used by <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></dd>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaOutputFilter" id="LuaOutputFilter">LuaOutputFilter</a> <a name="luaoutputfilter" id="luaoutputfilter">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a Lua function for content output filtering</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaOutputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>2.4.5 and later</td></tr>
-</table>
-<p>Provides a means of adding a Lua function as an output filter. 
-As with input filters, output filters work as coroutines, 
-first yielding before buffers are sent, then yielding whenever 
-a bucket needs to be passed down the chain, and finally (optionally) 
-yielding anything that needs to be appended to the input data. The 
-global variable <code>bucket</code> holds the buckets as they are passed 
-onto the Lua script:
-</p>
+</dl>
+<p>(Other HTTP status codes are not yet implemented.)</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="modifying_buckets" id="modifying_buckets">Modifying contents with Lua filters</a></h2>
+    
+    <p>
+    Filter functions implemented via <code class="directive"><a href="#luainputfilter">LuaInputFilter</a></code> 
+    or <code class="directive"><a href="#luaoutputfilter">LuaOutputFilter</a></code> are designed as 
+    three-stage non-blocking functions using coroutines to suspend and resume a 
+    function as buckets are sent down the filter chain. The core structure of 
+    such a function is:
+    </p>
+    <pre class="prettyprint lang-lua">function filter(r)
+    -- Our first yield is to signal that we are ready to receive buckets.
+    -- Before this yield, we can set up our environment, check for conditions,
+    -- and, if we deem it necessary, decline filtering a request alltogether:
+    if something_bad then
+        return -- This would skip this filter.
+    end
+    -- Regardless of whether we have data to prepend, a yield MUST be called here.
+    -- Note that only output filters can prepend data. Input filters must use the 
+    -- final stage to append data to the content.
+    coroutine.yield([optional header to be prepended to the content])
+    
+    -- After we have yielded, buckets will be sent to us, one by one, and we can 
+    -- do whatever we want with them and then pass on the result.
+    -- Buckets are stored in the global variable 'bucket', so we create a loop
+    -- that checks if 'bucket' is not nil:
+    while bucket ~= nil do
+        local output = mangle(bucket) -- Do some stuff to the content
+        coroutine.yield(output) -- Return our new content to the filter chain
+    end
 
-<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter "/www/filter.lua" output_filter
-&lt;Files "*.lua"&gt;
-  SetOutputFilter myOutputFilter
-&lt;/Files&gt;</pre>
+    -- Once the buckets are gone, 'bucket' is set to nil, which will exit the 
+    -- loop and land us here. Anything extra we want to append to the content
+    -- can be done by doing a final yield here. Both input and output filters 
+    -- can append data to the content in this phase.
+    coroutine.yield([optional footer to be appended to the content])
+end</pre>
 
-<pre class="prettyprint lang-lua">--[[
-    Example output filter that escapes all HTML entities in the output
-]]--
-function output_filter(r)
-    coroutine.yield("(Handled by myOutputFilter)&lt;br/&gt;\n") -- Prepend some data to the output,
-                                                          -- yield and wait for buckets.
-    while bucket do -- For each bucket, do...
-        local output = r:escape_html(bucket) -- Escape all output
-        coroutine.yield(output) -- Send converted data down the chain
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="databases" id="databases">Database connectivity</a></h2>
+    
+    <p>
+    Mod_lua implements a simple database feature for querying and running commands
+    on the most popular database engines (mySQL, PostgreSQL, FreeTDS, ODBC, SQLite, Oracle)
+    as well as mod_dbd.
+    </p>
+    <p>The example below shows how to acquire a database handle and return information from a table:</p>
+    <pre class="prettyprint lang-lua">function handle(r)
+    -- Acquire a database handle
+    local database, err = r:dbacquire("mysql", "server=localhost,user=someuser,pass=somepass,dbname=mydb")
+    if not err then
+        -- Select some information from it
+        local results, err = database:select(r, "SELECT `name`, `age` FROM `people` WHERE 1")
+        if not err then
+            local rows = results(0) -- fetch all rows synchronously
+            for k, row in pairs(rows) do
+                r:puts( string.format("Name: %s, Age: %s&lt;br/&gt;", row[1], row[2]) )
+            end
+        else
+            r:puts("Database query error: " .. err)
+        end
+        database:close()
+    else
+        r:puts("Could not connect to the database: " .. err)
     end
-    -- No more buckets available.
 end</pre>
 
-<p>
-As with the input filter, the output filter supports denying/skipping a filter 
-if it is deemed unwanted:
-</p>
-<pre class="prettyprint lang-lua">function output_filter(r)
-    if not r.content_type:match("text/html") then
-        return -- Simply deny filtering, passing on the original content instead
-    end
-    coroutine.yield() -- wait for buckets
-    ... -- insert filter stuff here
-end</pre>
+    <p>
+    To utilize <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>, specify <code>mod_dbd</code>
+    as the database type, or leave the field blank:
+    </p>
+    <pre class="prettyprint lang-lua">local database = r:dbacquire("mod_dbd")</pre>
 
-<div class="note"><h3>Lua filters with <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></h3>
-<p> When a Lua filter is used as the underlying provider via the 
-<code class="directive"><a href="../mod/mod_filter.html#filterprovider">FilterProvider</a></code> directive, filtering 
-will only work when the <var>filter-name</var> is identical to the <var>provider-name</var>.
-</p> </div>
+    <h3><a name="database_object" id="database_object">Database object and contained functions</a></h3>
+        
+        <p>The database object returned by <code>dbacquire</code> has the following methods:</p>
+        <p><strong>Normal select and query from a database:</strong></p>
+    <pre class="prettyprint lang-lua">-- Run a statement and return the number of rows affected:
+local affected, errmsg = database:query(r, "DELETE FROM `tbl` WHERE 1")
 
-<p>
-See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more 
-information.
-</p>
+-- Run a statement and return a result set that can be used synchronously or async:
+local result, errmsg = database:select(r, "SELECT * FROM `people` WHERE 1")</pre>
 
+        <p><strong>Using prepared statements (recommended):</strong></p>
+    <pre class="prettyprint lang-lua">-- Create and run a prepared statement:
+local statement, errmsg = database:prepare(r, "DELETE FROM `tbl` WHERE `age` &gt; %u")
+if not errmsg then
+    local result, errmsg = statement:query(20) -- run the statement with age &gt; 20
+end
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaPackageCPath" id="LuaPackageCPath">LuaPackageCPath</a> <a name="luapackagecpath" id="luapackagecpath">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add a directory to lua's package.cpath</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaPackageCPath /path/to/include/?.soa</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Add a path to lua's shared library search path. Follows the same
-    conventions as lua. This just munges the package.cpath in the
-    lua vms.</p>
+-- Fetch a prepared statement from a DBDPrepareSQL directive:
+local statement, errmsg = database:prepared(r, "someTag")
+if not errmsg then
+    local result, errmsg = statement:select("John Doe", 123) -- inject the values "John Doe" and 123 into the statement
+end</pre>
 
+        <p><strong>Escaping values, closing databases etc:</strong></p>
+    <pre class="prettyprint lang-lua">-- Escape a value for use in a statement:
+local escaped = database:escape(r, [["'|blabla]])
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaPackagePath" id="LuaPackagePath">LuaPackagePath</a> <a name="luapackagepath" id="luapackagepath">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add a directory to lua's package.path</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaPackagePath /path/to/include/?.lua</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>Add a path to lua's module search path. Follows the same
-    conventions as lua. This just munges the package.path in the
-    lua vms.</p>
+-- Close a database connection and free up handles:
+database:close()
 
-    <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaPackagePath "/scripts/lib/?.lua"
-LuaPackagePath "/scripts/lib/?/init.lua"</pre>
-</div>
+-- Check whether a database connection is up and running:
+local connected = database:active()</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaQuickHandler" id="LuaQuickHandler">LuaQuickHandler</a> <a name="luaquickhandler" id="luaquickhandler">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Provide a hook for the quick handler of request processing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaQuickHandler /path/to/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>
-    This phase is run immediately after the request has been mapped to a virtal host, 
-    and can be used to either do some request processing before the other phases kick 
-    in, or to serve a request without the need to translate, map to storage et cetera. 
-    As this phase is run before anything else, directives such as <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> or <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> are void in this phase, just as 
-    URIs have not been properly parsed yet.
+    
+    <h3><a name="result_sets" id="result_sets">Working with result sets</a></h3>
+    
+    <p>The result set returned by <code>db:select</code> or by the prepared statement functions 
+    created through <code>db:prepare</code> can be used to
+    fetch rows synchronously or asynchronously, depending on the row number specified:<br />
+    <code>result(0)</code> fetches all rows in a synchronous manner, returning a table of rows.<br />
+    <code>result(-1)</code> fetches the next available row in the set, asynchronously.<br />
+    <code>result(N)</code> fetches row number <code>N</code>, asynchronously:
     </p>
-   <div class="note"><h3>Context</h3><p>This directive is not valid in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, or htaccess
-   context.</p></div>
+    <pre class="prettyprint lang-lua">-- fetch a result set using a regular query:
+local result, err = db:select(r, "SELECT * FROM `tbl` WHERE 1")
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaRoot" id="LuaRoot">LuaRoot</a> <a name="luaroot" id="luaroot">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Specify the base path for resolving relative paths for mod_lua directives</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaRoot /path/to/a/directory</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Specify the base path which will be used to evaluate all
-    relative paths within mod_lua. If not specified they
-    will be resolved relative to the current working directory,
-    which may not always work well for a server.</p>
+local rows = result(0) -- Fetch ALL rows synchronously
+local row = result(-1) -- Fetch the next available row, asynchronously
+local row = result(1234) -- Fetch row number 1234, asynchronously
+local row = result(-1, true) -- Fetch the next available row, using row names as key indexes.</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LuaScope" id="LuaScope">LuaScope</a> <a name="luascope" id="luascope">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>One of once, request, conn, thread -- default is once</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LuaScope once|request|conn|thread|server [min] [max]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LuaScope once</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Specify the life cycle scope of the Lua interpreter which will
-    be used by handlers in this "Directory." The default is "once"</p>
+    <p>One can construct a function that returns an iterative function to iterate over all rows 
+    in a synchronous or asynchronous way, depending on the async argument:
+    </p>
+    <pre class="prettyprint lang-lua">function rows(resultset, async)
+    local a = 0
+    local function getnext()
+        a = a + 1
+        local row = resultset(-1)
+        return row and a or nil, row
+    end
+    if not async then
+        return pairs(resultset(0))
+    else
+        return getnext, self
+    end
+end
 
-   <dl>
-    <dt>once:</dt> <dd>use the interpreter once and throw it away.</dd>
+local statement, err = db:prepare(r, "SELECT * FROM `tbl` WHERE `age` &gt; %u")
+if not err then
+     -- fetch rows asynchronously:
+    local result, err = statement:select(20)
+    if not err then
+        for index, row in rows(result, true) do
+            ....
+        end
+    end
 
-    <dt>request:</dt> <dd>use the interpreter to handle anything based on
-             the same file within this request, which is also
-             request scoped.</dd>
+     -- fetch rows synchronously:
+    local result, err = statement:select(20)
+    if not err then
+        for index, row in rows(result, false) do
+            ....
+        end
+    end
+end</pre>
 
-    <dt>conn:</dt> <dd>Same as request but attached to the connection_rec</dd>
+    
+    <h3><a name="closing_databases" id="closing_databases">Closing a database connection</a></h3>
+        
 
-    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread 
-            handling the request (only available with threaded MPMs).</dd>
+    <p>Database handles should be closed using <code>database:close()</code> when they are no longer
+    needed. If you do not close them manually, they will eventually be garbage collected and 
+    closed by mod_lua, but you may end up having too many unused connections to the database 
+    if you leave the closing up to mod_lua. Essentially, the following two measures are
+    the same:
+    </p>
+    <pre class="prettyprint lang-lua">-- Method 1: Manually close a handle
+local database = r:dbacquire("mod_dbd")
+database:close() -- All done
 
-    <dt>server:</dt>  <dd>This one is different than others because the
-            server scope is quite long lived, and multiple threads
-            will have the same server_rec. To accommodate this,
-            server scoped Lua states are stored in an apr
-            resource list. The <code>min</code> and <code>max</code> arguments 
-            specify the minimum and maximum number of Lua states to keep in the 
-            pool.</dd>
-   </dl>
-    <p>
-    Generally speaking, the <code>thread</code> and <code>server</code> scopes 
-    execute roughly 2-3 times faster than the rest, because they don't have to 
-    spawn new Lua states on every request (especially with the event MPM, as 
-    even keepalive requests will use a new thread for each request). If you are 
-    satisfied that your scripts will not have problems reusing a state, then 
-    the <code>thread</code> or <code>server</code> scopes should be used for 
-    maximum performance. While the <code>thread</code> scope will provide the 
-    fastest responses, the <code>server</code> scope will use less memory, as 
-    states are pooled, allowing f.x. 1000 threads to share only 100 Lua states, 
-    thus using only 10% of the memory required by the <code>thread</code> scope.
+-- Method 2: Letting the garbage collector close it
+local database = r:dbacquire("mod_dbd")
+database = nil -- throw away the reference
+collectgarbage() -- close the handle via GC</pre>
+
+    
+    <h3><a name="database_caveat" id="database_caveat">Precautions when working with databases</a></h3>
+    
+    <p>Although the standard <code>query</code> and <code>run</code> functions are freely 
+    available, it is recommended that you use prepared statements whenever possible, to 
+    both optimize performance (if your db handle lives on for a long time) and to minimize 
+    the risk of SQL injection attacks. <code>run</code> and <code>query</code> should only
+    be used when there are no variables inserted into a statement (a static statement). 
+    When using dynamic statements, use <code>db:prepare</code> or <code>db:prepared</code>.
     </p>
+    
 
 </div>
 </div>
index 168976d94f0b41efc34da6f99f735049ae8e7cfb..0083ee299cf0dd2e641be2b0f923354a357f8159 100644 (file)
@@ -103,271 +103,935 @@ fonctionnement interne de httpd.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#databases">Connectivité aux bases de données</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicconf" id="basicconf">Configuration de base</a></h2>
+<div class="directive-section"><h2><a name="luaauthzprovider" id="luaauthzprovider">Directive</a> <a name="LuaAuthzProvider" id="LuaAuthzProvider">LuaAuthzProvider</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Branche une fonction fournisseur d'autorisation dans <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.3 du serveur HTTP Apache</td></tr>
+</table>
+<p>Lorsqu'une fonction lua a été enregistrée en tant que fournisseur
+d'autorisation, elle peut être appelée via la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> :</p>
 
-<p>La directive de base pour le chargement du module est</p>
 
-<pre class="prettyprint lang-config">LoadModule lua_module modules/mod_lua.so</pre>
+<pre class="prettyprint lang-config">LuaRoot /usr/local/apache2/lua
+LuaAuthzProvider foo authz.lua authz_check_foo
+&lt;Location /&gt;
+  Require foo johndoe
+&lt;/Location&gt;</pre>
 
+<pre class="prettyprint lang-lua">require "apache2"
+function authz_check_foo(r, who)
+    if r.user ~= who then return apache2.AUTHZ_DENIED
+    return apache2.AUTHZ_GRANTED
+end</pre>
 
-<p>
-<code>mod_lua</code> fournit un gestionnaire nommé
-<code>lua-script</code> qui peut être utilisé avec une directive
-<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ou <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> :</p>
 
-<pre class="prettyprint lang-config">&lt;Files *.lua&gt;
-    SetHandler lua-script
-&lt;/Files&gt;</pre>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luacodecache" id="luacodecache">Directive</a> <a name="LuaCodeCache" id="LuaCodeCache">LuaCodeCache</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure le cache de code compilé.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaCodeCache stat|forever|never</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LuaCodeCache stat</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>
+    Cette directive permet de définir le comportement du cache de code
+    en mémoire. La valeur par défaut est stat ; dans ce cas, le script
+    du niveau le plus haut (et pas les scripts inclus) est vérifié à
+    chaque fois que ce fichier est nécessaire, et est rechargé si la
+    date de modification est plus récente que celle du script déjà
+    chargé. Les autres valeurs permettent respectivement de garder le
+    fichier en cache perpétuellement (forever - jamais vérifié ni
+    remplacé), ou de ne jamais le mettre en cache (never).</p>
 
-<p>
-Ceci aura pour effet de faire traiter les requêtes pour les fichiers
-dont l'extension est <code>.lua</code> par <code>mod_lua</code> en
-invoquant cette fonction de <code>gestion</code> de fichier.
-</p>
+    <p>En général, les valeurs stat et forever sont utilisées pour un
+    serveur en production, et les valeurs stat ou never pour un serveur
+    en développement.</p>
 
-<p>Pour plus de détails, voir la directive
-<code class="directive">LuaMapHandler</code>.
- </p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="writinghandlers" id="writinghandlers">Ecrire des gestionnaires</a></h2>
-<p>Dans l'API du serveur HTTP Apache, un gestionnaire est une sorte de
-point d'accroche (hook) spécifique responsable de la génération de la
-réponse. <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> et
-<code class="module"><a href="../mod/mod_status.html">mod_status</a></code> sont des exemples de modules comportant un
-gestionnaire.</p>
+    <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaCodeCache stat
+LuaCodeCache forever
+LuaCodeCache never</pre>
+</div>
 
-<p><code>mod_lua</code> cherche toujours à invoquer une fonction Lua pour le
-gestionnaire, plutôt que de simplement évaluer le corps d'un script dans
-le style de CGI. Une fonction de gestionnaire se présente comme suit :</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahookaccesschecker" id="luahookaccesschecker">Directive</a> <a name="LuaHookAccessChecker" id="LuaHookAccessChecker">LuaHookAccessChecker</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase access_checker du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookAccessChecker  /chemin/vers/lua/script.lua  hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
+version 2.3.15 du serveur HTTP Apache.</td></tr>
+</table>
+<p>Ajoute votre fonction d'accroche à la phase access_checker. Une
+fonction d'accroche access checker renvoie en général OK, DECLINED, ou
+HTTP_FORBIDDEN.</p>
+<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
+   "early" ou "late" permettent de contrôler le moment auquel ce script
+   s'exécute par rapport aux autres modules.</p></div>
 
-<pre class="prettyprint lang-lua">
-<strong>example.lua</strong><br />
--- exemple de gestionnaire
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahookauthchecker" id="luahookauthchecker">Directive</a> <a name="LuaHookAuthChecker" id="LuaHookAuthChecker">LuaHookAuthChecker</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase auth_checker du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookAuthChecker  /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
+version 2.3.15 du serveur HTTP Apache.</td></tr>
+</table>
+<p>Invoque une fonction lua au cours de la phase auth_checker du
+traitement de la requête. Cette directive peut s'utiliser pour
+implémenter une vérification arbitraire de l'authentification et de
+l'autorisation. Voici un exemple très simple :
+</p>
+<pre class="prettyprint lang-lua">require 'apache2'
 
-require "string"
+-- fonction d'accroche authcheck fictive
+-- Si la requête ne contient aucune donnée d'authentification, l'en-tête
+-- de la réponse est défini et un code 401 est renvoyé afin de demander au
+-- navigateur d'effectuer une authentification basique. Si la requête
+-- comporte des données d'authentification, elles ne sont pas vraiment
+-- consultées, mais on admet la prise en compte de l'utilisateur 'foo' et
+-- on la valide. On vérifie ensuite si l'utilisateur est bien 'foo' et on
+-- accepte la requête.
+function authcheck_hook(r)
 
---[[
-     Il s'agit du nom de méthode par défaut pour les gestionnaires Lua ;
-     voir les noms de fonctions optionnels dans la directive
-     LuaMapHandler pour choisir un point d'entrée différent.
---]]
-function handle(r)
-    r.content_type = "text/plain"
+   -- recherche des informations d'authentification
+   auth = r.headers_in['Authorization']
+   if auth ~= nil then
+     -- définition d'un utilisateur par défaut
+     r.user = 'foo'
+   end
 
-    if r.method == 'GET' then
-       r:puts("Hello Lua World!\n")
-        for k, v in pairs( r:parseargs() ) do
-            r:puts( string.format("%s: %s\n", k, v) )
-        end
-    elseif r.method == 'POST' then
-       r:puts("Hello Lua World!\n")
-        for k, v in pairs( r:parsebody() ) do
-            r:puts( string.format("%s: %s\n", k, v) )
-        end
-    else
-    elseif r.method == 'PUT' then
--- message d'erreur personnalisé
-        r:puts("Unsupported HTTP method " .. r.method)
-       r.status = 405
-        return apache2.ok
-    else
--- message d'erreur ErrorDocument
-        return 501
-    end
-    return apache2.OK
+   if r.user == nil then
+      r:debug("authcheck: user is nil, returning 401")
+      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
+      return 401
+   elseif r.user == "foo" then
+      r:debug('user foo: OK')
+   else
+      r:debug("authcheck: user='" .. r.user .. "'")
+      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
+      return 401
+   end
+   return apache2.OK
 end</pre>
 
+<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
+   "early" ou "late" permettent de contrôler le moment auquel ce script
+   s'exécute par rapport aux autres modules.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahookcheckuserid" id="luahookcheckuserid">Directive</a> <a name="LuaHookCheckUserID" id="LuaHookCheckUserID">LuaHookCheckUserID</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase check_user_id du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookCheckUserID  /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
+version 2.3.15 du serveur HTTP Apache.</td></tr>
+</table><p>...</p>
+   <div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
+   "early" ou "late" permettent de contrôler le moment auquel ce script
+   s'exécute par rapport aux autres modules.</p></div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahookfixups" id="luahookfixups">Directive</a> <a name="LuaHookFixups" id="LuaHookFixups">LuaHookFixups</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase de correction du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookFixups  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
 <p>
-Ce gestionnaire se contente d'afficher les arguments codés d'un uri ou
-d'un formulaire dans un page au format texte.
+    Idem LuaHookTranslateName, mais s'exécute durant la phase de
+    correction.
 </p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a> <a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase insert_filter du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookInsertFilter  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>Non encore implémenté</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahooklog" id="luahooklog">Directive</a> <a name="LuaHookLog" id="LuaHookLog">LuaHookLog</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet une insertion dans la phase de journalisation du
+traitement d'une requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookLog  /path/to/lua/script.lua log_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
 <p>
-Cela signifie que vous pouvez (et êtes encouragé à) avoir plusieurs
-gestionnaires (ou points d'entrée, ou filtres) dans le même script.
+    Ce dispositif d'insertion simple permet d'exécuter une fonction
+    lorsque httpd entre dans la phase de journalisation du traitement
+    d'une requête. Vous pouvez ainsi ajouter des données à vos propres
+    entrées de journalisation, manipuler les entrées du journal standard
+    avant leur enregistrement ou empêcher l'enregistrement d'une entrée
+    dans le journal. Pour empêcher l'enregistrement normal des entrées
+    du journal, renvoyez simplement <code>apache2.DONE</code> dans votre
+    gestionnaire de journalisation, ou au contraire, renvoyez
+    <code>apache2.OK</code> pour que httpd effectue une journalisation
+    normale.
 </p>
+<p>Exemple :</p>
+<pre class="prettyprint lang-config">LuaHookLog /path/to/script.lua logger</pre>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="writingauthzproviders" id="writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></h2>
-
-
-<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> fournit une interface d'autorisation
-de haut niveau bien plus facile à utiliser que dans les hooks
-correspondants. Le premier argument de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> permet de spécifier le
-fournisseur d'autorisation à utiliser. Pour chaque directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>,
-<code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> appellera le fournisseur d'autorisation
-spécifié, le reste de la ligne constituant les paramètres. Le
-fournisseur considéré va alors vérifier les autorisations et fournir le
-résultat dans une valeur de retour.</p>
-
-<p>En général, le fournisseur authz est appelé avant l'authentification.
-S'il doit connaître le nom d'utilisateur authentifié (ou si
-l'utilisateur est appelé à être authentifié), le fournisseur doit
-renvoyer <code>apache2.AUTHZ_DENIED_NO_USER</code>, ce qui va
-déclancher le processus d'authentification et un deuxième appel du
-fournisseur authz.</p>
-
-<p>La fonction du fournisseur authz ci-dessous accepte deux arguments,
-une adresse IP et un nom d'utilisateur. Elle autorise l'accès dans le
-cas où la requête provient de l'adresse IP spécifiée, ou si
-l'utilisateur authentifié correspond au second argument :</p>
-
-<pre class="prettyprint lang-lua">
-<strong>authz_provider.lua</strong><br />
-
-require 'apache2'
+<pre class="prettyprint lang-lua">-- /path/to/script.lua --
+function logger(r)
+    -- on joue à pile ou face :
+    -- Si on obtient 1, on écrit dans notre propre journal Lua et on dit
+    -- à httpd de ne pas enregistrer d'entrée dans le journal standard..
+    -- Si on obtient 2, on nettoie un peu les données avant que httpd ne
+    -- les enregistre dans le journal standard.
 
-function authz_check_foo(r, ip, user)
-    if r.useragent_ip == ip then
-        return apache2.AUTHZ_GRANTED
-    elseif r.user == nil then
-        return apache2.AUTHZ_DENIED_NO_USER
-    elseif r.user == user then
-        return apache2.AUTHZ_GRANTED
+    if math.random(1,2) == 1 then
+        -- On effectue notre propre journalisation et le journal
+       -- standard n'est pas alimenté
+        local f = io.open("/foo/secret.log", "a")
+        if f then
+            f:write("Quelque chose de secret est arrivé à " .. r.uri .. "\n")
+            f:close()
+        end
+        return apache2.DONE -- On dit à httpd de ne rien enregistrer
+                           --dans le journal standard
     else
-        return apache2.AUTHZ_DENIED
+        r.uri = r.uri:gsub("somesecretstuff", "") -- nettoie les données
+        return apache2.OK -- et httpd doit alors les enregistrer.
     end
 end</pre>
 
 
-<p>La configuration suivante enregistre cette fonction en tant que
-fournisseur <code>foo</code>, et la configure por l'URL <code>/</code> :</p>
-<pre class="prettyprint lang-config">LuaAuthzProvider foo authz_provider.lua authz_check_foo
-&lt;Location /&gt;
-  Require foo 10.1.2.3 john_doe
-&lt;/Location&gt;</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a> <a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase map_to_storage du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookMapToStorage  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Identique à la directive
+    <code class="directive">LuaHookTranslateName</code>, mais s'exécute à la
+    phase map-to-storage du traitement de la requête. Les modules comme
+    mod_cache agissent pendant cette phase, ce qui permet de présenter
+    un exemple intéressant de ce que l'on peut faire ici :</p>
+    <pre class="prettyprint lang-config">LuaHookMapToStorage /path/to/lua/script.lua check_cache</pre>
 
+    <pre class="prettyprint lang-lua">require"apache2"
+cached_files = {}
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="writinghooks" id="writinghooks">Ecriture de fonctions d'accroche
-(hooks)</a></h2>
+function read_file(filename)
+    local input = io.open(filename, "r")
+    if input then
+        local data = input:read("*a")
+        cached_files[filename] = data
+        file = cached_files[filename]
+        input:close()
+    end
+    return cached_files[filename]
+end
 
-<p>Les fonctions d'accroche déterminent la manière dont les modules (et
-les scripts Lua) participent au traitement des requêtes. Chaque type
-d'accroche proposé par le serveur a un rôle spécifique, comme
-l'association de requêtes au système de fichiers, le contrôle d'accès,
-ou la définition de types MIME : </p>
+function check_cache(r)
+    if r.filename:match("%.png$") then -- Ne concerne que les fichiers PNG
+        local file = cached_files[r.filename] -- Vérifie les entrées du cache
+        if not file then
+            file = read_file(r.filename)  -- Lit le fichier vers le cache
+        end
+        if file then -- Si le fichier existe, on l'envoie
+            r.status = 200
+            r:write(file)
+            r:info(("%s a été envoyé au client depuis le cache"):format(r.filename))
+            return apache2.DONE -- cout-circuite le gestionnaire par défaut des fichiers PNG
+        end
+    end
+    return apache2.DECLINED -- Si nous n'avons rien eu à faire, nous laissons les autres s'en charger
+end</pre>
 
-<table class="bordered"><tr class="header">
-        <th>Phase d'accroche</th>
-        <th>Directive mod_lua</th>
-        <th>Description</th>
-    </tr>
-<tr>
-        <td>Gestionnaire rapide</td>
-        <td><code class="directive"><a href="#luaquickhandler">LuaQuickHandler</a></code></td>
-        <td>Il s'agit de la première accroche appelée lorsqu'une requête
-       a été associée à un serveur ou un serveur virtuel.</td>
-    </tr>
-<tr class="odd">
-        <td>Phase de traduction</td>
-        <td><code class="directive"><a href="#luahooktranslatename">LuaHookTranslateName</a></code></td>
-        <td>Cette phase traduit l'URI de la requête en nom de fichier
-       sur le système. Ce sont des modules comme
-       <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> et <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> qui
-       interviennent au cours de cette phase.</td>
-    </tr>
-<tr>
-        <td>Choix du lieu de stockage de la ressource</td>
-        <td><code class="directive"><a href="#luahookmaptostorage">LuaHookMapToStorage</a></code></td>
-        <td>Cette phase définit le lieu de stockage de la ressource :
-       physique, en cache ou externe/mandaté. Elle est assurée par les
-       modules de mandat ou de mise en cache.</td>
-    </tr>
-<tr class="odd">
-        <td>Autorisation d'accès</td>
-        <td><code class="directive"><a href="#luahookaccesschecker">LuaHookAccessChecker</a></code></td>
-        <td>Cette phase vérifie si un client a l'autorisation d'accès à
-       la ressource. Elle s'exécute avant l'authentification de
-       l'utisateur ; il faut donc être prudent.
-        </td>
-    </tr>
-<tr>
-        <td>Vérification de l'identifiant utilisateur</td>
-        <td><code class="directive"><a href="#luahookcheckuserid">LuaHookCheckUserID</a></code></td>
-        <td>Cette phase vérifie l'identifiant de l'utilisateur ayant
-       fait l'objet d'une négociation.</td>
-    </tr>
-<tr class="odd">
-        <td>Vérification de l'autorisation d'accès</td>
-        <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code>
-       ou
-            <code class="directive"><a href="#luaauthzprovider">LuaAuthzProvider</a></code></td>
-        <td>Cette phase vérifie l'autorisation d'accès d'un utilisateur
-       en fonction des ses paramètres de connexion, comme
-       l'identifiant, le certificat, etc...
-        </td>
-    </tr>
-<tr>
-        <td>Vérification du type de la ressource</td>
-        <td><code class="directive"><a href="#luahooktypechecker">LuaHookTypeChecker</a></code></td>
-        <td>Cette phase assigne un type de contenu et un gestionnaire à
-       la ressource.</td>
-    </tr>
-<tr class="odd">
-        <td>Derniers réglages</td>
-        <td><code class="directive"><a href="#luahookfixups">LuaHookFixups</a></code></td>
-        <td>C'est la dernière phase avant l'activation des gestionnaires
-       de contenu. Toute modification de dernière minute à la requête
-       doit être effectuée ici.</td>
-    </tr>
-<tr>
-        <td>Gestionnaire de contenu</td>
-        <td>fichiers fx. <code>.lua</code> ou directive <code class="directive"><a href="#luamaphandler">LuaMapHandler</a></code></td>
-        <td>C'est durant cette phase que le contenu est traité. Les
-       fichiers sont lus, interprétés, certains sont exécutés, et le
-       résultat obtenu est envoyé au client.</td>
-    </tr>
-<tr class="odd">
-        <td>Journalisation</td>
-        <td><code class="directive"><a href="#luahooklog">LuaHookLog</a></code></td>
-        <td>Lorsqu'une requête a été traitée, plusieurs phases de
-       journalisation interviennent, et enregistrent leurs résultats
-       dans les fichiers d'erreur ou d'accès. Mod_lua peut
-       s'intercaler au départ de ce processus et ainsi contrôler la
-       journalisation.</td>
-    </tr>
-</table>
 
-<p>Les fonctions d'accroche reçoivent l'objet de la requête comme seul
-argument (sauf LuaAuthzProvider qui reçoit aussi des arguments en
-provenance de la directive Require). Elles peuvent renvoyer une valeur,
-selon la fonction, mais il s'agit en général d'un
-code d'état HTTP ou des valeurs OK, DONE, ou DECLINED,
-que vous pouvez écrire dans Lua sous la forme <code>apache2.OK</code>,
-<code>apache2.DONE</code>, ou <code>apache2.DECLINED</code>.</p>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahooktranslatename" id="luahooktranslatename">Directive</a> <a name="LuaHookTranslateName" id="LuaHookTranslateName">LuaHookTranslateName</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée à la phase du nom de
+traduction du traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookTranslateName  /chemin/vers/lua/script.lua  nom_fonction_hook [early|late]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
+version 2.3.15 du serveur HTTP Apache.</td></tr>
+</table><p>
+    Cette directive permet d'ajouter un point d'entrée (à
+    APR_HOOK_MIDDLE) à la phase du nom de traduction du traitement de la
+    requête. La fonction hook accepte un seul argument, le request_rec,
+    et doit renvoyer un code d'état qui est soit un code d'erreur HTTP,
+    ou une constante définie dans le module apache2 :  apache2.OK,
+    apache2.DECLINED, ou apache2.DONE.</p>
+
+    <p>Pour ceux qui ne sont pas familiers avec les points d'entrée
+    (hook), en gros, chaque hook sera invoqué jusqu'à ce que l'un
+    d'entre eux renvoie apache2.OK. Si un hook n'effectuer pas la
+    traduction, il doit juste renvoyer apache2.DECLINED. Si le
+    traitement de la requête doit être interrompu, la valeur renvoyée
+    doit être apache2.DONE.</p>
 
+    <p>Exemple :</p>
 
-<pre class="prettyprint lang-lua">
-<strong>translate_name.lua</strong><br />
--- exemple d'accroche qui réécrit un URI en chemin du système de fichiers.
+<pre class="prettyprint lang-config"># httpd.conf
+LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</pre>
 
-require 'apache2'
 
-function translate_name(r)
-    if r.uri == "/translate-name" then
-        r.filename = r.document_root .. "/find_me.txt"
+<pre class="prettyprint lang-lua">-- /scripts/conf/hooks.lua --
+require "apache2"
+function silly_mapper(r)
+    if r.uri == "/" then
+        r.filename = "/var/www/home.lua"
         return apache2.OK
+    else
+        return apache2.DECLINED
     end
-    -- on ne gère pas cette URL et on donne sa chance à un autre module
-    return apache2.DECLINED
 end</pre>
 
 
+   <div class="note"><h3>Contexte</h3><p>Cette directive ne peut être
+   utilisée ni à l'intérieur d'une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, ni dans un fichier htaccess.</p></div>
 
-<pre class="prettyprint lang-lua">
-<strong>translate_name2.lua</strong><br />
---[[ exemple d'accroche qui réécrit un URI vers un autre URI. Il renvoie
-       un apache2.DECLINED pour permettre à un autre interpréteur d'URL de
-       travailler sur la substitution, y compris l'accroche translate_name
-       de base dont les tables de correspondances se basent sur DocumentRoot.
+   <div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
+   "early" ou "late" permettent de contrôler le moment auquel ce script
+   s'exécute par rapport aux autres modules.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luahooktypechecker" id="luahooktypechecker">Directive</a> <a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase type_checker du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookTypeChecker  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>...</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luainherit" id="luainherit">Directive</a> <a name="LuaInherit" id="LuaInherit">LuaInherit</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle la manière dont les sections de configuration
+parentes sont fusionnées dans les enfants</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaInherit none|parent-first|parent-last</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LuaInherit parent-first</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Versions 2.4.0 et supérieures</td></tr>
+</table><p>Par défaut, si des directives LuaHook* se trouvent dans
+    des sections de configuration Directory ou Location qui se
+    chevauchent, les scripts
+    définis dans les sections les plus spécifiques s'exécutent
+    <em>après</em> ceux définis dans les sections plus génériques
+    (LuaInherit parent-first). Vous pouvez inverser cet ordre, ou faire
+    en sorte que le contexte parent ne s'applique pas du tout.</p>
+
+    <p>Jusqu'aux versions 2.3.x, le comportement par défaut consistait à
+    ignorer les directives LuaHook* situées dans les sections de
+    configuration parentes.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luainputfilter" id="luainputfilter">Directive</a> <a name="LuaInputFilter" id="LuaInputFilter">LuaInputFilter</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit une fonction Lua pour le filtrage en entrée</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaInputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.5 du serveur HTTP
+Apache</td></tr>
+</table>
+<p>Cette directive permet d'ajouter un filtre en entrée sous la forme
+d'une fonction Lua. A l'instar des filtres en sorties, les filtres en
+entrée fonctionnent comme des sous-routines, intervenant dans un premier
+temps avant l'envoi du contenu des tampons, puis chaque fois qu'un
+paquet de données doit être transmis à la chaîne, et éventuellement
+produisant toute donnée à ajouter aux données en entrée. La variable
+globale <code>bucket</code> contient les paquets de données tels qu'ils
+sont transmis au script Lua :
+</p>
+
+<pre class="prettyprint lang-config">LuaInputFilter myInputFilter /www/filter.lua input_filter
+&lt;Files *.lua&gt;
+  SetInputFilter myInputFilter
+&lt;/Files&gt;</pre>
+
+<pre class="prettyprint lang-lua">--[[
+    Exemple de filtre en entrée qui convertit toutes les données POST en
+    majuscules.
+]]--
+function input_filter(r)
+    print("luaInputFilter called") -- pour débogage
+    coroutine.yield() -- attend des paquets de données
+    while bucket do -- Pour chaque paquet, faire ...
+        local output = string.upper(bucket) -- Convertit toutes les données POST en majuscules
+        coroutine.yield(output) -- Envoie les données traitées à la chaîne de filtrage
+    end
+    -- plus aucune donnée à traiter.
+    coroutine.yield("&amp;filterSignature=1234") -- Ajoute une signature à la fin
+end</pre>
+
+<p>
+Le filtre en entrée peut interdire ou sauter un filtre s'il est
+considéré comme indésirable :
+</p>
+<pre class="prettyprint lang-lua">function input_filter(r)
+    if not good then
+        return -- Empêche tout simplement le filtrage et transmet le contenu original
+    end
+    coroutine.yield() -- attend des paquets de données
+    ...               -- insert les filtres ici
+end</pre>
+
+<p>
+Voir "<a href="#modifying_buckets">Modification de contenu avec les
+filtres Lua</a>" pour plus de détails.
+</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luamaphandler" id="luamaphandler">Directive</a> <a name="LuaMapHandler" id="LuaMapHandler">LuaMapHandler</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance un chemin avec un gestionnaire lua</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaMapHandler modele-uri /chemin/vers/lua/script.lua
+[nom-fonction]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Cette directive permet de faire correspondre un modèle d'uri avec
+    une fonction de gestionnaire située dans un fichier spécifique. Elle
+    utilise les expressions rationnelles PCRE pour mettre en
+    correspondance l'uri, et supporte les groupes de correspondance
+    d'interpolation dans le chemin du fichier et le nom de la fonction.
+    Prenez garde aux problèmes de sécurité en écrivant vos expressions
+    rationnelles.</p>
+   <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaMapHandler /(\w+)/(\w+) /scripts/$1.lua handle_$2</pre>
+</div>
+        <p>Cette directive va faire correspondre des uri comme
+       /photos/show?id=9 au fichier /scripts/photos.lua, et invoquera la
+       fonction de gestionnaire handle_show au niveau de la vm lua
+       après chargement de ce fichier.</p>
+
+<pre class="prettyprint lang-config">LuaMapHandler /bingo /scripts/wombat.lua</pre>
+
+        <p>Cette directive invoquera la fonction "handle" qui est la
+       valeur par défaut si aucun nom de fonction spécifique n'est
+       spécifié.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luaoutputfilter" id="luaoutputfilter">Directive</a> <a name="LuaOutputFilter" id="LuaOutputFilter">LuaOutputFilter</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit une fonction Lua pour le filtrage de contenu en
+sortie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaOutputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur HTTP
+Apache</td></tr>
+</table>
+<p>&gt;Cette directive permet d'ajouter un filtre en sortie sous la forme
+d'une fonction Lua. A l'instar des filtres en sorties, les filtres en
+entrée fonctionnent comme des sous-routines, intervenant dans un premier
+temps avant l'envoi du contenu des tampons, puis chaque fois qu'un
+paquet de données doit être transmis à la chaîne, et éventuellement
+produisant toute donnée à ajouter aux données en sortie. La variable
+globale <code>bucket</code> contient les paquets de données tels qu'ils
+sont transmis au script Lua :
+</p>
+
+<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter /www/filter.lua output_filter
+&lt;Files *.lua&gt;
+  SetOutputFilter myOutputFilter
+&lt;/Files&gt;</pre>
+
+<pre class="prettyprint lang-lua">--[[
+    Exemple de filtre en sortie qui échappe toutes les entités HTML en
+    sortie
+]]--
+function output_filter(r)
+    coroutine.yield("(Handled by myOutputFilter)&lt;br/&gt;\n") -- Ajoute des données au début de la sortie,
+                                                                -- puis attend des paquets de données à traiter
+    while bucket do -- Pour chaque paquet, faire ...
+        local output = r:escape_html(bucket) -- Echappe les données en sortie
+        coroutine.yield(output) -- Envoie les données traitées à la chaîne
+    end
+    -- plus aucune donnée à traiter.
+end</pre>
+
+<p>
+Comme les filres en entrée, le filtre en sortie peut interdire ou sauter un filtre s'il est
+considéré comme indésirable :
+</p>
+<pre class="prettyprint lang-lua">function output_filter(r)
+    if not r.content_type:match("text/html") then
+        return -- Empêche tout simplement le filtrage et transmet le contenu original
+    end
+    coroutine.yield() -- attend des paquets de données
+    ...               -- insert les filtres ici
+end</pre>
+
+<div class="note"><h3>Les filtres Lua avec <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></h3>
+<p>Lorsqu'on utilise un filtre Lua comme fournisseur sous-jacent via la
+directive <code class="directive"><a href="../mod/mod_filter.html#filterprovider">FilterProvider</a></code>, le
+filtrage ne fonctionnera que si <var>filter-name</var> est identique à
+<var>provider-name</var>.
+</p> </div>
+
+<p>
+Voir "<a href="#modifying_buckets">Modification de contenu avec les
+filtres Lua</a>" pour plus de détails.
+</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luapackagecpath" id="luapackagecpath">Directive</a> <a name="LuaPackageCPath" id="LuaPackageCPath">LuaPackageCPath</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un répertoire au package.cpath de lua</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaPackageCPath /chemin/vers/include/?.soa</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Cette directive permet d'ajouter un chemin à la liste des chemins
+    de recherche des bibliothèques partagées de lua. Ceci modifie le
+    package.cpath dans les vms lua.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luapackagepath" id="luapackagepath">Directive</a> <a name="LuaPackagePath" id="LuaPackagePath">LuaPackagePath</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un répertoire au package.path de lua</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaPackagePath /chemin/vers/include/?.lua</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table><p>Cette directive permet d'ajouter un chemin à la liste des
+    chemins de recherche du module lua. Elle suit les mêmes conventions
+    que lua. Ceci modifie le package.path dans les vms lua.</p>
+
+    <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaPackagePath /scripts/lib/?.lua
+LuaPackagePath /scripts/lib/?/init.lua</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luaquickhandler" id="luaquickhandler">Directive</a> <a name="LuaQuickHandler" id="LuaQuickHandler">LuaQuickHandler</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la gestion rapide du
+traitement de la requête</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaQuickHandler /path/to/script.lua hook_function_name</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Cette phase s'exécute juste après l'attribution de la requête à
+    un serveur virtuel, et permet d'effectuer certains traitements avant
+    le déroulement des autres phases, ou de servir une requête sans
+    avoir à la traduire, l'associer à un espace de stockage, etc...
+    Comme cette phase s'exécute avant toute autre, les directives telles
+    que <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ne
+    sont pas encore prises en compte, car Les URI n'ont pas encore été
+    entièrement interprétés.
+    </p>
+   <div class="note"><h3>Contexte</h3><p>Cette directive ne peut être
+   utilisée ni à l'intérieur d'une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, ni dans un fichier htaccess.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luaroot" id="luaroot">Directive</a> <a name="LuaRoot" id="LuaRoot">LuaRoot</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le chemin de base pour la résolution des chemins
+relatifs dans les directives de mod_lua</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaRoot /chemin/vers/un/répertoire</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Cette directive permet de spécifier le chemin de base qui sera
+    utilisé pour évaluer tous les chemins relatifs dans mod_lua. En
+    l'absence de cette directive, les chemins relatifs sont résolus par
+    rapport au répertoire de travail courant, ce qui ne sera pas
+    toujours approprié pour un serveur.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="luascope" id="luascope">Directive</a> <a name="LuaScope" id="LuaScope">LuaScope</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Une valeur parmi once, request, conn, thread -- la valeur par défaut est once</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaScope once|request|conn|thread|server [min] [max]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LuaScope once</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
+</table>
+    <p>Cette directive permet de spécifier la durée de vie de
+    l'interpréteur Lua qui sera utilisé dans ce "répertoire". La valeur
+    par défaut est "once".</p>
+
+   <dl>
+    <dt>once:</dt> <dd>utilise l'interpréteur une fois.</dd>
+
+    <dt>request:</dt> <dd>utilise l'interpréteur pour traiter tout ce
+    qui est basé sur le même fichier dans la requête, et qui se trouve
+    aussi dans la portée de la requête.</dd>
+
+    <dt>conn:</dt> <dd>idem request, mais attaché à connection_rec</dd>
+
+    <dt>thread:</dt> <dd>Utilise l'interpréteur pendant toute la durée
+    de vie du thread qui traite la requête (disponible seulement avec
+    les MPMs threadés).</dd>
+
+    <dt>server:</dt>  <dd>Le comportement est ici différent, car la
+    portée du serveur présente une durée de vie assez longue, et
+    plusieurs threads vont partager le même server_rec. Pour gérer tout
+    ceci, les états lua du serveur sont stockés dans une liste de ressources
+    apr. Les arguments <code>min</code> et <code>max</code> permettent
+    de spécifier les nombres minimaux et maximaux d'états lua à stocker
+    dans la liste.</dd>
+   </dl>
+   <p>En général, les portées <code>thread</code> et <code>server</code>
+   sont 2 à 3 fois plus rapides que les autres, car elles n'ont pas besoin
+   de régénérer de nouveaux états Lua à chaque requête (comme c'est le
+   cas avec le MPM event, où même les connexions persistantes utilisent un
+   nouveau thread pour chaque requête). Si vous pensez que vos scripts
+   n'auront pas de problème s'il réutilisent un état, alors les portées
+   <code>thread</code> ou <code>server</code> doivent être utilisées car
+   elles présenteront de meilleures performances. Alors que la portée
+   <code>thread</code> fournira les réponses les plus rapides, la portée
+   <code>server</code> utilisera moins de mémoire car les états sont
+   rassemblés dans des jeux, permettant par exemple à 1000 threads de
+   partager 100 états Lua, ne nécessitant ainsi que 10% de la mémoire
+   requise par la portée <code>thread</code>.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicconf" id="basicconf">Configuration de base</a></h2>
+
+<p>La directive de base pour le chargement du module est</p>
+
+<pre class="prettyprint lang-config">LoadModule lua_module modules/mod_lua.so</pre>
+
+
+<p>
+<code>mod_lua</code> fournit un gestionnaire nommé
+<code>lua-script</code> qui peut être utilisé avec une directive
+<code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ou <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> :</p>
+
+<pre class="prettyprint lang-config">&lt;Files *.lua&gt;
+    SetHandler lua-script
+&lt;/Files&gt;</pre>
+
+
+<p>
+Ceci aura pour effet de faire traiter les requêtes pour les fichiers
+dont l'extension est <code>.lua</code> par <code>mod_lua</code> en
+invoquant cette fonction de <code>gestion</code> de fichier.
+</p>
+
+<p>Pour plus de détails, voir la directive
+<code class="directive">LuaMapHandler</code>.
+ </p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="writinghandlers" id="writinghandlers">Ecrire des gestionnaires</a></h2>
+<p>Dans l'API du serveur HTTP Apache, un gestionnaire est une sorte de
+point d'accroche (hook) spécifique responsable de la génération de la
+réponse. <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, <code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code> et
+<code class="module"><a href="../mod/mod_status.html">mod_status</a></code> sont des exemples de modules comportant un
+gestionnaire.</p>
+
+<p><code>mod_lua</code> cherche toujours à invoquer une fonction Lua pour le
+gestionnaire, plutôt que de simplement évaluer le corps d'un script dans
+le style de CGI. Une fonction de gestionnaire se présente comme suit :</p>
+
+
+<pre class="prettyprint lang-lua">
+<strong>example.lua</strong><br />
+-- exemple de gestionnaire
+
+require "string"
+
+--[[
+     Il s'agit du nom de méthode par défaut pour les gestionnaires Lua ;
+     voir les noms de fonctions optionnels dans la directive
+     LuaMapHandler pour choisir un point d'entrée différent.
+--]]
+function handle(r)
+    r.content_type = "text/plain"
+
+    if r.method == 'GET' then
+       r:puts("Hello Lua World!\n")
+        for k, v in pairs( r:parseargs() ) do
+            r:puts( string.format("%s: %s\n", k, v) )
+        end
+    elseif r.method == 'POST' then
+       r:puts("Hello Lua World!\n")
+        for k, v in pairs( r:parsebody() ) do
+            r:puts( string.format("%s: %s\n", k, v) )
+        end
+    else
+    elseif r.method == 'PUT' then
+-- message d'erreur personnalisé
+        r:puts("Unsupported HTTP method " .. r.method)
+       r.status = 405
+        return apache2.ok
+    else
+-- message d'erreur ErrorDocument
+        return 501
+    end
+    return apache2.OK
+end</pre>
+
+
+<p>
+Ce gestionnaire se contente d'afficher les arguments codés d'un uri ou
+d'un formulaire dans un page au format texte.
+</p>
+
+<p>
+Cela signifie que vous pouvez (et êtes encouragé à) avoir plusieurs
+gestionnaires (ou points d'entrée, ou filtres) dans le même script.
+</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="writingauthzproviders" id="writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></h2>
+
+
+<p><code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> fournit une interface d'autorisation
+de haut niveau bien plus facile à utiliser que dans les hooks
+correspondants. Le premier argument de la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> permet de spécifier le
+fournisseur d'autorisation à utiliser. Pour chaque directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code>,
+<code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code> appellera le fournisseur d'autorisation
+spécifié, le reste de la ligne constituant les paramètres. Le
+fournisseur considéré va alors vérifier les autorisations et fournir le
+résultat dans une valeur de retour.</p>
+
+<p>En général, le fournisseur authz est appelé avant l'authentification.
+S'il doit connaître le nom d'utilisateur authentifié (ou si
+l'utilisateur est appelé à être authentifié), le fournisseur doit
+renvoyer <code>apache2.AUTHZ_DENIED_NO_USER</code>, ce qui va
+déclancher le processus d'authentification et un deuxième appel du
+fournisseur authz.</p>
+
+<p>La fonction du fournisseur authz ci-dessous accepte deux arguments,
+une adresse IP et un nom d'utilisateur. Elle autorise l'accès dans le
+cas où la requête provient de l'adresse IP spécifiée, ou si
+l'utilisateur authentifié correspond au second argument :</p>
+
+<pre class="prettyprint lang-lua">
+<strong>authz_provider.lua</strong><br />
+
+require 'apache2'
+
+function authz_check_foo(r, ip, user)
+    if r.useragent_ip == ip then
+        return apache2.AUTHZ_GRANTED
+    elseif r.user == nil then
+        return apache2.AUTHZ_DENIED_NO_USER
+    elseif r.user == user then
+        return apache2.AUTHZ_GRANTED
+    else
+        return apache2.AUTHZ_DENIED
+    end
+end</pre>
+
+
+<p>La configuration suivante enregistre cette fonction en tant que
+fournisseur <code>foo</code>, et la configure por l'URL <code>/</code> :</p>
+<pre class="prettyprint lang-config">LuaAuthzProvider foo authz_provider.lua authz_check_foo
+&lt;Location /&gt;
+  Require foo 10.1.2.3 john_doe
+&lt;/Location&gt;</pre>
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="writinghooks" id="writinghooks">Ecriture de fonctions d'accroche
+(hooks)</a></h2>
+
+<p>Les fonctions d'accroche déterminent la manière dont les modules (et
+les scripts Lua) participent au traitement des requêtes. Chaque type
+d'accroche proposé par le serveur a un rôle spécifique, comme
+l'association de requêtes au système de fichiers, le contrôle d'accès,
+ou la définition de types MIME : </p>
+
+<table class="bordered"><tr class="header">
+        <th>Phase d'accroche</th>
+        <th>Directive mod_lua</th>
+        <th>Description</th>
+    </tr>
+<tr>
+        <td>Gestionnaire rapide</td>
+        <td><code class="directive"><a href="#luaquickhandler">LuaQuickHandler</a></code></td>
+        <td>Il s'agit de la première accroche appelée lorsqu'une requête
+       a été associée à un serveur ou un serveur virtuel.</td>
+    </tr>
+<tr class="odd">
+        <td>Phase de traduction</td>
+        <td><code class="directive"><a href="#luahooktranslatename">LuaHookTranslateName</a></code></td>
+        <td>Cette phase traduit l'URI de la requête en nom de fichier
+       sur le système. Ce sont des modules comme
+       <code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code> et <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> qui
+       interviennent au cours de cette phase.</td>
+    </tr>
+<tr>
+        <td>Choix du lieu de stockage de la ressource</td>
+        <td><code class="directive"><a href="#luahookmaptostorage">LuaHookMapToStorage</a></code></td>
+        <td>Cette phase définit le lieu de stockage de la ressource :
+       physique, en cache ou externe/mandaté. Elle est assurée par les
+       modules de mandat ou de mise en cache.</td>
+    </tr>
+<tr class="odd">
+        <td>Autorisation d'accès</td>
+        <td><code class="directive"><a href="#luahookaccesschecker">LuaHookAccessChecker</a></code></td>
+        <td>Cette phase vérifie si un client a l'autorisation d'accès à
+       la ressource. Elle s'exécute avant l'authentification de
+       l'utisateur ; il faut donc être prudent.
+        </td>
+    </tr>
+<tr>
+        <td>Vérification de l'identifiant utilisateur</td>
+        <td><code class="directive"><a href="#luahookcheckuserid">LuaHookCheckUserID</a></code></td>
+        <td>Cette phase vérifie l'identifiant de l'utilisateur ayant
+       fait l'objet d'une négociation.</td>
+    </tr>
+<tr class="odd">
+        <td>Vérification de l'autorisation d'accès</td>
+        <td><code class="directive"><a href="#luahookauthchecker">LuaHookAuthChecker</a></code>
+       ou
+            <code class="directive"><a href="#luaauthzprovider">LuaAuthzProvider</a></code></td>
+        <td>Cette phase vérifie l'autorisation d'accès d'un utilisateur
+       en fonction des ses paramètres de connexion, comme
+       l'identifiant, le certificat, etc...
+        </td>
+    </tr>
+<tr>
+        <td>Vérification du type de la ressource</td>
+        <td><code class="directive"><a href="#luahooktypechecker">LuaHookTypeChecker</a></code></td>
+        <td>Cette phase assigne un type de contenu et un gestionnaire à
+       la ressource.</td>
+    </tr>
+<tr class="odd">
+        <td>Derniers réglages</td>
+        <td><code class="directive"><a href="#luahookfixups">LuaHookFixups</a></code></td>
+        <td>C'est la dernière phase avant l'activation des gestionnaires
+       de contenu. Toute modification de dernière minute à la requête
+       doit être effectuée ici.</td>
+    </tr>
+<tr>
+        <td>Gestionnaire de contenu</td>
+        <td>fichiers fx. <code>.lua</code> ou directive <code class="directive"><a href="#luamaphandler">LuaMapHandler</a></code></td>
+        <td>C'est durant cette phase que le contenu est traité. Les
+       fichiers sont lus, interprétés, certains sont exécutés, et le
+       résultat obtenu est envoyé au client.</td>
+    </tr>
+<tr class="odd">
+        <td>Journalisation</td>
+        <td><code class="directive"><a href="#luahooklog">LuaHookLog</a></code></td>
+        <td>Lorsqu'une requête a été traitée, plusieurs phases de
+       journalisation interviennent, et enregistrent leurs résultats
+       dans les fichiers d'erreur ou d'accès. Mod_lua peut
+       s'intercaler au départ de ce processus et ainsi contrôler la
+       journalisation.</td>
+    </tr>
+</table>
+
+<p>Les fonctions d'accroche reçoivent l'objet de la requête comme seul
+argument (sauf LuaAuthzProvider qui reçoit aussi des arguments en
+provenance de la directive Require). Elles peuvent renvoyer une valeur,
+selon la fonction, mais il s'agit en général d'un
+code d'état HTTP ou des valeurs OK, DONE, ou DECLINED,
+que vous pouvez écrire dans Lua sous la forme <code>apache2.OK</code>,
+<code>apache2.DONE</code>, ou <code>apache2.DECLINED</code>.</p>
+
+
+<pre class="prettyprint lang-lua">
+<strong>translate_name.lua</strong><br />
+-- exemple d'accroche qui réécrit un URI en chemin du système de fichiers.
+
+require 'apache2'
+
+function translate_name(r)
+    if r.uri == "/translate-name" then
+        r.filename = r.document_root .. "/find_me.txt"
+        return apache2.OK
+    end
+    -- on ne gère pas cette URL et on donne sa chance à un autre module
+    return apache2.DECLINED
+end</pre>
+
+
+
+<pre class="prettyprint lang-lua">
+<strong>translate_name2.lua</strong><br />
+--[[ exemple d'accroche qui réécrit un URI vers un autre URI. Il renvoie
+       un apache2.DECLINED pour permettre à un autre interpréteur d'URL de
+       travailler sur la substitution, y compris l'accroche translate_name
+       de base dont les tables de correspondances se basent sur DocumentRoot.
 
      Note: utilisez le drapeau early/late de la directive pour
      l'exécuter avant ou après mod_alias.
@@ -539,1458 +1203,794 @@ end</pre>
         </tr>
 <tr>
           <td><code>hostname</code></td>
-          <td>string</td>
-          <td>non</td>
-         <td>Le nom d'hôte, tel que défini par l'en-tête
-         <code>Host:</code> ou par un URI complet.</td>
-        </tr>
-<tr class="odd">
-          <td><code>is_https</code></td>
-          <td>boolean</td>
-          <td>non</td>
-          <td>Indique si la requête à été faite via HTTPS</td>
-        </tr>
-<tr>
-          <td><code>is_initial_req</code></td>
-          <td>boolean</td>
-          <td>non</td>
-          <td>Indique si la requête courante est la requête initiale ou
-         une sous-requête.</td>
-        </tr>
-<tr class="odd">
-          <td><code>limit_req_body</code></td>
-          <td>number</td>
-          <td>non</td>
-          <td>La taille maximale du corps de la requête, ou 0 si aucune
-         limite.</td>
-        </tr>
-<tr>
-       <td><code>log_id</code></td>
-          <td>string</td>
-          <td>non</td>
-         <td>L'identifiant de la requête dans les journaux d'accès ou
-         d'erreur.</td>
-        </tr>
-<tr class="odd">
-          <td><code>method</code></td>
-          <td>string</td>
-          <td>non</td>
-         <td>La méthode de la requête, par exemple <code>GET</code> ou
-         <code>POST</code>.</td>
-        </tr>
-<tr>
-          <td><code>notes</code></td>
-          <td>table</td>
-          <td>oui</td>
-         <td>Une liste de notes qui peuvent être transmises d'un module
-         à l'autre.</td>
-        </tr>
-<tr class="odd">
-          <td><code>options</code></td>
-          <td>string</td>
-          <td>non</td>
-          <td>La valeur de la directive Options pour la requête
-         courante.</td>
-        </tr>
-<tr>
-          <td><code>path_info</code></td>
-          <td>string</td>
-          <td>non</td>
-         <td>La valeur de PATH_INFO extraite de la requête.</td>
-        </tr>
-<tr class="odd">
-          <td><code>port</code></td>
-          <td>number</td>
-          <td>non</td>
-          <td>Le port du serveur utilisé par la requête.</td>
-        </tr>
-<tr>
-          <td><code>protocol</code></td>
-          <td>string</td>
-          <td>non</td>
-         <td>Le protocole utilisé, par exemple <code>HTTP/1.1</code></td>
-        </tr>
-<tr class="odd">
-          <td><code>proxyreq</code></td>
-          <td>string</td>
-          <td>oui</td>
-         <td>Indique s'il s'agit d'une requête mandatée ou non. Cette
-         valeur est en général définie au cours de la phase
-         post_read_request/translate_name du traitement de la requête.</td>
-        </tr>
-<tr>
-         <td><code>range</code></td>
-          <td>string</td>
-          <td>non</td>
-         <td>Le contenu de l'en-tête <code>Range:</code>.</td>
-        </tr>
-<tr class="odd">
-          <td><code>remaining</code></td>
-          <td>number</td>
-          <td>non</td>
-          <td>Le nombre d'octets du corps de la requête restant à lire.</td>
-        </tr>
-<tr>
-          <td><code>server_built</code></td>
-          <td>string</td>
-          <td>non</td>
-          <td>La date de compilation du serveur.</td>
-        </tr>
-<tr class="odd">
-          <td><code>server_name</code></td>
-          <td>string</td>
-          <td>non</td>
-          <td>Le nom du serveur pour cette requête.</td>
-        </tr>
-<tr>
-          <td><code>some_auth_required</code></td>
-          <td>boolean</td>
+          <td>string</td>
           <td>non</td>
-          <td>Indique si une autorisation est/était requise pour cette
-         requête.</td>
+         <td>Le nom d'hôte, tel que défini par l'en-tête
+         <code>Host:</code> ou par un URI complet.</td>
         </tr>
 <tr class="odd">
-          <td><code>subprocess_env</code></td>
-          <td>table</td>
-          <td>oui</td>
-         <td>Le jeu de variables d'environnement pour cette requête.</td>
+          <td><code>is_https</code></td>
+          <td>boolean</td>
+          <td>non</td>
+          <td>Indique si la requête à été faite via HTTPS</td>
         </tr>
 <tr>
-          <td><code>started</code></td>
-          <td>number</td>
+          <td><code>is_initial_req</code></td>
+          <td>boolean</td>
           <td>non</td>
-          <td>Le moment où le serveur a été (re)démarré, en secondes
-         depuis epoch (1er janvier 1970)</td>
+          <td>Indique si la requête courante est la requête initiale ou
+         une sous-requête.</td>
         </tr>
 <tr class="odd">
-         <td><code>status</code></td>
+          <td><code>limit_req_body</code></td>
           <td>number</td>
-          <td>oui</td>
-         <td>Le code de retour (courant) pour cette requête, par
-         exemple <code>200</code> ou <code>404</code>.</td>
+          <td>non</td>
+          <td>La taille maximale du corps de la requête, ou 0 si aucune
+         limite.</td>
         </tr>
 <tr>
-          <td><code>the_request</code></td>
+       <td><code>log_id</code></td>
           <td>string</td>
           <td>non</td>
-         <td>La chaîne de la requête telle qu'elle a été envoyée par le
-         client, par exemple <code>GET /foo/bar HTTP/1.1</code>.</td>
+         <td>L'identifiant de la requête dans les journaux d'accès ou
+         d'erreur.</td>
         </tr>
 <tr class="odd">
-          <td><code>unparsed_uri</code></td>
+          <td><code>method</code></td>
           <td>string</td>
           <td>non</td>
-         <td>La partie URI non interprétée de la requête</td>
+         <td>La méthode de la requête, par exemple <code>GET</code> ou
+         <code>POST</code>.</td>
         </tr>
 <tr>
-          <td><code>uri</code></td>
-          <td>string</td>
+          <td><code>notes</code></td>
+          <td>table</td>
           <td>oui</td>
-         <td>L'URI après interprétation par httpd</td>
+         <td>Une liste de notes qui peuvent être transmises d'un module
+         à l'autre.</td>
         </tr>
 <tr class="odd">
-          <td><code>user</code></td>
+          <td><code>options</code></td>
           <td>string</td>
-          <td>oui</td>
-         <td>Si une authentification a été effectuée, nom de
-         l'utilisateur authentifié.</td>
+          <td>non</td>
+          <td>La valeur de la directive Options pour la requête
+         courante.</td>
         </tr>
 <tr>
-          <td><code>useragent_ip</code></td>
+          <td><code>path_info</code></td>
           <td>string</td>
           <td>non</td>
-         <td>L'adresse IP de l'agent qui a envoyé la requête</td>
+         <td>La valeur de PATH_INFO extraite de la requête.</td>
         </tr>
-</table>
-       </dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="functions" id="functions">Méthodes de l'objet request_rec</a></h2>
-
-<p>L'objet request_rec possède (au minimum) les méthodes suivantes :</p>
-
-<pre class="prettyprint lang-lua">r:flush()   -- vide le tampon de sortie
-            -- Renvoie true si le vidage a été effectué avec succès,
-           -- false dans le cas contraire.
-
-while nous_avons_des_données_à_envoyer do
-    r:puts("Bla bla bla\n") -- envoi des données à envoyer vers le tampon
-    r:flush() -- vidage du tampon (envoi au client)
-    r.usleep(500000) -- mise en attente pendant 0.5 secondes et bouclage
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:addoutputfilter(name|function) -- ajoute un filtre en sortie
-
-r:addoutputfilter("fooFilter") -- insère le filtre fooFilter dans le flux de sortie</pre>
-
-
-<pre class="prettyprint lang-lua">r:sendfile(filename) -- envoie un fichier entier au client en utilisant sendfile s'il est
-                     -- supporté par la plateforme :
-
-if use_sendfile_thing then
-    r:sendfile("/var/www/large_file.img")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:parseargs() -- renvoie deux tables : une table standard de couples
-              -- clé/valeur pour les données GET simples,
-              -- et une autre pour les données
-              -- multivaluées (par exemple foo=1&amp;foo=2&amp;foo=3) :
-
-local GET, GETMULTI = r:parseargs()
-r:puts("Votre nom est : " .. GET['name'] or "Unknown")</pre>
-
-
-
-<pre class="prettyprint lang-lua">r:parsebody()([sizeLimit]) -- interprète le corps de la
-                           -- requête en tant que POST et renvoie
-                           -- deux tables lua, comme r:parseargs(). Un
-                           -- nombre optionnel peut être fourni
-                           -- pour spécifier le nombre maximal
-                           -- d'octets à interpréter. La
-                           -- valeur par défaut est 8192.
-
-local POST, POSTMULTI = r:parsebody(1024*1024)
-r:puts("Votre nom est : " .. POST['name'] or "Unknown")</pre>
-
-
-
-<pre class="prettyprint lang-lua">r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la réponse</pre>
-
-
-<pre class="prettyprint lang-lua">r:write("une simple chaîne") -- affichage dans le corps de la réponse</pre>
-
-
-<pre class="prettyprint lang-lua">r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Echappe le code HTML et renvoie le résultat</pre>
-
-
-<pre class="prettyprint lang-lua">r:base64_encode(string) -- Encode une chaîne à l'aide du standard de codage Base64.
-
-local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q=</pre>
-
-
-<pre class="prettyprint lang-lua">r:base64_decode(string) -- Décode une chaîne codée en Base64.
-
-local decoded = r:base64_decode("VGhpcyBpcyBhIHRlc3Q=") -- returns 'This is a test'</pre>
-
-
-<pre class="prettyprint lang-lua">r:md5(string) -- Calcule et renvoie le condensé MD5 d'une chaîne en mode binaire (binary safe).
-
-local hash = r:md5("This is a test") -- returns ce114e4501d2f4e2dcea3e17b546f339</pre>
-
-
-<pre class="prettyprint lang-lua">r:sha1(string) -- Calcule et renvoie le condensé SHA1 d'une chaîne en mode binaire (binary safe).
-
-local hash = r:sha1("This is a test") -- returns a54d88e06612d820bc3be72877c74f257b561b19</pre>
-
-
-<pre class="prettyprint lang-lua">r:escape(string) -- Echappe une chaîne de type URL.
-
-local url = "http://foo.bar/1 2 3 &amp; 4 + 5"
-local escaped = r:escape(url) -- renvoie 'http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5'</pre>
-
-
-<pre class="prettyprint lang-lua">r:unescape(string) -- Déséchappe une chaîne de type URL.
-
-local url = "http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5"
-local unescaped = r:unescape(url) -- renvoie 'http://foo.bar/1 2 3 &amp; 4 + 5'</pre>
-
-
-<pre class="prettyprint lang-lua">r:construct_url(string) -- Construit une URL à partir d'un URI
-
-local url = r:construct_url(r.uri)</pre>
-
-
-<pre class="prettyprint lang-lua">r.mpm_query(number) -- Interroge le serveur à propos de son module MPM via la requête ap_mpm_query.
-
-local mpm = r.mpm_query(14)
-if mpm == 1 then
-    r:puts("Ce serveur utilise le MPM Event")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:expr(string) -- Evalue une chaîne de type <a href="../expr.html">expr</a>.
-
-if r:expr("%{HTTP_HOST} =~ /^www/") then
-    r:puts("Ce nom d'hôte commence par www")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:scoreboard_process(a) -- Interroge le serveur à propos du
-                        -- processus à la position <code>a</code>.
-
-local process = r:scoreboard_process(1)
-r:puts("Le serveur 1 a comme PID " .. process.pid)</pre>
-
-
-<pre class="prettyprint lang-lua">r:scoreboard_worker(a, b) -- Interroge le serveur à propos du
-                          -- thread <code>b</code>, dans le processus <code>a</code>.
-
-local thread = r:scoreboard_worker(1, 1)
-r:puts("L'ID du thread 1 du serveur 1 est " .. thread.tid .. " et son
-état est " .. thread.status)</pre>
-
-
-<pre class="prettyprint lang-lua">r:clock() -- Renvoie l'heure courante avec une précision d'une microseconde.</pre>
-
-
-<pre class="prettyprint lang-lua">r:requestbody(filename) -- Lit et renvoie le corps d'une requête.
-                        -- Si 'filename' est spécifié, le
-                        -- corps de requête n'est pas
-                        -- renvoyé, mais sauvegardé dans
-                        -- le fichier correspondant.
-
-local input = r:requestbody()
-r:puts("Vous m'avez envoyé le corps de requête suivant :\n")
-r:puts(input)</pre>
-
-
-<pre class="prettyprint lang-lua">r:add_input_filter(filter_name) -- Ajoute le filtre en entrée 'filter_name'.</pre>
-
-
-<pre class="prettyprint lang-lua">r:module_info(module_name) -- Interroge le serveur à propos d'un module.
-
-local mod = r.module_info("mod_lua.c")
-if mod then
-    for k, v in pairs(mod.commands) do
-       r:puts( ("%s: %s\n"):format(k,v)) -- affiche toutes les directives
-                                         -- implémentées par ce module.
-    end
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:loaded_modules() -- Renvoie une liste des modules chargés par httpd.
-
-for k, module in pairs(r:loaded_modules()) do
-    r:puts("J'ai chargé le module " .. module .. "\n")
-end</pre>
-
-
-<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- Génère le nom d'un fichier run-time
-                                 -- (par exemple la mémoire partagée
-                                 -- "file") relativement au répertoire de run-time.</pre>
-
-
-<pre class="prettyprint lang-lua">r:server_info() -- Renvoie une table contenant des informations à
-                -- propos du serveur, comme le nom de
-                -- l'exécutable httpd, le module mpm utilisé, etc...</pre>
-
-
-<pre class="prettyprint lang-lua">r:set_document_root(file_path) -- Définit la racine des documents
-                               -- pour la requête à file_path.</pre>
-
-
-<pre class="prettyprint lang-lua">r:add_version_component(component_string) -- Ajoute un élément à
-                                          -- la bannière du serveur.</pre>
-
-
-<pre class="prettyprint lang-lua">r:set_context_info(prefix, docroot) -- Définit le préfixe et la
-                                    -- racine des documents du contexte pour une requête.</pre>
-
-
-<pre class="prettyprint lang-lua">r:os_escape_path(file_path) -- Convertit un chemin du système de
-                            -- fichiers en URL indépendamment du système d'exploitation.</pre>
-
-
-<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Echappe une chaîne pour journalisation.</pre>
+<tr class="odd">
+          <td><code>port</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>Le port du serveur utilisé par la requête.</td>
+        </tr>
+<tr>
+          <td><code>protocol</code></td>
+          <td>string</td>
+          <td>non</td>
+         <td>Le protocole utilisé, par exemple <code>HTTP/1.1</code></td>
+        </tr>
+<tr class="odd">
+          <td><code>proxyreq</code></td>
+          <td>string</td>
+          <td>oui</td>
+         <td>Indique s'il s'agit d'une requête mandatée ou non. Cette
+         valeur est en général définie au cours de la phase
+         post_read_request/translate_name du traitement de la requête.</td>
+        </tr>
+<tr>
+         <td><code>range</code></td>
+          <td>string</td>
+          <td>non</td>
+         <td>Le contenu de l'en-tête <code>Range:</code>.</td>
+        </tr>
+<tr class="odd">
+          <td><code>remaining</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>Le nombre d'octets du corps de la requête restant à lire.</td>
+        </tr>
+<tr>
+          <td><code>server_built</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>La date de compilation du serveur.</td>
+        </tr>
+<tr class="odd">
+          <td><code>server_name</code></td>
+          <td>string</td>
+          <td>non</td>
+          <td>Le nom du serveur pour cette requête.</td>
+        </tr>
+<tr>
+          <td><code>some_auth_required</code></td>
+          <td>boolean</td>
+          <td>non</td>
+          <td>Indique si une autorisation est/était requise pour cette
+         requête.</td>
+        </tr>
+<tr class="odd">
+          <td><code>subprocess_env</code></td>
+          <td>table</td>
+          <td>oui</td>
+         <td>Le jeu de variables d'environnement pour cette requête.</td>
+        </tr>
+<tr>
+          <td><code>started</code></td>
+          <td>number</td>
+          <td>non</td>
+          <td>Le moment où le serveur a été (re)démarré, en secondes
+         depuis epoch (1er janvier 1970)</td>
+        </tr>
+<tr class="odd">
+         <td><code>status</code></td>
+          <td>number</td>
+          <td>oui</td>
+         <td>Le code de retour (courant) pour cette requête, par
+         exemple <code>200</code> ou <code>404</code>.</td>
+        </tr>
+<tr>
+          <td><code>the_request</code></td>
+          <td>string</td>
+          <td>non</td>
+         <td>La chaîne de la requête telle qu'elle a été envoyée par le
+         client, par exemple <code>GET /foo/bar HTTP/1.1</code>.</td>
+        </tr>
+<tr class="odd">
+          <td><code>unparsed_uri</code></td>
+          <td>string</td>
+          <td>non</td>
+         <td>La partie URI non interprétée de la requête</td>
+        </tr>
+<tr>
+          <td><code>uri</code></td>
+          <td>string</td>
+          <td>oui</td>
+         <td>L'URI après interprétation par httpd</td>
+        </tr>
+<tr class="odd">
+          <td><code>user</code></td>
+          <td>string</td>
+          <td>oui</td>
+         <td>Si une authentification a été effectuée, nom de
+         l'utilisateur authentifié.</td>
+        </tr>
+<tr>
+          <td><code>useragent_ip</code></td>
+          <td>string</td>
+          <td>non</td>
+         <td>L'adresse IP de l'agent qui a envoyé la requête</td>
+        </tr>
+</table>
+       </dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="functions" id="functions">Méthodes de l'objet request_rec</a></h2>
 
+<p>L'objet request_rec possède (au minimum) les méthodes suivantes :</p>
 
-<pre class="prettyprint lang-lua">r.strcmp_match(string, pattern) -- Vérifie si 'string' correspond à
-                                -- 'pattern' via la fonction strcmp_match (GLOBs). Par exemple, est-ce que
-                                -- 'www.example.com' correspond à '*.example.com' ?
+<pre class="prettyprint lang-lua">r:flush()   -- vide le tampon de sortie
+            -- Renvoie true si le vidage a été effectué avec succès,
+           -- false dans le cas contraire.
 
-local match = r.strcmp_match("foobar.com", "foo*.com")
-if match then 
-    r:puts("foobar.com matches foo*.com")
+while nous_avons_des_données_à_envoyer do
+    r:puts("Bla bla bla\n") -- envoi des données à envoyer vers le tampon
+    r:flush() -- vidage du tampon (envoi au client)
+    r.usleep(500000) -- mise en attente pendant 0.5 secondes et bouclage
 end</pre>
 
 
-<pre class="prettyprint lang-lua">r:set_keepalive() -- Définit l'état de persistance d'une requête.
-                  -- Renvoie true dans la mesure du possible, false dans le cas contraire.</pre>
-
-
-<pre class="prettyprint lang-lua">r:make_etag() -- Génère et renvoie le etag pour la requête courante.</pre>
-
-
-<pre class="prettyprint lang-lua">r:send_interim_response(clear) -- Renvoie une réponse d'intérim (1xx) au
-                               -- client. Si 'clear' est vrai, les en-têtes disponibles
-                               -- seront envoyés et effacés.</pre>
-
-
-<pre class="prettyprint lang-lua">r:custom_response(status_code, string) -- Génère et définit une réponse
-                                       -- personnalisée pour un code d'état particulier.
-                                       -- Le fonctionnement est très proche de celui de la directive ErrorDocument.
-
-r:custom_response(404, "Baleted!")</pre>
-
-
-<pre class="prettyprint lang-lua">r.exists_config_define(string) -- Vérifie si une définition de configuration existe.
-
-if r.exists_config_define("FOO") then
-    r:puts("httpd a probablement été lancé avec l'option -DFOO, ou FOO a
-    été défini dans la configuration")
-end</pre>
-
+<pre class="prettyprint lang-lua">r:addoutputfilter(name|function) -- ajoute un filtre en sortie
 
-<pre class="prettyprint lang-lua">r:state_query(string) -- Interroge le serveur à propos de son état.</pre>
+r:addoutputfilter("fooFilter") -- insère le filtre fooFilter dans le flux de sortie</pre>
 
 
-<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Exécute stat() sur un fichier, et renvoie une table contenant
-                           -- des informations à propos de ce fichier.
+<pre class="prettyprint lang-lua">r:sendfile(filename) -- envoie un fichier entier au client en utilisant sendfile s'il est
+                     -- supporté par la plateforme :
 
-local info = r:stat("/var/www/foo.txt")
-if info then
-    r:puts("Ce fichier existe et a été modifié pour la dernière fois à : " .. info.modified)
+if use_sendfile_thing then
+    r:sendfile("/var/www/large_file.img")
 end</pre>
 
 
-<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Exécute une recherche à base d'expression rationnelle
-                                  -- sur une chaîne, et renvoie les éventuelles correspondances trouvées.
-
-local matches = r:regex("foo bar baz", [[foo (\w+) (\S*)]])
-if matches then
-    r:puts("L'expression rationnelle correspond et le dernier mot
-    capturé ($2) est : " .. matches[2])
-end
-
--- Exemple avec insensibilité à la casse :
-local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
-
--- les drapeaux peuvent être une combibaison bit à bit de :
--- 0x01: insensibilité à la casse
--- 0x02: recherche multiligne</pre>
-
-
-<pre class="prettyprint lang-lua">r.usleep(microsecondes) -- Interrompt l'exécution du script pendant le nombre de microsecondes spécifié.</pre>
-
-
-<pre class="prettyprint lang-lua">r:dbacquire(dbType[, dbParams]) -- Acquiert une connexion à une base de données et renvoie une classe database.
-                                -- Voir '<a href="#databases">Connectivité aux bases de données</a>'
-                               -- pour plus de détails.</pre>
-
-
-<pre class="prettyprint lang-lua">r:ivm_set("key", value) -- Défini une variable Inter-VM avec une valeur spécifique.
-                        -- Ces valeurs sont conservées même si la VM est
-                       -- arrêtée ou non utilisée, et ne doivent donc être
-                       -- utilisées que si MaxConnectionsPerChild &gt; 0.
-                       -- Les valeurs peuvent être de type number, string
-                       -- ou boolean et sont stockées séparément pour
-                       -- chaque processus (elles ne seront donc pas d'une
-                       -- grande utilité si l'on utilise le mpm prefork).
-                        
-r:ivm_get("key")        -- Lit le contenu d'une variable définie via ivm_set. Renvoie
-                       -- le contenu de la variable si elle existe, ou nil
-                       -- dans le cas contraire.
-                        
--- Voici un exemple de lecture/écriture qui sauvegarde une variable
--- globale en dehors de la VM :
-function handle(r)
-    -- La première VM qui effectue l'appel suivant n'obtiendra aucune
-    -- valeur, et devra la créer
-    local foo = r:ivm_get("cached_data")
-    if not foo then
-        foo = do_some_calcs() -- simulation de valeurs de retour
-        r:ivm_set("cached_data", foo) -- définition globale de la variable
-    end
-    r:puts("La donnée en cache est : ", foo)
-end</pre>
-
-<pre class="prettyprint lang-lua">r:htpassword(string [,algorithm [,cost]]) -- Génère un hash de mot de passe à partir d'une chaîne.
-                                          -- algorithm: 0 = APMD5 (défaut), 1 = SHA, 2 = BCRYPT, 3 = CRYPT.
-                                          -- cost: ne s'utilise qu'avec l'algorythme BCRYPT (défaut = 5).</pre>
+<pre class="prettyprint lang-lua">r:parseargs() -- renvoie deux tables : une table standard de couples
+              -- clé/valeur pour les données GET simples,
+              -- et une autre pour les données
+              -- multivaluées (par exemple foo=1&amp;foo=2&amp;foo=3) :
 
+local GET, GETMULTI = r:parseargs()
+r:puts("Votre nom est : " .. GET['name'] or "Unknown")</pre>
 
-<pre class="prettyprint lang-lua">r:mkdir(dir [,mode]) -- Crée un répertoire et définit son mode via le paramètre optionnel mode.</pre>
 
 
-<pre class="prettyprint lang-lua">r:mkrdir(dir [,mode]) -- Crée des répertoires de manière récursive et définit
-                      -- leur mode via le paramètre optionnel mode.</pre>
+<pre class="prettyprint lang-lua">r:parsebody()([sizeLimit]) -- interprète le corps de la
+                           -- requête en tant que POST et renvoie
+                           -- deux tables lua, comme r:parseargs(). Un
+                           -- nombre optionnel peut être fourni
+                           -- pour spécifier le nombre maximal
+                           -- d'octets à interpréter. La
+                           -- valeur par défaut est 8192.
 
+local POST, POSTMULTI = r:parsebody(1024*1024)
+r:puts("Votre nom est : " .. POST['name'] or "Unknown")</pre>
 
-<pre class="prettyprint lang-lua">r:rmdir(dir) -- Supprime un répertoire.</pre>
 
 
-<pre class="prettyprint lang-lua">r:touch(file [,mtime]) -- Définit la date de modification d'un fichier à la date courante ou à
-                       -- la valeur optionnelle mtime en msec.</pre>
+<pre class="prettyprint lang-lua">r:puts("bonjour", " le monde", "!") -- affichage dans le corps de la réponse</pre>
 
 
-<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Renvoie une table contenant toutes les entrées de répertoires.
+<pre class="prettyprint lang-lua">r:write("une simple chaîne") -- affichage dans le corps de la réponse</pre>
 
--- Renvoie un chemin sous forme éclatée en chemin, fichier, extension
-function handle(r)
-  local dir = r.context_document_root
-  for _, f in ipairs(r:get_direntries(dir)) do
-    local info = r:stat(dir .. "/" .. f)
-    if info then
-      local mtime = os.date(fmt, info.mtime / 1000000)
-      local ftype = (info.filetype == 2) and "[dir] " or "[file]"
-      r:puts( ("%s %s %10i %s\n"):format(ftype, mtime, info.size, f) )
-    end
-  end
-end</pre>
 
+<pre class="prettyprint lang-lua">r:escape_html("&lt;html&gt;test&lt;/html&gt;") -- Echappe le code HTML et renvoie le résultat</pre>
 
-<pre class="prettyprint lang-lua">r.date_parse_rfc(string) -- Interprète une chaîne date/heure et renvoie l'équivalent en secondes depuis epoche.</pre>
 
+<pre class="prettyprint lang-lua">r:base64_encode(string) -- Encode une chaîne à l'aide du standard de codage Base64.
 
-<pre class="prettyprint lang-lua">r:getcookie(key) -- Obtient un cookie HTTP</pre>
+local encoded = r:base64_encode("This is a test") -- returns VGhpcyBpcyBhIHRlc3Q=</pre>
 
 
-<pre class="prettyprint lang-lua">r:setcookie(key, value, secure, expires) -- Définit un cookie HTTP, par exemple :
-r:setcookie("foo", "bar and stuff", false, os.time() + 86400)</pre>
+<pre class="prettyprint lang-lua">r:base64_decode(string) -- Décode une chaîne codée en Base64.
 
+local decoded = r:base64_decode("VGhpcyBpcyBhIHRlc3Q=") -- returns 'This is a test'</pre>
 
-<pre class="prettyprint lang-lua">r:wsupgrade() -- Met à jour une connexion vers les WebSockets si possible (et si demandé) :
-if r:wsupgrade() then -- si la mise à jour est possible :
-    r:wswrite("Bienvenue dans les websockets!") -- écrit quelque chose à l'intention du client
-    r:wsclose()  -- Au revoir !
-end</pre>
 
+<pre class="prettyprint lang-lua">r:md5(string) -- Calcule et renvoie le condensé MD5 d'une chaîne en mode binaire (binary safe).
 
-<pre class="prettyprint lang-lua">r:wsread() -- Lit un cadre de websocket depuis une connexion vers websocket mise à jour (voir ci-dessus) :
-           
-local line, isFinal = r:wsread() -- isFinal indique s'il s'agit du cadre final.
-                                 -- dans le cas contraire, on peut lire les cadres suivants
-r:wswrite("Vous avez écrit : " .. line)</pre>
+local hash = r:md5("This is a test") -- returns ce114e4501d2f4e2dcea3e17b546f339</pre>
 
 
-<pre class="prettyprint lang-lua">r:wswrite(line) -- écrit un cadre vers un client WebSocket :
-r:wswrite("Bonjour le Monde !")</pre>
+<pre class="prettyprint lang-lua">r:sha1(string) -- Calcule et renvoie le condensé SHA1 d'une chaîne en mode binaire (binary safe).
 
+local hash = r:sha1("This is a test") -- returns a54d88e06612d820bc3be72877c74f257b561b19</pre>
 
-<pre class="prettyprint lang-lua">r:wsclose() -- ferme une requête WebSocket et l'achève pour httpd :
 
-if r:wsupgrade() then
-    r:wswrite("Ecrire quelque chose : ")
-    local line = r:wsread() or "nothing"
-    r:wswrite("Vous avez écrit : " .. line);
-    r:wswrite("Au revoir !")
-    r:wsclose()
-end</pre>
+<pre class="prettyprint lang-lua">r:escape(string) -- Echappe une chaîne de type URL.
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logging" id="logging">Fonctions de journalisation</a></h2>
+local url = "http://foo.bar/1 2 3 &amp; 4 + 5"
+local escaped = r:escape(url) -- renvoie 'http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5'</pre>
 
-<pre class="prettyprint lang-lua">     -- exemples de messages de journalisation
-       r:trace1("Ceci est un message de journalisation de niveau
-       trace") -- les niveaux valides vont de trace1 à trace8 <br />
-        r:debug("Ceci est un message de journalisation de niveau debug")<br />
-        r:info("Ceci est un message de journalisation de niveau info")<br />
-        r:notice("Ceci est un message de journalisation de niveau notice")<br />
-        r:warn("Ceci est un message de journalisation de niveau warn")<br />
-        r:err("Ceci est un message de journalisation de niveau err")<br />
-        r:alert("Ceci est un message de journalisation de niveau alert")<br />
-        r:crit("Ceci est un message de journalisation de niveau crit")<br />
-        r:emerg("Ceci est un message de journalisation de niveau emerg")<br />
-</pre>
 
+<pre class="prettyprint lang-lua">r:unescape(string) -- Déséchappe une chaîne de type URL.
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="apache2" id="apache2">Paquet apache2</a></h2>
-<p>Le paquet nommé <code>apache2</code> est fourni avec (au minimum) le
-contenu suivant :</p>
-<dl>
-  <dt>apache2.OK</dt>
-  <dd>Constante interne OK. Les gestionnaires renverront cette valeur
-  s'ils ont traité la requête.</dd>
-  <dt>apache2.DECLINED</dt>
-  <dd>Constante interne DECLINED. Les gestionnaires renverront cette
-  valeur s'ils n'ont pas l'intention de traiter la requête.</dd>
-  <dt>apache2.DONE</dt>
-  <dd>Constante interne DONE.</dd>
-  <dt>apache2.version</dt>
-  <dd>Chaîne contenant la version du serveur HTTP Apache</dd>
-  <dt>apache2.HTTP_MOVED_TEMPORARILY</dt>
-  <dd>Code d'état HTTP</dd>
-  <dt>apache2.PROXYREQ_NONE, apache2.PROXYREQ_PROXY, apache2.PROXYREQ_REVERSE, apache2.PROXYREQ_RESPONSE</dt>
-  <dd>Constantes internes utilisées par <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
-  <dt>apache2.AUTHZ_DENIED, apache2.AUTHZ_GRANTED, apache2.AUTHZ_NEUTRAL, apache2.AUTHZ_GENERAL_ERROR, apache2.AUTHZ_DENIED_NO_USER</dt>
-  <dd>constantes internes utilisées par <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></dd>
+local url = "http%3a%2f%2ffoo.bar%2f1+2+3+%26+4+%2b+5"
+local unescaped = r:unescape(url) -- renvoie 'http://foo.bar/1 2 3 &amp; 4 + 5'</pre>
 
-</dl>
-<p>Les autres codes d'état HTTP ne sont pas encore implémentés.</p>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="modifying_buckets" id="modifying_buckets">Modification de contenu avec les filtres lua</a></h2>
-    
-    <p>
-    Les fonctions de filtrage implémentées via les directives <code class="directive"><a href="#luainputfilter">LuaInputFilter</a></code> ou <code class="directive"><a href="#luaoutputfilter">LuaOutputFilter</a></code> sont conçues comme des
-    fonctions de 3ème phase non blocantes utilisant des sous-routines
-    pour suspendre et reprendre l'exécution d'une fonction lorsque des
-    paquets de données sont envoyés à la chaîne de filtrage. La
-    structure de base d'une telle fonction est :
-    </p>
-    <pre class="prettyprint lang-lua">function filter(r)
-    -- Nous indiquons tout d'abord que nous sommes prêts à recevoir des
-    -- blocs de données.
-    -- Avant ceci, nous pouvons définir notre environnement, tester
-    -- certaines conditions, et, si nous le jugeons nécessaire, refuser le
-    -- filtrage d'une requête :
-    if something_bad then
-        return -- Le filtrage est sauté
-    end
-    -- Sans se préoccuper des données que nous devons éventuellement ajouter, un arrêt est réalisé ici.
-    -- Noter que les filtres de sortie sont les seuls capables d'ajouter des éléments au début des données.
-    -- Les filtres en entrée peuvent ajouter des éléments à la fin des données au stade final.
 
-    coroutine.yield([optional header to be prepended to the content])
+<pre class="prettyprint lang-lua">r:construct_url(string) -- Construit une URL à partir d'un URI
 
-    -- Après cet arrêt, nous allons recevoir d'autres blocs de données, un par un ;
-    -- nous pouvons les traiter comme il nous plaît et procéder à la réponse.
-    -- Ces blocs sont conservés dans la variable globale 'bucket', nous réalisons donc
-    -- une boucle pour vérifier que 'bucket' n'est pas vide :
-    while bucket ~= nil do
-        local output = mangle(bucket) -- Do some stuff to the content
-        coroutine.yield(output) -- Return our new content to the filter chain
-    end
+local url = r:construct_url(r.uri)</pre>
 
-    -- Une fois les blocs de données épuisés, 'bucket' est positionné à une valeur vide ('nil'),
-    -- ce qui va nous faire sortir de cette boucle et nous amener à l'étape suivante.
-    -- On peut ajouter ce qu'on veut à la fin des données à cette étape, qui constitue le dernier
-    -- arrêt. Les filtres d'entrée comme de sortie peuvent servir à ajouter des éléments à la fin
-    --  des données à cette étape.
-    coroutine.yield([optional footer to be appended to the content])
-end</pre>
 
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="databases" id="databases">Connectivité aux bases de données</a></h2>
-    
-    <p>Mod_lua implémente une fonctionnalité basique de connexion aux
-bases de données permettant d'envoyer des requêtes ou d'exécuter des
-commandes auprès des moteurs de base de données les plus courants
-(mySQL, PostgreSQL, FreeTDS, ODBC, SQLite, Oracle), ainsi que mod_dbd.
-    </p>
-    <p>L'exemple suivant montre comment se connecter à une base de
-données et extraire des informations d'une table :</p>
-    <pre class="prettyprint lang-lua">function handle(r)
-    -- connexion à la base de données
-    local database, err = r:dbacquire("mysql", "server=localhost,user=someuser,pass=somepass,dbname=mydb")
-    if not err then
-        -- Sélection de certaines informations
-        local results, err = database:select(r, "SELECT `name`, `age` FROM `people` WHERE 1")
-        if not err then
-            local rows = results(0) -- extrait tous les enregistrements en mode synchrone
-            for k, row in pairs(rows) do
-                r:puts( string.format("Name: %s, Age: %s&lt;br/&gt;", row[1], row[2]) )
-            end
-        else
-            r:puts("Database query error: " .. err)
-        end
-        database:close()
-    else
-        r:puts("Connexion à la base de données impossible : " .. err)
-    end
+<pre class="prettyprint lang-lua">r.mpm_query(number) -- Interroge le serveur à propos de son module MPM via la requête ap_mpm_query.
+
+local mpm = r.mpm_query(14)
+if mpm == 1 then
+    r:puts("Ce serveur utilise le MPM Event")
 end</pre>
 
-    <p>
-    Pour utiliser <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>, spécifiez
-<code>mod_dbd</code> comme type de base de données, ou laissez le champ
-vide :
-    </p>
-    <pre class="prettyprint lang-lua">local database = r:dbacquire("mod_dbd")</pre>
 
-    <h3><a name="database_object" id="database_object">L'objet database et ses méthodes</a></h3>
-        
-        <p>L'objet database renvoyé par <code>dbacquire</code> possède
-les méthodes suivantes :</p>
-        <p><strong>Sélection normale et requête vers une base de données
-:</strong></p>
-    <pre class="prettyprint lang-lua">-- Exécution d'une requête et renvoie du nombre d'enregistrements
-affectés :
-local affected, errmsg = database:query(r, "DELETE FROM `tbl` WHERE 1")
+<pre class="prettyprint lang-lua">r:expr(string) -- Evalue une chaîne de type <a href="../expr.html">expr</a>.
 
--- Exécution d'une requête et renvoie du résultat qui peut être utilisé
-en mode synchrone ou asynchrone :
-local result, errmsg = database:select(r, "SELECT * FROM `people` WHERE 1")</pre>
+if r:expr("%{HTTP_HOST} =~ /^www/") then
+    r:puts("Ce nom d'hôte commence par www")
+end</pre>
 
-        <p><strong>Utilisation de requêtes préparées (recommandé) :</strong></p>
-    <pre class="prettyprint lang-lua">-- Création et exécution d'une requête préparée :
-local statement, errmsg = database:prepare(r, "DELETE FROM `tbl` WHERE `age` &gt; %u")
-if not errmsg then
-    local result, errmsg = statement:query(20) -- exécute la requête pour age &gt; 20
-end
 
--- Extrait une requête préparée depuis une directive DBDPrepareSQL :
-local statement, errmsg = database:prepared(r, "someTag")
-if not errmsg then
-    local result, errmsg = statement:select("John Doe", 123) -- injecte les valeurs "John Doe" et 123 dans la requête
-end</pre>
+<pre class="prettyprint lang-lua">r:scoreboard_process(a) -- Interroge le serveur à propos du
+                        -- processus à la position <code>a</code>.
 
-        <p><strong>Echappement de valeurs, fermeture de la base données,
-etc...</strong></p>
-    <pre class="prettyprint lang-lua">-- Echappe une valeur pour pouvoir l'utiliser dans une requête :
-local escaped = database:escape(r, [["'|blabla]])
+local process = r:scoreboard_process(1)
+r:puts("Le serveur 1 a comme PID " .. process.pid)</pre>
 
--- Ferme une base de données et libère les liens vers cette dernière :
-database:close()
 
--- Vérifie si une connexion à une base de données est en service et
-opérationnelle :
-local connected = database:active()</pre>
+<pre class="prettyprint lang-lua">r:scoreboard_worker(a, b) -- Interroge le serveur à propos du
+                          -- thread <code>b</code>, dans le processus <code>a</code>.
 
-    
-    <h3><a name="result_sets" id="result_sets">Travail avec les jeux d'enregistrements renvoyés par les requêtes</a></h3>
-    
-    <p>Les jeux d'enregistrements renvoyés par <code>db:select</code> ou par des
-requêtes préparées créées par <code>db:prepare</code> permettent de
-sélectionner des enregistrements en mode synchrone ou
-asynchrone, selon le nombre d'enregistrements spécifié :<br />
-    <code>result(0)</code> sélectionne tous les enregistrements en mode
-synchrone en renvoyant une table d'enregistrements.<br />
-    <code>result(-1)</code> sélectionne le prochain enregistrement disponible en
-mode asynchrone.<br />
-    <code>result(N)</code> sélectionne l'enregistrement numéro
-<code>N</code> en mode asynchrone.
-    </p>
-    <pre class="prettyprint lang-lua">-- extrait un jeu d'enregistrements via une requête régulière :
-local result, err = db:select(r, "SELECT * FROM `tbl` WHERE 1")
+local thread = r:scoreboard_worker(1, 1)
+r:puts("L'ID du thread 1 du serveur 1 est " .. thread.tid .. " et son
+état est " .. thread.status)</pre>
 
-local rows = result(0) -- sélectionne tous les enregistrements en mode synchrone
-local row = result(-1) -- sélectionne le prochain enregistrement disponible en mode asynchrone
-local row = result(1234) -- sélectionne l'enregistrement 1234 en mode asynchrone
-local row = result(-1, true) -- Lit l'enregistrement suivant en utilisant les noms d'enregistrements comme index.</pre>
 
-    <p>Il est possible de construire une fonction qui renvoie une
-fonction itérative permettant de traiter tous les enregistrement en mode
-synchrone ou asynchrone selon la valeur de l'argument async :
-    </p>
-    <pre class="prettyprint lang-lua">function rows(resultset, async)
-    local a = 0
-    local function getnext()
-        a = a + 1
-        local row = resultset(-1)
-        return row and a or nil, row
-    end
-    if not async then
-        return pairs(resultset(0))
-    else
-        return getnext, self
-    end
-end
+<pre class="prettyprint lang-lua">r:clock() -- Renvoie l'heure courante avec une précision d'une microseconde.</pre>
 
-local statement, err = db:prepare(r, "SELECT * FROM `tbl` WHERE `age` &gt; %u")
-if not err then
-     -- sélectionne des enregistrements en mode asynchrone :
-    local result, err = statement:select(20)
-    if not err then
-        for index, row in rows(result, true) do
-            ....
-        end
-    end
 
-     -- sélectionne des enregistrements en mode synchrone :
-    local result, err = statement:select(20)
-    if not err then
-        for index, row in rows(result, false) do
-            ....
-        end
-    end
-end</pre>
+<pre class="prettyprint lang-lua">r:requestbody(filename) -- Lit et renvoie le corps d'une requête.
+                        -- Si 'filename' est spécifié, le
+                        -- corps de requête n'est pas
+                        -- renvoyé, mais sauvegardé dans
+                        -- le fichier correspondant.
 
-    
-    <h3><a name="closing_databases" id="closing_databases">Fermeture d'une connexion à une base de données</a></h3>
-        
+local input = r:requestbody()
+r:puts("Vous m'avez envoyé le corps de requête suivant :\n")
+r:puts(input)</pre>
 
-    <p>Lorsqu'elles ne sont plus utilisées, les connexions aux bases de
-données doivent être fermées avec <code>database:close()</code>. Si vous
-ne les fermez pas manuellement, mod_lua les fermera peut-être en tant
-que résidus collectés, mais si ce n'est pas le cas, vous pouvez finir
-pas avoir trop de connexions vers la base de données inutilisées. Les
-deux mesures suivantes sont pratiquement identiques :
-    </p>
-    <pre class="prettyprint lang-lua">-- Méthode 1 : fermeture manuelle de la connexion
-local database = r:dbacquire("mod_dbd")
-database:close() -- c'est tout
 
--- Méthode 2 : on laisse le collecteur de résidus la fermer
-local database = r:dbacquire("mod_dbd")
-database = nil -- on coupe le lien
-collectgarbage() -- fermeture de la connexion par le collecteur de résidus</pre>
+<pre class="prettyprint lang-lua">r:add_input_filter(filter_name) -- Ajoute le filtre en entrée 'filter_name'.</pre>
 
-    
-    <h3><a name="database_caveat" id="database_caveat">Précautions à prendre lorsque l'on travaille avec les bases
-de données</a></h3>
-    
-    <p>Bien que les fonctions <code>query</code> et <code>run</code>
-soient toujours disponibles, il est recommandé d'utiliser des requêtes
-préparées chaque fois que possible, afin d'une part d'optimiser les
-performances (si votre connexion reste longtemps en vie), et d'autre part
-minimiser le risque d'attaques par injection SQL. Les fonctions
-<code>run</code> et <code>query</code> ne doivent être utilisées que
-lorsque la requête ne contient pas de variables (requête statique). Dans
-le cas des requêtes dynamiques, utilisez <code>db:prepare</code> ou
-<code>db:prepared</code>.
-    </p>
-    
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luaauthzprovider" id="luaauthzprovider">Directive</a> <a name="LuaAuthzProvider" id="LuaAuthzProvider">LuaAuthzProvider</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Branche une fonction fournisseur d'autorisation dans <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaAuthzProvider provider_name /path/to/lua/script.lua function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.3 du serveur HTTP Apache</td></tr>
-</table>
-<p>Lorsqu'une fonction lua a été enregistrée en tant que fournisseur
-d'autorisation, elle peut être appelée via la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> :</p>
+<pre class="prettyprint lang-lua">r:module_info(module_name) -- Interroge le serveur à propos d'un module.
 
+local mod = r.module_info("mod_lua.c")
+if mod then
+    for k, v in pairs(mod.commands) do
+       r:puts( ("%s: %s\n"):format(k,v)) -- affiche toutes les directives
+                                         -- implémentées par ce module.
+    end
+end</pre>
 
-<pre class="prettyprint lang-config">LuaRoot /usr/local/apache2/lua
-LuaAuthzProvider foo authz.lua authz_check_foo
-&lt;Location /&gt;
-  Require foo johndoe
-&lt;/Location&gt;</pre>
 
-<pre class="prettyprint lang-lua">require "apache2"
-function authz_check_foo(r, who)
-    if r.user ~= who then return apache2.AUTHZ_DENIED
-    return apache2.AUTHZ_GRANTED
-end</pre>
+<pre class="prettyprint lang-lua">r:loaded_modules() -- Renvoie une liste des modules chargés par httpd.
 
+for k, module in pairs(r:loaded_modules()) do
+    r:puts("J'ai chargé le module " .. module .. "\n")
+end</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luacodecache" id="luacodecache">Directive</a> <a name="LuaCodeCache" id="LuaCodeCache">LuaCodeCache</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure le cache de code compilé.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaCodeCache stat|forever|never</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LuaCodeCache stat</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>
-    Cette directive permet de définir le comportement du cache de code
-    en mémoire. La valeur par défaut est stat ; dans ce cas, le script
-    du niveau le plus haut (et pas les scripts inclus) est vérifié à
-    chaque fois que ce fichier est nécessaire, et est rechargé si la
-    date de modification est plus récente que celle du script déjà
-    chargé. Les autres valeurs permettent respectivement de garder le
-    fichier en cache perpétuellement (forever - jamais vérifié ni
-    remplacé), ou de ne jamais le mettre en cache (never).</p>
+<pre class="prettyprint lang-lua">r:runtime_dir_relative(filename) -- Génère le nom d'un fichier run-time
+                                 -- (par exemple la mémoire partagée
+                                 -- "file") relativement au répertoire de run-time.</pre>
 
-    <p>En général, les valeurs stat et forever sont utilisées pour un
-    serveur en production, et les valeurs stat ou never pour un serveur
-    en développement.</p>
 
-    <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaCodeCache stat
-LuaCodeCache forever
-LuaCodeCache never</pre>
-</div>
+<pre class="prettyprint lang-lua">r:server_info() -- Renvoie une table contenant des informations à
+                -- propos du serveur, comme le nom de
+                -- l'exécutable httpd, le module mpm utilisé, etc...</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahookaccesschecker" id="luahookaccesschecker">Directive</a> <a name="LuaHookAccessChecker" id="LuaHookAccessChecker">LuaHookAccessChecker</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase access_checker du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookAccessChecker  /chemin/vers/lua/script.lua  hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
-version 2.3.15 du serveur HTTP Apache.</td></tr>
-</table>
-<p>Ajoute votre fonction d'accroche à la phase access_checker. Une
-fonction d'accroche access checker renvoie en général OK, DECLINED, ou
-HTTP_FORBIDDEN.</p>
-<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
-   "early" ou "late" permettent de contrôler le moment auquel ce script
-   s'exécute par rapport aux autres modules.</p></div>
+<pre class="prettyprint lang-lua">r:set_document_root(file_path) -- Définit la racine des documents
+                               -- pour la requête à file_path.</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahookauthchecker" id="luahookauthchecker">Directive</a> <a name="LuaHookAuthChecker" id="LuaHookAuthChecker">LuaHookAuthChecker</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase auth_checker du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookAuthChecker  /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
-version 2.3.15 du serveur HTTP Apache.</td></tr>
-</table>
-<p>Invoque une fonction lua au cours de la phase auth_checker du
-traitement de la requête. Cette directive peut s'utiliser pour
-implémenter une vérification arbitraire de l'authentification et de
-l'autorisation. Voici un exemple très simple :
-</p>
-<pre class="prettyprint lang-lua">require 'apache2'
 
--- fonction d'accroche authcheck fictive
--- Si la requête ne contient aucune donnée d'authentification, l'en-tête
--- de la réponse est défini et un code 401 est renvoyé afin de demander au
--- navigateur d'effectuer une authentification basique. Si la requête
--- comporte des données d'authentification, elles ne sont pas vraiment
--- consultées, mais on admet la prise en compte de l'utilisateur 'foo' et
--- on la valide. On vérifie ensuite si l'utilisateur est bien 'foo' et on
--- accepte la requête.
-function authcheck_hook(r)
+<pre class="prettyprint lang-lua">r:add_version_component(component_string) -- Ajoute un élément à
+                                          -- la bannière du serveur.</pre>
 
-   -- recherche des informations d'authentification
-   auth = r.headers_in['Authorization']
-   if auth ~= nil then
-     -- définition d'un utilisateur par défaut
-     r.user = 'foo'
-   end
 
-   if r.user == nil then
-      r:debug("authcheck: user is nil, returning 401")
-      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
-      return 401
-   elseif r.user == "foo" then
-      r:debug('user foo: OK')
-   else
-      r:debug("authcheck: user='" .. r.user .. "'")
-      r.err_headers_out['WWW-Authenticate'] = 'Basic realm="WallyWorld"'
-      return 401
-   end
-   return apache2.OK
-end</pre>
+<pre class="prettyprint lang-lua">r:set_context_info(prefix, docroot) -- Définit le préfixe et la
+                                    -- racine des documents du contexte pour une requête.</pre>
 
-<div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
-   "early" ou "late" permettent de contrôler le moment auquel ce script
-   s'exécute par rapport aux autres modules.</p></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahookcheckuserid" id="luahookcheckuserid">Directive</a> <a name="LuaHookCheckUserID" id="LuaHookCheckUserID">LuaHookCheckUserID</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase check_user_id du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookCheckUserID  /chemin/vers/lua/script.lua hook_function_name [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
-version 2.3.15 du serveur HTTP Apache.</td></tr>
-</table><p>...</p>
-   <div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
-   "early" ou "late" permettent de contrôler le moment auquel ce script
-   s'exécute par rapport aux autres modules.</p></div>
+<pre class="prettyprint lang-lua">r:os_escape_path(file_path) -- Convertit un chemin du système de
+                            -- fichiers en URL indépendamment du système d'exploitation.</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahookfixups" id="luahookfixups">Directive</a> <a name="LuaHookFixups" id="LuaHookFixups">LuaHookFixups</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase de correction du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookFixups  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-<p>
-    Idem LuaHookTranslateName, mais s'exécute durant la phase de
-    correction.
-</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahookinsertfilter" id="luahookinsertfilter">Directive</a> <a name="LuaHookInsertFilter" id="LuaHookInsertFilter">LuaHookInsertFilter</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase insert_filter du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookInsertFilter  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>Non encore implémenté</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahooklog" id="luahooklog">Directive</a> <a name="LuaHookLog" id="LuaHookLog">LuaHookLog</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet une insertion dans la phase de journalisation du
-traitement d'une requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookLog  /path/to/lua/script.lua log_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-<p>
-    Ce dispositif d'insertion simple permet d'exécuter une fonction
-    lorsque httpd entre dans la phase de journalisation du traitement
-    d'une requête. Vous pouvez ainsi ajouter des données à vos propres
-    entrées de journalisation, manipuler les entrées du journal standard
-    avant leur enregistrement ou empêcher l'enregistrement d'une entrée
-    dans le journal. Pour empêcher l'enregistrement normal des entrées
-    du journal, renvoyez simplement <code>apache2.DONE</code> dans votre
-    gestionnaire de journalisation, ou au contraire, renvoyez
-    <code>apache2.OK</code> pour que httpd effectue une journalisation
-    normale.
-</p>
-<p>Exemple :</p>
-<pre class="prettyprint lang-config">LuaHookLog /path/to/script.lua logger</pre>
+<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Echappe une chaîne pour journalisation.</pre>
 
-<pre class="prettyprint lang-lua">-- /path/to/script.lua --
-function logger(r)
-    -- on joue à pile ou face :
-    -- Si on obtient 1, on écrit dans notre propre journal Lua et on dit
-    -- à httpd de ne pas enregistrer d'entrée dans le journal standard..
-    -- Si on obtient 2, on nettoie un peu les données avant que httpd ne
-    -- les enregistre dans le journal standard.
 
-    if math.random(1,2) == 1 then
-        -- On effectue notre propre journalisation et le journal
-       -- standard n'est pas alimenté
-        local f = io.open("/foo/secret.log", "a")
-        if f then
-            f:write("Quelque chose de secret est arrivé à " .. r.uri .. "\n")
-            f:close()
-        end
-        return apache2.DONE -- On dit à httpd de ne rien enregistrer
-                           --dans le journal standard
-    else
-        r.uri = r.uri:gsub("somesecretstuff", "") -- nettoie les données
-        return apache2.OK -- et httpd doit alors les enregistrer.
-    end
+<pre class="prettyprint lang-lua">r.strcmp_match(string, pattern) -- Vérifie si 'string' correspond à
+                                -- 'pattern' via la fonction strcmp_match (GLOBs). Par exemple, est-ce que
+                                -- 'www.example.com' correspond à '*.example.com' ?
+
+local match = r.strcmp_match("foobar.com", "foo*.com")
+if match then 
+    r:puts("foobar.com matches foo*.com")
 end</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahookmaptostorage" id="luahookmaptostorage">Directive</a> <a name="LuaHookMapToStorage" id="LuaHookMapToStorage">LuaHookMapToStorage</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase map_to_storage du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookMapToStorage  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Identique à la directive
-    <code class="directive">LuaHookTranslateName</code>, mais s'exécute à la
-    phase map-to-storage du traitement de la requête. Les modules comme
-    mod_cache agissent pendant cette phase, ce qui permet de présenter
-    un exemple intéressant de ce que l'on peut faire ici :</p>
-    <pre class="prettyprint lang-config">LuaHookMapToStorage /path/to/lua/script.lua check_cache</pre>
+<pre class="prettyprint lang-lua">r:set_keepalive() -- Définit l'état de persistance d'une requête.
+                  -- Renvoie true dans la mesure du possible, false dans le cas contraire.</pre>
 
-    <pre class="prettyprint lang-lua">require"apache2"
-cached_files = {}
 
-function read_file(filename)
-    local input = io.open(filename, "r")
-    if input then
-        local data = input:read("*a")
-        cached_files[filename] = data
-        file = cached_files[filename]
-        input:close()
-    end
-    return cached_files[filename]
-end
+<pre class="prettyprint lang-lua">r:make_etag() -- Génère et renvoie le etag pour la requête courante.</pre>
 
-function check_cache(r)
-    if r.filename:match("%.png$") then -- Ne concerne que les fichiers PNG
-        local file = cached_files[r.filename] -- Vérifie les entrées du cache
-        if not file then
-            file = read_file(r.filename)  -- Lit le fichier vers le cache
-        end
-        if file then -- Si le fichier existe, on l'envoie
-            r.status = 200
-            r:write(file)
-            r:info(("%s a été envoyé au client depuis le cache"):format(r.filename))
-            return apache2.DONE -- cout-circuite le gestionnaire par défaut des fichiers PNG
-        end
-    end
-    return apache2.DECLINED -- Si nous n'avons rien eu à faire, nous laissons les autres s'en charger
+
+<pre class="prettyprint lang-lua">r:send_interim_response(clear) -- Renvoie une réponse d'intérim (1xx) au
+                               -- client. Si 'clear' est vrai, les en-têtes disponibles
+                               -- seront envoyés et effacés.</pre>
+
+
+<pre class="prettyprint lang-lua">r:custom_response(status_code, string) -- Génère et définit une réponse
+                                       -- personnalisée pour un code d'état particulier.
+                                       -- Le fonctionnement est très proche de celui de la directive ErrorDocument.
+
+r:custom_response(404, "Baleted!")</pre>
+
+
+<pre class="prettyprint lang-lua">r.exists_config_define(string) -- Vérifie si une définition de configuration existe.
+
+if r.exists_config_define("FOO") then
+    r:puts("httpd a probablement été lancé avec l'option -DFOO, ou FOO a
+    été défini dans la configuration")
 end</pre>
 
 
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahooktranslatename" id="luahooktranslatename">Directive</a> <a name="LuaHookTranslateName" id="LuaHookTranslateName">LuaHookTranslateName</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée à la phase du nom de
-traduction du traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookTranslateName  /chemin/vers/lua/script.lua  nom_fonction_hook [early|late]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Le troisième argument optionnel est disponible depuis la
-version 2.3.15 du serveur HTTP Apache.</td></tr>
-</table><p>
-    Cette directive permet d'ajouter un point d'entrée (à
-    APR_HOOK_MIDDLE) à la phase du nom de traduction du traitement de la
-    requête. La fonction hook accepte un seul argument, le request_rec,
-    et doit renvoyer un code d'état qui est soit un code d'erreur HTTP,
-    ou une constante définie dans le module apache2 :  apache2.OK,
-    apache2.DECLINED, ou apache2.DONE.</p>
+<pre class="prettyprint lang-lua">r:state_query(string) -- Interroge le serveur à propos de son état.</pre>
 
-    <p>Pour ceux qui ne sont pas familiers avec les points d'entrée
-    (hook), en gros, chaque hook sera invoqué jusqu'à ce que l'un
-    d'entre eux renvoie apache2.OK. Si un hook n'effectuer pas la
-    traduction, il doit juste renvoyer apache2.DECLINED. Si le
-    traitement de la requête doit être interrompu, la valeur renvoyée
-    doit être apache2.DONE.</p>
 
-    <p>Exemple :</p>
+<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Exécute stat() sur un fichier, et renvoie une table contenant
+                           -- des informations à propos de ce fichier.
 
-<pre class="prettyprint lang-config"># httpd.conf
-LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</pre>
+local info = r:stat("/var/www/foo.txt")
+if info then
+    r:puts("Ce fichier existe et a été modifié pour la dernière fois à : " .. info.modified)
+end</pre>
 
 
-<pre class="prettyprint lang-lua">-- /scripts/conf/hooks.lua --
-require "apache2"
-function silly_mapper(r)
-    if r.uri == "/" then
-        r.filename = "/var/www/home.lua"
-        return apache2.OK
-    else
-        return apache2.DECLINED
+<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Exécute une recherche à base d'expression rationnelle
+                                  -- sur une chaîne, et renvoie les éventuelles correspondances trouvées.
+
+local matches = r:regex("foo bar baz", [[foo (\w+) (\S*)]])
+if matches then
+    r:puts("L'expression rationnelle correspond et le dernier mot
+    capturé ($2) est : " .. matches[2])
+end
+
+-- Exemple avec insensibilité à la casse :
+local matches = r:regex("FOO bar BAz", [[(foo) bar]], 1)
+
+-- les drapeaux peuvent être une combibaison bit à bit de :
+-- 0x01: insensibilité à la casse
+-- 0x02: recherche multiligne</pre>
+
+
+<pre class="prettyprint lang-lua">r.usleep(microsecondes) -- Interrompt l'exécution du script pendant le nombre de microsecondes spécifié.</pre>
+
+
+<pre class="prettyprint lang-lua">r:dbacquire(dbType[, dbParams]) -- Acquiert une connexion à une base de données et renvoie une classe database.
+                                -- Voir '<a href="#databases">Connectivité aux bases de données</a>'
+                               -- pour plus de détails.</pre>
+
+
+<pre class="prettyprint lang-lua">r:ivm_set("key", value) -- Défini une variable Inter-VM avec une valeur spécifique.
+                        -- Ces valeurs sont conservées même si la VM est
+                       -- arrêtée ou non utilisée, et ne doivent donc être
+                       -- utilisées que si MaxConnectionsPerChild &gt; 0.
+                       -- Les valeurs peuvent être de type number, string
+                       -- ou boolean et sont stockées séparément pour
+                       -- chaque processus (elles ne seront donc pas d'une
+                       -- grande utilité si l'on utilise le mpm prefork).
+                        
+r:ivm_get("key")        -- Lit le contenu d'une variable définie via ivm_set. Renvoie
+                       -- le contenu de la variable si elle existe, ou nil
+                       -- dans le cas contraire.
+                        
+-- Voici un exemple de lecture/écriture qui sauvegarde une variable
+-- globale en dehors de la VM :
+function handle(r)
+    -- La première VM qui effectue l'appel suivant n'obtiendra aucune
+    -- valeur, et devra la créer
+    local foo = r:ivm_get("cached_data")
+    if not foo then
+        foo = do_some_calcs() -- simulation de valeurs de retour
+        r:ivm_set("cached_data", foo) -- définition globale de la variable
     end
+    r:puts("La donnée en cache est : ", foo)
 end</pre>
 
+<pre class="prettyprint lang-lua">r:htpassword(string [,algorithm [,cost]]) -- Génère un hash de mot de passe à partir d'une chaîne.
+                                          -- algorithm: 0 = APMD5 (défaut), 1 = SHA, 2 = BCRYPT, 3 = CRYPT.
+                                          -- cost: ne s'utilise qu'avec l'algorythme BCRYPT (défaut = 5).</pre>
 
-   <div class="note"><h3>Contexte</h3><p>Cette directive ne peut être
-   utilisée ni à l'intérieur d'une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, ni dans un fichier htaccess.</p></div>
 
-   <div class="note"><h3>Ordonnancement</h3><p>Les arguments optionnels
-   "early" ou "late" permettent de contrôler le moment auquel ce script
-   s'exécute par rapport aux autres modules.</p></div>
+<pre class="prettyprint lang-lua">r:mkdir(dir [,mode]) -- Crée un répertoire et définit son mode via le paramètre optionnel mode.</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luahooktypechecker" id="luahooktypechecker">Directive</a> <a name="LuaHookTypeChecker" id="LuaHookTypeChecker">LuaHookTypeChecker</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la phase type_checker du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaHookTypeChecker  /chemin/vers/lua/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>...</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luainherit" id="luainherit">Directive</a> <a name="LuaInherit" id="LuaInherit">LuaInherit</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle la manière dont les sections de configuration
-parentes sont fusionnées dans les enfants</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaInherit none|parent-first|parent-last</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LuaInherit parent-first</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Versions 2.4.0 et supérieures</td></tr>
-</table><p>Par défaut, si des directives LuaHook* se trouvent dans
-    des sections de configuration Directory ou Location qui se
-    chevauchent, les scripts
-    définis dans les sections les plus spécifiques s'exécutent
-    <em>après</em> ceux définis dans les sections plus génériques
-    (LuaInherit parent-first). Vous pouvez inverser cet ordre, ou faire
-    en sorte que le contexte parent ne s'applique pas du tout.</p>
 
-    <p>Jusqu'aux versions 2.3.x, le comportement par défaut consistait à
-    ignorer les directives LuaHook* situées dans les sections de
-    configuration parentes.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luainputfilter" id="luainputfilter">Directive</a> <a name="LuaInputFilter" id="LuaInputFilter">LuaInputFilter</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit une fonction Lua pour le filtrage en entrée</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaInputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.5 du serveur HTTP
-Apache</td></tr>
-</table>
-<p>Cette directive permet d'ajouter un filtre en entrée sous la forme
-d'une fonction Lua. A l'instar des filtres en sorties, les filtres en
-entrée fonctionnent comme des sous-routines, intervenant dans un premier
-temps avant l'envoi du contenu des tampons, puis chaque fois qu'un
-paquet de données doit être transmis à la chaîne, et éventuellement
-produisant toute donnée à ajouter aux données en entrée. La variable
-globale <code>bucket</code> contient les paquets de données tels qu'ils
-sont transmis au script Lua :
-</p>
+<pre class="prettyprint lang-lua">r:mkrdir(dir [,mode]) -- Crée des répertoires de manière récursive et définit
+                      -- leur mode via le paramètre optionnel mode.</pre>
+
+
+<pre class="prettyprint lang-lua">r:rmdir(dir) -- Supprime un répertoire.</pre>
 
-<pre class="prettyprint lang-config">LuaInputFilter myInputFilter /www/filter.lua input_filter
-&lt;Files *.lua&gt;
-  SetInputFilter myInputFilter
-&lt;/Files&gt;</pre>
 
-<pre class="prettyprint lang-lua">--[[
-    Exemple de filtre en entrée qui convertit toutes les données POST en
-    majuscules.
-]]--
-function input_filter(r)
-    print("luaInputFilter called") -- pour débogage
-    coroutine.yield() -- attend des paquets de données
-    while bucket do -- Pour chaque paquet, faire ...
-        local output = string.upper(bucket) -- Convertit toutes les données POST en majuscules
-        coroutine.yield(output) -- Envoie les données traitées à la chaîne de filtrage
+<pre class="prettyprint lang-lua">r:touch(file [,mtime]) -- Définit la date de modification d'un fichier à la date courante ou à
+                       -- la valeur optionnelle mtime en msec.</pre>
+
+
+<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Renvoie une table contenant toutes les entrées de répertoires.
+
+-- Renvoie un chemin sous forme éclatée en chemin, fichier, extension
+function handle(r)
+  local dir = r.context_document_root
+  for _, f in ipairs(r:get_direntries(dir)) do
+    local info = r:stat(dir .. "/" .. f)
+    if info then
+      local mtime = os.date(fmt, info.mtime / 1000000)
+      local ftype = (info.filetype == 2) and "[dir] " or "[file]"
+      r:puts( ("%s %s %10i %s\n"):format(ftype, mtime, info.size, f) )
     end
-    -- plus aucune donnée à traiter.
-    coroutine.yield("&amp;filterSignature=1234") -- Ajoute une signature à la fin
+  end
 end</pre>
 
-<p>
-Le filtre en entrée peut interdire ou sauter un filtre s'il est
-considéré comme indésirable :
-</p>
-<pre class="prettyprint lang-lua">function input_filter(r)
-    if not good then
-        return -- Empêche tout simplement le filtrage et transmet le contenu original
-    end
-    coroutine.yield() -- attend des paquets de données
-    ...               -- insert les filtres ici
+
+<pre class="prettyprint lang-lua">r.date_parse_rfc(string) -- Interprète une chaîne date/heure et renvoie l'équivalent en secondes depuis epoche.</pre>
+
+
+<pre class="prettyprint lang-lua">r:getcookie(key) -- Obtient un cookie HTTP</pre>
+
+
+<pre class="prettyprint lang-lua">r:setcookie(key, value, secure, expires) -- Définit un cookie HTTP, par exemple :
+r:setcookie("foo", "bar and stuff", false, os.time() + 86400)</pre>
+
+
+<pre class="prettyprint lang-lua">r:wsupgrade() -- Met à jour une connexion vers les WebSockets si possible (et si demandé) :
+if r:wsupgrade() then -- si la mise à jour est possible :
+    r:wswrite("Bienvenue dans les websockets!") -- écrit quelque chose à l'intention du client
+    r:wsclose()  -- Au revoir !
 end</pre>
 
-<p>
-Voir "<a href="#modifying_buckets">Modification de contenu avec les
-filtres Lua</a>" pour plus de détails.
-</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luamaphandler" id="luamaphandler">Directive</a> <a name="LuaMapHandler" id="LuaMapHandler">LuaMapHandler</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Met en correspondance un chemin avec un gestionnaire lua</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaMapHandler modele-uri /chemin/vers/lua/script.lua
-[nom-fonction]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Cette directive permet de faire correspondre un modèle d'uri avec
-    une fonction de gestionnaire située dans un fichier spécifique. Elle
-    utilise les expressions rationnelles PCRE pour mettre en
-    correspondance l'uri, et supporte les groupes de correspondance
-    d'interpolation dans le chemin du fichier et le nom de la fonction.
-    Prenez garde aux problèmes de sécurité en écrivant vos expressions
-    rationnelles.</p>
-   <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaMapHandler /(\w+)/(\w+) /scripts/$1.lua handle_$2</pre>
-</div>
-        <p>Cette directive va faire correspondre des uri comme
-       /photos/show?id=9 au fichier /scripts/photos.lua, et invoquera la
-       fonction de gestionnaire handle_show au niveau de la vm lua
-       après chargement de ce fichier.</p>
+<pre class="prettyprint lang-lua">r:wsread() -- Lit un cadre de websocket depuis une connexion vers websocket mise à jour (voir ci-dessus) :
+           
+local line, isFinal = r:wsread() -- isFinal indique s'il s'agit du cadre final.
+                                 -- dans le cas contraire, on peut lire les cadres suivants
+r:wswrite("Vous avez écrit : " .. line)</pre>
 
-<pre class="prettyprint lang-config">LuaMapHandler /bingo /scripts/wombat.lua</pre>
 
-        <p>Cette directive invoquera la fonction "handle" qui est la
-       valeur par défaut si aucun nom de fonction spécifique n'est
-       spécifié.</p>
+<pre class="prettyprint lang-lua">r:wswrite(line) -- écrit un cadre vers un client WebSocket :
+r:wswrite("Bonjour le Monde !")</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luaoutputfilter" id="luaoutputfilter">Directive</a> <a name="LuaOutputFilter" id="LuaOutputFilter">LuaOutputFilter</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit une fonction Lua pour le filtrage de contenu en
-sortie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaOutputFilter filter_name /path/to/lua/script.lua function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur HTTP
-Apache</td></tr>
-</table>
-<p>&gt;Cette directive permet d'ajouter un filtre en sortie sous la forme
-d'une fonction Lua. A l'instar des filtres en sorties, les filtres en
-entrée fonctionnent comme des sous-routines, intervenant dans un premier
-temps avant l'envoi du contenu des tampons, puis chaque fois qu'un
-paquet de données doit être transmis à la chaîne, et éventuellement
-produisant toute donnée à ajouter aux données en sortie. La variable
-globale <code>bucket</code> contient les paquets de données tels qu'ils
-sont transmis au script Lua :
-</p>
 
-<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter /www/filter.lua output_filter
-&lt;Files *.lua&gt;
-  SetOutputFilter myOutputFilter
-&lt;/Files&gt;</pre>
+<pre class="prettyprint lang-lua">r:wsclose() -- ferme une requête WebSocket et l'achève pour httpd :
 
-<pre class="prettyprint lang-lua">--[[
-    Exemple de filtre en sortie qui échappe toutes les entités HTML en
-    sortie
-]]--
-function output_filter(r)
-    coroutine.yield("(Handled by myOutputFilter)&lt;br/&gt;\n") -- Ajoute des données au début de la sortie,
-                                                                -- puis attend des paquets de données à traiter
-    while bucket do -- Pour chaque paquet, faire ...
-        local output = r:escape_html(bucket) -- Echappe les données en sortie
-        coroutine.yield(output) -- Envoie les données traitées à la chaîne
+if r:wsupgrade() then
+    r:wswrite("Ecrire quelque chose : ")
+    local line = r:wsread() or "nothing"
+    r:wswrite("Vous avez écrit : " .. line);
+    r:wswrite("Au revoir !")
+    r:wsclose()
+end</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logging" id="logging">Fonctions de journalisation</a></h2>
+
+<pre class="prettyprint lang-lua">     -- exemples de messages de journalisation
+       r:trace1("Ceci est un message de journalisation de niveau
+       trace") -- les niveaux valides vont de trace1 à trace8 <br />
+        r:debug("Ceci est un message de journalisation de niveau debug")<br />
+        r:info("Ceci est un message de journalisation de niveau info")<br />
+        r:notice("Ceci est un message de journalisation de niveau notice")<br />
+        r:warn("Ceci est un message de journalisation de niveau warn")<br />
+        r:err("Ceci est un message de journalisation de niveau err")<br />
+        r:alert("Ceci est un message de journalisation de niveau alert")<br />
+        r:crit("Ceci est un message de journalisation de niveau crit")<br />
+        r:emerg("Ceci est un message de journalisation de niveau emerg")<br />
+</pre>
+
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="apache2" id="apache2">Paquet apache2</a></h2>
+<p>Le paquet nommé <code>apache2</code> est fourni avec (au minimum) le
+contenu suivant :</p>
+<dl>
+  <dt>apache2.OK</dt>
+  <dd>Constante interne OK. Les gestionnaires renverront cette valeur
+  s'ils ont traité la requête.</dd>
+  <dt>apache2.DECLINED</dt>
+  <dd>Constante interne DECLINED. Les gestionnaires renverront cette
+  valeur s'ils n'ont pas l'intention de traiter la requête.</dd>
+  <dt>apache2.DONE</dt>
+  <dd>Constante interne DONE.</dd>
+  <dt>apache2.version</dt>
+  <dd>Chaîne contenant la version du serveur HTTP Apache</dd>
+  <dt>apache2.HTTP_MOVED_TEMPORARILY</dt>
+  <dd>Code d'état HTTP</dd>
+  <dt>apache2.PROXYREQ_NONE, apache2.PROXYREQ_PROXY, apache2.PROXYREQ_REVERSE, apache2.PROXYREQ_RESPONSE</dt>
+  <dd>Constantes internes utilisées par <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></dd>
+  <dt>apache2.AUTHZ_DENIED, apache2.AUTHZ_GRANTED, apache2.AUTHZ_NEUTRAL, apache2.AUTHZ_GENERAL_ERROR, apache2.AUTHZ_DENIED_NO_USER</dt>
+  <dd>constantes internes utilisées par <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code></dd>
+
+</dl>
+<p>Les autres codes d'état HTTP ne sont pas encore implémentés.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="modifying_buckets" id="modifying_buckets">Modification de contenu avec les filtres lua</a></h2>
+    
+    <p>
+    Les fonctions de filtrage implémentées via les directives <code class="directive"><a href="#luainputfilter">LuaInputFilter</a></code> ou <code class="directive"><a href="#luaoutputfilter">LuaOutputFilter</a></code> sont conçues comme des
+    fonctions de 3ème phase non blocantes utilisant des sous-routines
+    pour suspendre et reprendre l'exécution d'une fonction lorsque des
+    paquets de données sont envoyés à la chaîne de filtrage. La
+    structure de base d'une telle fonction est :
+    </p>
+    <pre class="prettyprint lang-lua">function filter(r)
+    -- Nous indiquons tout d'abord que nous sommes prêts à recevoir des
+    -- blocs de données.
+    -- Avant ceci, nous pouvons définir notre environnement, tester
+    -- certaines conditions, et, si nous le jugeons nécessaire, refuser le
+    -- filtrage d'une requête :
+    if something_bad then
+        return -- Le filtrage est sauté
     end
-    -- plus aucune donnée à traiter.
+    -- Sans se préoccuper des données que nous devons éventuellement ajouter, un arrêt est réalisé ici.
+    -- Noter que les filtres de sortie sont les seuls capables d'ajouter des éléments au début des données.
+    -- Les filtres en entrée peuvent ajouter des éléments à la fin des données au stade final.
+
+    coroutine.yield([optional header to be prepended to the content])
+
+    -- Après cet arrêt, nous allons recevoir d'autres blocs de données, un par un ;
+    -- nous pouvons les traiter comme il nous plaît et procéder à la réponse.
+    -- Ces blocs sont conservés dans la variable globale 'bucket', nous réalisons donc
+    -- une boucle pour vérifier que 'bucket' n'est pas vide :
+    while bucket ~= nil do
+        local output = mangle(bucket) -- Do some stuff to the content
+        coroutine.yield(output) -- Return our new content to the filter chain
+    end
+
+    -- Une fois les blocs de données épuisés, 'bucket' est positionné à une valeur vide ('nil'),
+    -- ce qui va nous faire sortir de cette boucle et nous amener à l'étape suivante.
+    -- On peut ajouter ce qu'on veut à la fin des données à cette étape, qui constitue le dernier
+    -- arrêt. Les filtres d'entrée comme de sortie peuvent servir à ajouter des éléments à la fin
+    --  des données à cette étape.
+    coroutine.yield([optional footer to be appended to the content])
 end</pre>
 
-<p>
-Comme les filres en entrée, le filtre en sortie peut interdire ou sauter un filtre s'il est
-considéré comme indésirable :
-</p>
-<pre class="prettyprint lang-lua">function output_filter(r)
-    if not r.content_type:match("text/html") then
-        return -- Empêche tout simplement le filtrage et transmet le contenu original
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="databases" id="databases">Connectivité aux bases de données</a></h2>
+    
+    <p>Mod_lua implémente une fonctionnalité basique de connexion aux
+bases de données permettant d'envoyer des requêtes ou d'exécuter des
+commandes auprès des moteurs de base de données les plus courants
+(mySQL, PostgreSQL, FreeTDS, ODBC, SQLite, Oracle), ainsi que mod_dbd.
+    </p>
+    <p>L'exemple suivant montre comment se connecter à une base de
+données et extraire des informations d'une table :</p>
+    <pre class="prettyprint lang-lua">function handle(r)
+    -- connexion à la base de données
+    local database, err = r:dbacquire("mysql", "server=localhost,user=someuser,pass=somepass,dbname=mydb")
+    if not err then
+        -- Sélection de certaines informations
+        local results, err = database:select(r, "SELECT `name`, `age` FROM `people` WHERE 1")
+        if not err then
+            local rows = results(0) -- extrait tous les enregistrements en mode synchrone
+            for k, row in pairs(rows) do
+                r:puts( string.format("Name: %s, Age: %s&lt;br/&gt;", row[1], row[2]) )
+            end
+        else
+            r:puts("Database query error: " .. err)
+        end
+        database:close()
+    else
+        r:puts("Connexion à la base de données impossible : " .. err)
     end
-    coroutine.yield() -- attend des paquets de données
-    ...               -- insert les filtres ici
 end</pre>
 
-<div class="note"><h3>Les filtres Lua avec <code class="module"><a href="../mod/mod_filter.html">mod_filter</a></code></h3>
-<p>Lorsqu'on utilise un filtre Lua comme fournisseur sous-jacent via la
-directive <code class="directive"><a href="../mod/mod_filter.html#filterprovider">FilterProvider</a></code>, le
-filtrage ne fonctionnera que si <var>filter-name</var> est identique à
-<var>provider-name</var>.
-</p> </div>
+    <p>
+    Pour utiliser <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code>, spécifiez
+<code>mod_dbd</code> comme type de base de données, ou laissez le champ
+vide :
+    </p>
+    <pre class="prettyprint lang-lua">local database = r:dbacquire("mod_dbd")</pre>
 
-<p>
-Voir "<a href="#modifying_buckets">Modification de contenu avec les
-filtres Lua</a>" pour plus de détails.
-</p>
+    <h3><a name="database_object" id="database_object">L'objet database et ses méthodes</a></h3>
+        
+        <p>L'objet database renvoyé par <code>dbacquire</code> possède
+les méthodes suivantes :</p>
+        <p><strong>Sélection normale et requête vers une base de données
+:</strong></p>
+    <pre class="prettyprint lang-lua">-- Exécution d'une requête et renvoie du nombre d'enregistrements
+affectés :
+local affected, errmsg = database:query(r, "DELETE FROM `tbl` WHERE 1")
 
+-- Exécution d'une requête et renvoie du résultat qui peut être utilisé
+en mode synchrone ou asynchrone :
+local result, errmsg = database:select(r, "SELECT * FROM `people` WHERE 1")</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luapackagecpath" id="luapackagecpath">Directive</a> <a name="LuaPackageCPath" id="LuaPackageCPath">LuaPackageCPath</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un répertoire au package.cpath de lua</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaPackageCPath /chemin/vers/include/?.soa</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Cette directive permet d'ajouter un chemin à la liste des chemins
-    de recherche des bibliothèques partagées de lua. Ceci modifie le
-    package.cpath dans les vms lua.</p>
+        <p><strong>Utilisation de requêtes préparées (recommandé) :</strong></p>
+    <pre class="prettyprint lang-lua">-- Création et exécution d'une requête préparée :
+local statement, errmsg = database:prepare(r, "DELETE FROM `tbl` WHERE `age` &gt; %u")
+if not errmsg then
+    local result, errmsg = statement:query(20) -- exécute la requête pour age &gt; 20
+end
 
+-- Extrait une requête préparée depuis une directive DBDPrepareSQL :
+local statement, errmsg = database:prepared(r, "someTag")
+if not errmsg then
+    local result, errmsg = statement:select("John Doe", 123) -- injecte les valeurs "John Doe" et 123 dans la requête
+end</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luapackagepath" id="luapackagepath">Directive</a> <a name="LuaPackagePath" id="LuaPackagePath">LuaPackagePath</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un répertoire au package.path de lua</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaPackagePath /chemin/vers/include/?.lua</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table><p>Cette directive permet d'ajouter un chemin à la liste des
-    chemins de recherche du module lua. Elle suit les mêmes conventions
-    que lua. Ceci modifie le package.path dans les vms lua.</p>
+        <p><strong>Echappement de valeurs, fermeture de la base données,
+etc...</strong></p>
+    <pre class="prettyprint lang-lua">-- Echappe une valeur pour pouvoir l'utiliser dans une requête :
+local escaped = database:escape(r, [["'|blabla]])
 
-    <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaPackagePath /scripts/lib/?.lua
-LuaPackagePath /scripts/lib/?/init.lua</pre>
-</div>
+-- Ferme une base de données et libère les liens vers cette dernière :
+database:close()
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luaquickhandler" id="luaquickhandler">Directive</a> <a name="LuaQuickHandler" id="LuaQuickHandler">LuaQuickHandler</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fournit un point d'entrée pour la gestion rapide du
-traitement de la requête</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaQuickHandler /path/to/script.lua hook_function_name</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Cette phase s'exécute juste après l'attribution de la requête à
-    un serveur virtuel, et permet d'effectuer certains traitements avant
-    le déroulement des autres phases, ou de servir une requête sans
-    avoir à la traduire, l'associer à un espace de stockage, etc...
-    Comme cette phase s'exécute avant toute autre, les directives telles
-    que <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> ou
-    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ne
-    sont pas encore prises en compte, car Les URI n'ont pas encore été
-    entièrement interprétés.
+-- Vérifie si une connexion à une base de données est en service et
+opérationnelle :
+local connected = database:active()</pre>
+
+    
+    <h3><a name="result_sets" id="result_sets">Travail avec les jeux d'enregistrements renvoyés par les requêtes</a></h3>
+    
+    <p>Les jeux d'enregistrements renvoyés par <code>db:select</code> ou par des
+requêtes préparées créées par <code>db:prepare</code> permettent de
+sélectionner des enregistrements en mode synchrone ou
+asynchrone, selon le nombre d'enregistrements spécifié :<br />
+    <code>result(0)</code> sélectionne tous les enregistrements en mode
+synchrone en renvoyant une table d'enregistrements.<br />
+    <code>result(-1)</code> sélectionne le prochain enregistrement disponible en
+mode asynchrone.<br />
+    <code>result(N)</code> sélectionne l'enregistrement numéro
+<code>N</code> en mode asynchrone.
     </p>
-   <div class="note"><h3>Contexte</h3><p>Cette directive ne peut être
-   utilisée ni à l'intérieur d'une section <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>, ni dans un fichier htaccess.</p></div>
+    <pre class="prettyprint lang-lua">-- extrait un jeu d'enregistrements via une requête régulière :
+local result, err = db:select(r, "SELECT * FROM `tbl` WHERE 1")
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luaroot" id="luaroot">Directive</a> <a name="LuaRoot" id="LuaRoot">LuaRoot</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Spécifie le chemin de base pour la résolution des chemins
-relatifs dans les directives de mod_lua</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaRoot /chemin/vers/un/répertoire</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Cette directive permet de spécifier le chemin de base qui sera
-    utilisé pour évaluer tous les chemins relatifs dans mod_lua. En
-    l'absence de cette directive, les chemins relatifs sont résolus par
-    rapport au répertoire de travail courant, ce qui ne sera pas
-    toujours approprié pour un serveur.</p>
+local rows = result(0) -- sélectionne tous les enregistrements en mode synchrone
+local row = result(-1) -- sélectionne le prochain enregistrement disponible en mode asynchrone
+local row = result(1234) -- sélectionne l'enregistrement 1234 en mode asynchrone
+local row = result(-1, true) -- Lit l'enregistrement suivant en utilisant les noms d'enregistrements comme index.</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="luascope" id="luascope">Directive</a> <a name="LuaScope" id="LuaScope">LuaScope</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Une valeur parmi once, request, conn, thread -- la valeur par défaut est once</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LuaScope once|request|conn|thread|server [min] [max]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>LuaScope once</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>All</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Expérimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_lua</td></tr>
-</table>
-    <p>Cette directive permet de spécifier la durée de vie de
-    l'interpréteur Lua qui sera utilisé dans ce "répertoire". La valeur
-    par défaut est "once".</p>
+    <p>Il est possible de construire une fonction qui renvoie une
+fonction itérative permettant de traiter tous les enregistrement en mode
+synchrone ou asynchrone selon la valeur de l'argument async :
+    </p>
+    <pre class="prettyprint lang-lua">function rows(resultset, async)
+    local a = 0
+    local function getnext()
+        a = a + 1
+        local row = resultset(-1)
+        return row and a or nil, row
+    end
+    if not async then
+        return pairs(resultset(0))
+    else
+        return getnext, self
+    end
+end
 
-   <dl>
-    <dt>once:</dt> <dd>utilise l'interpréteur une fois.</dd>
+local statement, err = db:prepare(r, "SELECT * FROM `tbl` WHERE `age` &gt; %u")
+if not err then
+     -- sélectionne des enregistrements en mode asynchrone :
+    local result, err = statement:select(20)
+    if not err then
+        for index, row in rows(result, true) do
+            ....
+        end
+    end
 
-    <dt>request:</dt> <dd>utilise l'interpréteur pour traiter tout ce
-    qui est basé sur le même fichier dans la requête, et qui se trouve
-    aussi dans la portée de la requête.</dd>
+     -- sélectionne des enregistrements en mode synchrone :
+    local result, err = statement:select(20)
+    if not err then
+        for index, row in rows(result, false) do
+            ....
+        end
+    end
+end</pre>
 
-    <dt>conn:</dt> <dd>idem request, mais attaché à connection_rec</dd>
+    
+    <h3><a name="closing_databases" id="closing_databases">Fermeture d'une connexion à une base de données</a></h3>
+        
 
-    <dt>thread:</dt> <dd>Utilise l'interpréteur pendant toute la durée
-    de vie du thread qui traite la requête (disponible seulement avec
-    les MPMs threadés).</dd>
+    <p>Lorsqu'elles ne sont plus utilisées, les connexions aux bases de
+données doivent être fermées avec <code>database:close()</code>. Si vous
+ne les fermez pas manuellement, mod_lua les fermera peut-être en tant
+que résidus collectés, mais si ce n'est pas le cas, vous pouvez finir
+pas avoir trop de connexions vers la base de données inutilisées. Les
+deux mesures suivantes sont pratiquement identiques :
+    </p>
+    <pre class="prettyprint lang-lua">-- Méthode 1 : fermeture manuelle de la connexion
+local database = r:dbacquire("mod_dbd")
+database:close() -- c'est tout
 
-    <dt>server:</dt>  <dd>Le comportement est ici différent, car la
-    portée du serveur présente une durée de vie assez longue, et
-    plusieurs threads vont partager le même server_rec. Pour gérer tout
-    ceci, les états lua du serveur sont stockés dans une liste de ressources
-    apr. Les arguments <code>min</code> et <code>max</code> permettent
-    de spécifier les nombres minimaux et maximaux d'états lua à stocker
-    dans la liste.</dd>
-   </dl>
-   <p>En général, les portées <code>thread</code> et <code>server</code>
-   sont 2 à 3 fois plus rapides que les autres, car elles n'ont pas besoin
-   de régénérer de nouveaux états Lua à chaque requête (comme c'est le
-   cas avec le MPM event, où même les connexions persistantes utilisent un
-   nouveau thread pour chaque requête). Si vous pensez que vos scripts
-   n'auront pas de problème s'il réutilisent un état, alors les portées
-   <code>thread</code> ou <code>server</code> doivent être utilisées car
-   elles présenteront de meilleures performances. Alors que la portée
-   <code>thread</code> fournira les réponses les plus rapides, la portée
-   <code>server</code> utilisera moins de mémoire car les états sont
-   rassemblés dans des jeux, permettant par exemple à 1000 threads de
-   partager 100 états Lua, ne nécessitant ainsi que 10% de la mémoire
-   requise par la portée <code>thread</code>.
+-- Méthode 2 : on laisse le collecteur de résidus la fermer
+local database = r:dbacquire("mod_dbd")
+database = nil -- on coupe le lien
+collectgarbage() -- fermeture de la connexion par le collecteur de résidus</pre>
+
+    
+    <h3><a name="database_caveat" id="database_caveat">Précautions à prendre lorsque l'on travaille avec les bases
+de données</a></h3>
+    
+    <p>Bien que les fonctions <code>query</code> et <code>run</code>
+soient toujours disponibles, il est recommandé d'utiliser des requêtes
+préparées chaque fois que possible, afin d'une part d'optimiser les
+performances (si votre connexion reste longtemps en vie), et d'autre part
+minimiser le risque d'attaques par injection SQL. Les fonctions
+<code>run</code> et <code>query</code> ne doivent être utilisées que
+lorsque la requête ne contient pas de variables (requête statique). Dans
+le cas des requêtes dynamiques, utilisez <code>db:prepare</code> ou
+<code>db:prepared</code>.
     </p>
+    
 
 </div>
 </div>
index 81dab30ea96eb35bc86ae0f9f476a272f3241f2a..9a5b37407996c99f8531ccf25ae937d26e1274c8 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Macro" id="Macro">&lt;Macro&gt;</a> <a name="macro" id="macro">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a configuration file macro</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>
+&lt;Macro <var>name</var> [<var>par1</var> .. <var>parN</var>]&gt;
+... &lt;/Macro&gt;</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
+</table>
+    <p>The <code class="directive">Macro</code> directive controls the definition of
+    a macro within the server runtime configuration files.
+    The first argument is the name of the macro.
+    Other arguments are parameters to the macro. It is good practice to prefix
+    parameter names with any of '<code>$%@</code>', and not macro names
+    with such characters.
+    </p>
+
+    <pre class="prettyprint lang-config">&lt;Macro LocalAccessPolicy&gt;
+    Require ip 10.2.16.0/24
+&lt;/Macro&gt;
+
+&lt;Macro RestrictedAccessPolicy $ipnumbers&gt;
+    Require ip $ipnumbers
+&lt;/Macro&gt;</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="UndefMacro" id="UndefMacro">UndefMacro</a> <a name="undefmacro" id="undefmacro">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Undefine a macro</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>UndefMacro <var>name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
+</table>
+    <p>The <code class="directive">UndefMacro</code> directive undefines a macro
+    which has been defined before hand.</p>
+
+    <pre class="prettyprint lang-config">UndefMacro LocalAccessPolicy
+UndefMacro RestrictedAccessPolicy</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Use" id="Use">Use</a> <a name="use" id="use">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use a macro</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Use <var>name</var> [<var>value1</var> ... <var>valueN</var>]
+</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
+</table>
+    <p>The <code class="directive">Use</code> directive controls the use of a macro.
+    The specified macro is expanded. It must be given the same number of
+    arguments as in the  macro definition. The provided values are
+    associated to their corresponding initial parameters and are substituted
+    before processing.</p>
+
+    <pre class="prettyprint lang-config">Use LocalAccessPolicy
+...
+Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"</pre>
+
+
+    <p>is equivalent, with the macros defined above, to:</p>
+
+    <pre class="prettyprint lang-config">Require ip 10.2.16.0/24
+...
+Require ip 192.54.172.0/24 192.54.148.0/24</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">Usage</a></h2>
 
@@ -190,81 +265,6 @@ UndefMacro DirGroup</pre>
 
  
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Macro" id="Macro">&lt;Macro&gt;</a> <a name="macro" id="macro">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a configuration file macro</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>
-&lt;Macro <var>name</var> [<var>par1</var> .. <var>parN</var>]&gt;
-... &lt;/Macro&gt;</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
-</table>
-    <p>The <code class="directive">Macro</code> directive controls the definition of
-    a macro within the server runtime configuration files.
-    The first argument is the name of the macro.
-    Other arguments are parameters to the macro. It is good practice to prefix
-    parameter names with any of '<code>$%@</code>', and not macro names
-    with such characters.
-    </p>
-
-    <pre class="prettyprint lang-config">&lt;Macro LocalAccessPolicy&gt;
-    Require ip 10.2.16.0/24
-&lt;/Macro&gt;
-
-&lt;Macro RestrictedAccessPolicy $ipnumbers&gt;
-    Require ip $ipnumbers
-&lt;/Macro&gt;</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="UndefMacro" id="UndefMacro">UndefMacro</a> <a name="undefmacro" id="undefmacro">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Undefine a macro</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>UndefMacro <var>name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
-</table>
-    <p>The <code class="directive">UndefMacro</code> directive undefines a macro
-    which has been defined before hand.</p>
-
-    <pre class="prettyprint lang-config">UndefMacro LocalAccessPolicy
-UndefMacro RestrictedAccessPolicy</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Use" id="Use">Use</a> <a name="use" id="use">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use a macro</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Use <var>name</var> [<var>value1</var> ... <var>valueN</var>]
-</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
-</table>
-    <p>The <code class="directive">Use</code> directive controls the use of a macro.
-    The specified macro is expanded. It must be given the same number of
-    arguments as in the  macro definition. The provided values are
-    associated to their corresponding initial parameters and are substituted
-    before processing.</p>
-
-    <pre class="prettyprint lang-config">Use LocalAccessPolicy
-...
-Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"</pre>
-
-
-    <p>is equivalent, with the macros defined above, to:</p>
-
-    <pre class="prettyprint lang-config">Require ip 10.2.16.0/24
-...
-Require ip 192.54.172.0/24 192.54.148.0/24</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 6d9718ea68f4bca707c4a427f0ae3ca4ae214434..3440fc9c9e30884b2877641b79a89d670b0de316 100644 (file)
@@ -58,6 +58,75 @@ de configuration Apache.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="macro" id="macro">Directive</a> <a name="Macro" id="Macro">&lt;Macro&gt;</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définition d'une macro dans un fichier de configuration</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>
+&lt;Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]&gt;
+... &lt;/Macro&gt;</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
+</table>
+    <p>La directive <code class="directive">Macro</code> permet de définir une macro
+    dans un fichier de configuration Apache. Le premier argument est le nom
+    de la macro, et les arguments suivants sont les paramètres. Il
+    est de bon aloi de préfixer les noms des paramètres d'une macro
+    avec un caractère parmi '<code>$%@</code>', et d'éviter d'en faire
+    de même avec les noms de macros.
+    </p>
+
+    <pre class="prettyprint lang-config">&lt;Macro LocalAccessPolicy&gt;
+  Require ip 10.2.16.0/24
+&lt;/Macro&gt;
+
+&lt;Macro RestrictedAccessPolicy $ipnumbers&gt;
+   Require ip $ipnumbers
+&lt;/Macro&gt;</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="undefmacro" id="undefmacro">Directive</a> <a name="UndefMacro" id="UndefMacro">UndefMacro</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Undefine a macro</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>UndefMacro <var>name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
+</table><p>La documentation de cette directive
+       n'a pas encore t traduite. Veuillez vous reporter  la version
+       en langue anglaise.</p></div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="use" id="use">Directive</a> <a name="Use" id="Use">Use</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation d'une macro</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Use <var>nom</var> [<var>valeur1</var> ... <var>valeurN</var>]
+</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
+</table>
+    <p> La directive <code class="directive">Use</code> permet d'utiliser une macro.
+    La macro considérée est expansée. Son nombre d'arguments doit être égal au
+    nombre de paramètres précisés dans sa définition. Les valeurs passées en
+    argument sont attribuées aux paramètres correspondants et
+    substituées avant l'interprétation du texte de la macro.</p>
+
+    <pre class="prettyprint lang-config">Use LocalAccessPolicy
+...
+Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"</pre>
+
+
+    <p>est équivalent, avec les macros définies ci-dessus à :</p>
+
+    <pre class="prettyprint lang-config">Require ip 10.2.16.0/24
+...
+Require ip 192.54.172.0/24 192.54.148.0/24</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">Utilisation</a></h2>    
 <p>On définit une macro à l'aide des blocs <code class="directive">&lt;Macro&gt;</code> qui contiennent la portion de votre
@@ -200,75 +269,6 @@ UndefMacro DirGroup</pre>
 
  
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="macro" id="macro">Directive</a> <a name="Macro" id="Macro">&lt;Macro&gt;</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définition d'une macro dans un fichier de configuration</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>
-&lt;Macro <var>nom</var> [<var>par1</var> .. <var>parN</var>]&gt;
-... &lt;/Macro&gt;</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
-</table>
-    <p>La directive <code class="directive">Macro</code> permet de définir une macro
-    dans un fichier de configuration Apache. Le premier argument est le nom
-    de la macro, et les arguments suivants sont les paramètres. Il
-    est de bon aloi de préfixer les noms des paramètres d'une macro
-    avec un caractère parmi '<code>$%@</code>', et d'éviter d'en faire
-    de même avec les noms de macros.
-    </p>
-
-    <pre class="prettyprint lang-config">&lt;Macro LocalAccessPolicy&gt;
-  Require ip 10.2.16.0/24
-&lt;/Macro&gt;
-
-&lt;Macro RestrictedAccessPolicy $ipnumbers&gt;
-   Require ip $ipnumbers
-&lt;/Macro&gt;</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="undefmacro" id="undefmacro">Directive</a> <a name="UndefMacro" id="UndefMacro">UndefMacro</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Undefine a macro</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>UndefMacro <var>name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
-</table><p>La documentation de cette directive
-       n'a pas encore t traduite. Veuillez vous reporter  la version
-       en langue anglaise.</p></div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="use" id="use">Directive</a> <a name="Use" id="Use">Use</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilisation d'une macro</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Use <var>nom</var> [<var>valeur1</var> ... <var>valeurN</var>]
-</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_macro</td></tr>
-</table>
-    <p> La directive <code class="directive">Use</code> permet d'utiliser une macro.
-    La macro considérée est expansée. Son nombre d'arguments doit être égal au
-    nombre de paramètres précisés dans sa définition. Les valeurs passées en
-    argument sont attribuées aux paramètres correspondants et
-    substituées avant l'interprétation du texte de la macro.</p>
-
-    <pre class="prettyprint lang-config">Use LocalAccessPolicy
-...
-Use RestrictedAccessPolicy "192.54.172.0/24 192.54.148.0/24"</pre>
-
-
-    <p>est équivalent, avec les macros définies ci-dessus à :</p>
-
-    <pre class="prettyprint lang-config">Require ip 10.2.16.0/24
-...
-Require ip 192.54.172.0/24 192.54.148.0/24</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index 7837b5f6455bbb5a614eb97e6b422b1939e181a2..2ae706bc2709ee2c603e4af9585c21959f5da2af 100644 (file)
 <li><code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="multipleext" id="multipleext">Files with Multiple Extensions</a></h2>
-    <p>Files can have more than one extension; the order of the
-    extensions is <em>normally</em> irrelevant. For example, if the
-    file <code>welcome.html.fr</code> maps onto content type
-    <code>text/html</code> and language French then the file
-    <code>welcome.fr.html</code> will map onto exactly the same
-    information.  If more than one extension is given that maps onto
-    the same type of metadata, then the one to the right will
-    be used, except for languages and content encodings. For example,
-    if <code>.gif</code> maps to the <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a>
-    <code>image/gif</code> and <code>.html</code> maps to the
-    media-type <code>text/html</code>, then the file
-    <code>welcome.gif.html</code> will be associated with the
-    media-type <code>text/html</code>.</p>
-
-    <p><a href="#charset-lang">Languages</a> and <a href="#contentencoding">content encodings</a> are treated accumulative, because one can assign
-    more than one language or encoding to a particular resource. For example,
-    the file <code>welcome.html.en.de</code> will be delivered with
-    <code>Content-Language: en, de</code> and <code>Content-Type:
-    text/html</code>.</p>
-
-    <p>Care should be taken when a file with multiple extensions
-    gets associated with both a <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a>
-    and a handler. This will
-    usually result in the request being handled by the module associated
-    with the handler. For example, if the <code>.imap</code>
-    extension is mapped to the handler <code>imap-file</code> (from
-    <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code>) and the <code>.html</code> extension is
-    mapped to the media-type <code>text/html</code>, then the file
-    <code>world.imap.html</code> will be associated with both the
-    <code>imap-file</code> handler and <code>text/html</code> media-type.
-    When it is processed, the <code>imap-file</code> handler will be used,
-    and so it will be treated as a <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code> imagemap
-    file.</p>
-
-    <p>If you would prefer only the last dot-separated part of the
-    filename to be mapped to a particular piece of meta-data, then do
-    not use the <code>Add*</code> directives. For example, if you wish
-    to have the file <code>foo.html.cgi</code> processed as a CGI
-    script, but not the file <code>bar.cgi.html</code>, then instead
-    of using <code>AddHandler cgi-script .cgi</code>, use</p>
-
-    <div class="example"><h3>Configure handler based on final extension only</h3><pre class="prettyprint lang-config">&lt;FilesMatch "\.cgi$"&gt;
-  SetHandler cgi-script
-&lt;/FilesMatch&gt;</pre>
-</div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="contentencoding" id="contentencoding">Content encoding</a></h2>
-    <p>A file of a particular <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a> can additionally be encoded a
-    particular way to simplify transmission over the Internet.
-    While this usually will refer to compression, such as
-    <code>gzip</code>, it can also refer to encryption, such a
-    <code>pgp</code> or to an encoding such as UUencoding, which is
-    designed for transmitting a binary file in an ASCII (text)
-    format.</p>
-
-    <p>The <a href="http://www.ietf.org/rfc/rfc2616.txt">HTTP/1.1
-    RFC</a>, section 14.11 puts it this way:</p>
-
-    <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt">
-      <p>The Content-Encoding entity-header field is used as a modifier to
-      the media-type. When present, its value indicates what additional
-      content codings have been applied to the entity-body, and thus what
-      decoding mechanisms must be applied in order to obtain the media-type
-      referenced by the Content-Type header field. Content-Encoding is
-      primarily used to allow a document to be compressed without losing
-      the identity of its underlying media type.</p>
-    </blockquote>
-
-    <p>By using more than one file extension (see <a href="#multipleext">section above about multiple file
-    extensions</a>), you can indicate that a file is of a
-    particular <em>type</em>, and also has a particular
-    <em>encoding</em>. </p>
-
-    <p>For example, you may have a file which is a Microsoft Word
-    document, which is pkzipped to reduce its size. If the
-    <code>.doc</code> extension is associated with the Microsoft
-    Word file type, and the <code>.zip</code> extension is
-    associated with the pkzip file encoding, then the file
-    <code>Resume.doc.zip</code> would be known to be a pkzip'ed Word
-    document.</p>
-
-    <p>Apache sends a <code>Content-encoding</code> header with the
-    resource, in order to tell the client browser about the
-    encoding method.</p>
-
-    <pre class="prettyprint lang-config">Content-encoding: pkzip</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="charset-lang" id="charset-lang">Character sets and languages</a></h2>
-    <p>In addition to file type and the file encoding,
-    another important piece of information is what language a
-    particular document is in, and in what character set the file
-    should be displayed. For example, the document might be written
-    in the Vietnamese alphabet, or in Cyrillic, and should be
-    displayed as such. This information, also, is transmitted in
-    HTTP headers.</p>
-
-    <p>The character set, language, encoding and mime type are all
-    used in the process of content negotiation (See
-    <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>) to determine
-    which document to give to the client, when there are
-    alternative documents in more than one character set, language,
-    encoding or mime type. All filename extensions associations
-    created with <code class="directive"><a href="#addcharset">AddCharset</a></code>,
-    <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code> and <code class="directive"><a href="#addtype">AddType</a></code> directives
-    (and extensions listed in the <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code>) participate in this select process.
-    Filename extensions that are only associated using the <code class="directive"><a href="#addhandler">AddHandler</a></code>, <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code> or <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code> directives may be included or excluded
-    from matching by using the <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code> directive.</p>
-
-    <h3><a name="charset" id="charset">Charset</a></h3>
-      <p>To convey this further information, Apache optionally sends
-      a <code>Content-Language</code> header, to specify the language
-      that the document is in, and can append additional information
-      onto the <code>Content-Type</code> header to indicate the
-      particular character set that should be used to correctly
-      render the information.</p>
-
-      <div class="example"><p><code>
-Content-Language: en, fr
-Content-Type: text/plain; charset=ISO-8859-1
-      </code></p></div>
-
-      <p>The language specification is the two-letter abbreviation
-      for the language. The <code>charset</code> is the name of the
-      particular character set which should be used.</p>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddCharset" id="AddCharset">AddCharset</a> <a name="addcharset" id="addcharset">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps the given filename extensions to the specified content
@@ -1002,6 +869,139 @@ extensions</td></tr>
 <ul>
 <li><code class="module"><a href="../mod/mod_mime_magic.html">mod_mime_magic</a></code></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="multipleext" id="multipleext">Files with Multiple Extensions</a></h2>
+    <p>Files can have more than one extension; the order of the
+    extensions is <em>normally</em> irrelevant. For example, if the
+    file <code>welcome.html.fr</code> maps onto content type
+    <code>text/html</code> and language French then the file
+    <code>welcome.fr.html</code> will map onto exactly the same
+    information.  If more than one extension is given that maps onto
+    the same type of metadata, then the one to the right will
+    be used, except for languages and content encodings. For example,
+    if <code>.gif</code> maps to the <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a>
+    <code>image/gif</code> and <code>.html</code> maps to the
+    media-type <code>text/html</code>, then the file
+    <code>welcome.gif.html</code> will be associated with the
+    media-type <code>text/html</code>.</p>
+
+    <p><a href="#charset-lang">Languages</a> and <a href="#contentencoding">content encodings</a> are treated accumulative, because one can assign
+    more than one language or encoding to a particular resource. For example,
+    the file <code>welcome.html.en.de</code> will be delivered with
+    <code>Content-Language: en, de</code> and <code>Content-Type:
+    text/html</code>.</p>
+
+    <p>Care should be taken when a file with multiple extensions
+    gets associated with both a <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a>
+    and a handler. This will
+    usually result in the request being handled by the module associated
+    with the handler. For example, if the <code>.imap</code>
+    extension is mapped to the handler <code>imap-file</code> (from
+    <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code>) and the <code>.html</code> extension is
+    mapped to the media-type <code>text/html</code>, then the file
+    <code>world.imap.html</code> will be associated with both the
+    <code>imap-file</code> handler and <code>text/html</code> media-type.
+    When it is processed, the <code>imap-file</code> handler will be used,
+    and so it will be treated as a <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code> imagemap
+    file.</p>
+
+    <p>If you would prefer only the last dot-separated part of the
+    filename to be mapped to a particular piece of meta-data, then do
+    not use the <code>Add*</code> directives. For example, if you wish
+    to have the file <code>foo.html.cgi</code> processed as a CGI
+    script, but not the file <code>bar.cgi.html</code>, then instead
+    of using <code>AddHandler cgi-script .cgi</code>, use</p>
+
+    <div class="example"><h3>Configure handler based on final extension only</h3><pre class="prettyprint lang-config">&lt;FilesMatch "\.cgi$"&gt;
+  SetHandler cgi-script
+&lt;/FilesMatch&gt;</pre>
+</div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="contentencoding" id="contentencoding">Content encoding</a></h2>
+    <p>A file of a particular <a class="glossarylink" href="../glossary.html#media-type" title="see glossary">media-type</a> can additionally be encoded a
+    particular way to simplify transmission over the Internet.
+    While this usually will refer to compression, such as
+    <code>gzip</code>, it can also refer to encryption, such a
+    <code>pgp</code> or to an encoding such as UUencoding, which is
+    designed for transmitting a binary file in an ASCII (text)
+    format.</p>
+
+    <p>The <a href="http://www.ietf.org/rfc/rfc2616.txt">HTTP/1.1
+    RFC</a>, section 14.11 puts it this way:</p>
+
+    <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt">
+      <p>The Content-Encoding entity-header field is used as a modifier to
+      the media-type. When present, its value indicates what additional
+      content codings have been applied to the entity-body, and thus what
+      decoding mechanisms must be applied in order to obtain the media-type
+      referenced by the Content-Type header field. Content-Encoding is
+      primarily used to allow a document to be compressed without losing
+      the identity of its underlying media type.</p>
+    </blockquote>
+
+    <p>By using more than one file extension (see <a href="#multipleext">section above about multiple file
+    extensions</a>), you can indicate that a file is of a
+    particular <em>type</em>, and also has a particular
+    <em>encoding</em>. </p>
+
+    <p>For example, you may have a file which is a Microsoft Word
+    document, which is pkzipped to reduce its size. If the
+    <code>.doc</code> extension is associated with the Microsoft
+    Word file type, and the <code>.zip</code> extension is
+    associated with the pkzip file encoding, then the file
+    <code>Resume.doc.zip</code> would be known to be a pkzip'ed Word
+    document.</p>
+
+    <p>Apache sends a <code>Content-encoding</code> header with the
+    resource, in order to tell the client browser about the
+    encoding method.</p>
+
+    <pre class="prettyprint lang-config">Content-encoding: pkzip</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="charset-lang" id="charset-lang">Character sets and languages</a></h2>
+    <p>In addition to file type and the file encoding,
+    another important piece of information is what language a
+    particular document is in, and in what character set the file
+    should be displayed. For example, the document might be written
+    in the Vietnamese alphabet, or in Cyrillic, and should be
+    displayed as such. This information, also, is transmitted in
+    HTTP headers.</p>
+
+    <p>The character set, language, encoding and mime type are all
+    used in the process of content negotiation (See
+    <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>) to determine
+    which document to give to the client, when there are
+    alternative documents in more than one character set, language,
+    encoding or mime type. All filename extensions associations
+    created with <code class="directive"><a href="#addcharset">AddCharset</a></code>,
+    <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code> and <code class="directive"><a href="#addtype">AddType</a></code> directives
+    (and extensions listed in the <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code>) participate in this select process.
+    Filename extensions that are only associated using the <code class="directive"><a href="#addhandler">AddHandler</a></code>, <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code> or <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code> directives may be included or excluded
+    from matching by using the <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code> directive.</p>
+
+    <h3><a name="charset" id="charset">Charset</a></h3>
+      <p>To convey this further information, Apache optionally sends
+      a <code>Content-Language</code> header, to specify the language
+      that the document is in, and can append additional information
+      onto the <code>Content-Type</code> header to indicate the
+      particular character set that should be used to correctly
+      render the information.</p>
+
+      <div class="example"><p><code>
+Content-Language: en, fr
+Content-Type: text/plain; charset=ISO-8859-1
+      </code></p></div>
+
+      <p>The language specification is the two-letter abbreviation
+      for the language. The <code>charset</code> is the name of the
+      particular character set which should be used.</p>
+    
 </div>
 </div>
 <div class="bottomlang">
index 3f295748aeebb13d86d8edefac7a1e472b2d519c..0834c7199d7f3b36ef6edc97e09e7f65d981578f 100644 (file)
@@ -123,148 +123,6 @@ multiples</a></li>
 <li><code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="multipleext" id="multipleext">Fichiers avec extensions
-multiples</a></h2>
-    <p>Les fichiers peuvent posséder plusieurs extensions dont l'ordre
-    est <em>normalement</em> sans importance. Par exemple, si
-    le fichier <code>welcome.html.fr</code> est associé au type de
-    contenu <code>text/html</code> et à la langue française, le fichier
-    <code>welcome.fr.html</code> possèdera exactement les même
-    métadonnées. Si le fichier possède plusieurs extensions associées
-    au même type de métadonnée, c'est celle de ces extensions la plus à
-    droite qui sera utilisée, excepté pour ce qui concerne les langues
-    et les codages de contenu. Par exemple, si <code>.gif</code> est
-    associé au <a class="glossarylink" href="../glossary.html#type de médium" title="voir glossaire">type de médium</a>
-    <code>image/gif</code>, et <code>.html</code> au type de médium
-    <code>text/html</code>, le fichier <code>welcome.gif.html</code>
-    sera associé au type de médium <code>text/html</code>.</p>
-
-    <p>Les <a href="#charset-lang">Languages</a> et les <a href="#contentencoding">codages de contenu</a> sont traités de
-    manière cumulative, car il est possible d'assigner plusieurs
-    langues ou codages à une ressource particulière. Par exemple, le
-    fichier <code>welcome.html.en.de</code> sera servi avec les en-têtes
-    <code>Content-Language: en, de</code> et <code>Content-Type:
-    text/html</code>.</p>
-
-    <p>Des précautions doivent être prises lorsqu'un fichier avec
-    extensions multiples est associé à la fois à un <a class="glossarylink" href="../glossary.html#type de&#10;    médium" title="voir glossaire">type de
-    médium</a> et à un gestionnaire. En général, cela impliquera
-    la gestion de la requête par le module associé au gestionnaire. Par
-    exemple, si l'extension <code>.imap</code> est associée au
-    gestionnaire <code>imap-file</code> (du module
-    <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code>), et si l'extension <code>.html</code>
-    est associée au type de médium <code>text/html</code>, le fichier
-    <code>world.imap.html</code> sera à la fois associé au gestionnaire
-    <code>imap-file</code> et au type de médium <code>text/html</code>.
-    Pour son traitement, c'est le gestionnaire <code>imap-file</code>
-    qui sera utilisé, et il sera donc traité en tant que fichier
-    imagemap.</p>
-
-    <p>Si vous préférez que seule la dernière partie d'un nom de fichier
-    séparée du reste du nom par un point soit associée à une métadonnée
-    particulière, n'utilisez pas les directives <code>Add*</code>. Par
-    exemple, si vous souhaitez que le fichier <code>foo.html.cgi</code>
-    soit traité en tant que script CGI, mais pas le fichier
-    <code>bar.cgi.html</code>, alors, au lieu d'utiliser
-    <code>AddHandler cgi-script .cgi</code>, utilisez plutôt :</p>
-
-    <div class="example"><h3>Configuration du gestionnaire en se basant seulement
-    sur la dernière extension</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.cgi$&gt;
-  SetHandler cgi-script
-&lt;/FilesMatch&gt;</pre>
-</div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="contentencoding" id="contentencoding">Codage du contenu</a></h2>
-    <p>Un fichier d'un <a class="glossarylink" href="../glossary.html#type de médium" title="voir glossaire">type de médium</a> particulier
-    peut être également codé d'une certaine manière pour simplifier sa
-    transmission sur Internet. Alors que cela concerne en général la
-    compression, comme <code>gzip</code>, il peut aussi s'agir de
-    chiffrement, comme <code>pgp</code> ou d'un codage comme UUencoding,
-    qui est conçu pour transmettre un fichier binaire sous un format
-    ASCII (texte).</p>
-
-    <p>La <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC
-    HTTP/1.1</a>, section 14.11 stipule à ce titre :</p>
-
-    <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt">
-      <p>Le champ d'en-tête Content-Encoding de l'entité est utilisé en
-      tant que modificateur du type de médium. Lorsqu'il est présent, sa
-      valeur indique quels codages de contenu additionnels ont été
-      appliqués au corps de l'entité, et ainsi quels mécanismes de
-      décodage doivent être appliqués afin de retrouver le type de
-      médium référencé par le champ d'en-tête Content-Type. Le codage de
-      contenu est principalement utilisé pour permettre la compression
-      d'un document sans perdre l'information concernant le type de
-      médium sous-jacent.</p>
-    </blockquote>
-
-    <p>En utilisant plusieurs extensions (voir la <a href="#multipleext">section ci-dessus à propos des extensions de
-    fichiers multiples</a>), vous pouvez indiquer qu'un fichier est d'un
-    <em>type</em>, particulier, et possède aussi un <em>codage</em>
-    particulier.</p>
-
-    <p>Considérons par exemple un fichier contenant un document
-    Microsoft Word et compressé par pkzip pour réduire sa taille. Si
-    l'extension <code>.doc</code> est associée au type de fichier
-    Microsoft Word, et si l'extension <code>.zip</code> est associée au
-    codage de fichier pkzip, alors le fichier
-    <code>Resume.doc.zip</code> sera identifié comme document Word
-    compressé par pkzip.</p>
-
-    <p>Apache joint un en-tête <code>Content-encoding</code> à la
-    ressource afin d'informer le navigateur client à propos de la
-    méthode de codage.</p>
-
-    <pre class="prettyprint lang-config">Content-encoding: pkzip</pre>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="charset-lang" id="charset-lang">Jeux de caractères et langues</a></h2>
-    <p>En plus du type de fichier et du codage, un autre élément
-    important d'information est la langue dans laquelle le document est
-    écrit, et avec quel jeu de caractères le contenu du fichier doit
-    être affiché. Par exemple, un document peut être écrit en alphabet
-    vietnamien ou cyrillique, et doit être affiché en conséquence. Cette
-    information est également transmise via des en-têtes HTTP.</p>
-
-    <p>Les jeu de caractères, langue, codage et type MIME sont tous
-    utilisés au cours du processus de négociation de contenu (voir
-    <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>) afin de déterminer quel document
-    servir au client, lorsque plusieurs choix sont possibles en fonction
-    du jeu de caractères, de la langue, du codage ou du type MIME. Toutes
-    les associations d'extensions de noms de fichiers créées via les
-    directives <code class="directive"><a href="#addcharset">AddCharset</a></code>,
-    <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code> et <code class="directive"><a href="#addtype">AddType</a></code> (ainsi que les associations
-    d'extensions listées dans le fichier défini par la directive
-    <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code>),
-    participent à ce processus de sélection. Les extensions de noms de
-    fichiers qui n'ont été associés que par des directives <code class="directive"><a href="#addhandler">AddHandler</a></code>, <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code> ou <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code>, peuvent être incluses
-    ou exclues du processus de sélection en utilisant la directive
-    <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code>.</p>
-
-    <h3><a name="charset" id="charset">Jeu de caractères</a></h3>
-      <p>Pour transmettre cette information supplémentaire, Apache peut
-      ajouter un en-tête <code>Content-Language</code>, afin de
-      spécifier la langue dans laquelle le document est écrit, et peut
-      ajouter des informations additionnelles à l'en-tête
-      <code>Content-Type</code> pour indiquer le jeu de caractères
-      particulier qui doit être utilisé pour restituer correctement le
-      document.</p>
-
-      <div class="example"><p><code>
-        Content-Language: en, fr
-Content-Type: text/plain; charset=ISO-8859-1
-      </code></p></div>
-
-      <p>La langue est spécifiée via son abréviation en deux lettres. Le
-      <code>jeu de caractères</code> est le nom du jeu de caractères
-      particulier qui doit être utilisé.</p>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="addcharset" id="addcharset">Directive</a> <a name="AddCharset" id="AddCharset">AddCharset</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Associe les extensions de noms de fichiers spécifiées au
@@ -1075,6 +933,148 @@ d'extensions de noms de fichiers</td></tr>
 <ul>
 <li><code class="module"><a href="../mod/mod_mime_magic.html">mod_mime_magic</a></code></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="multipleext" id="multipleext">Fichiers avec extensions
+multiples</a></h2>
+    <p>Les fichiers peuvent posséder plusieurs extensions dont l'ordre
+    est <em>normalement</em> sans importance. Par exemple, si
+    le fichier <code>welcome.html.fr</code> est associé au type de
+    contenu <code>text/html</code> et à la langue française, le fichier
+    <code>welcome.fr.html</code> possèdera exactement les même
+    métadonnées. Si le fichier possède plusieurs extensions associées
+    au même type de métadonnée, c'est celle de ces extensions la plus à
+    droite qui sera utilisée, excepté pour ce qui concerne les langues
+    et les codages de contenu. Par exemple, si <code>.gif</code> est
+    associé au <a class="glossarylink" href="../glossary.html#type de médium" title="voir glossaire">type de médium</a>
+    <code>image/gif</code>, et <code>.html</code> au type de médium
+    <code>text/html</code>, le fichier <code>welcome.gif.html</code>
+    sera associé au type de médium <code>text/html</code>.</p>
+
+    <p>Les <a href="#charset-lang">Languages</a> et les <a href="#contentencoding">codages de contenu</a> sont traités de
+    manière cumulative, car il est possible d'assigner plusieurs
+    langues ou codages à une ressource particulière. Par exemple, le
+    fichier <code>welcome.html.en.de</code> sera servi avec les en-têtes
+    <code>Content-Language: en, de</code> et <code>Content-Type:
+    text/html</code>.</p>
+
+    <p>Des précautions doivent être prises lorsqu'un fichier avec
+    extensions multiples est associé à la fois à un <a class="glossarylink" href="../glossary.html#type de&#10;    médium" title="voir glossaire">type de
+    médium</a> et à un gestionnaire. En général, cela impliquera
+    la gestion de la requête par le module associé au gestionnaire. Par
+    exemple, si l'extension <code>.imap</code> est associée au
+    gestionnaire <code>imap-file</code> (du module
+    <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code>), et si l'extension <code>.html</code>
+    est associée au type de médium <code>text/html</code>, le fichier
+    <code>world.imap.html</code> sera à la fois associé au gestionnaire
+    <code>imap-file</code> et au type de médium <code>text/html</code>.
+    Pour son traitement, c'est le gestionnaire <code>imap-file</code>
+    qui sera utilisé, et il sera donc traité en tant que fichier
+    imagemap.</p>
+
+    <p>Si vous préférez que seule la dernière partie d'un nom de fichier
+    séparée du reste du nom par un point soit associée à une métadonnée
+    particulière, n'utilisez pas les directives <code>Add*</code>. Par
+    exemple, si vous souhaitez que le fichier <code>foo.html.cgi</code>
+    soit traité en tant que script CGI, mais pas le fichier
+    <code>bar.cgi.html</code>, alors, au lieu d'utiliser
+    <code>AddHandler cgi-script .cgi</code>, utilisez plutôt :</p>
+
+    <div class="example"><h3>Configuration du gestionnaire en se basant seulement
+    sur la dernière extension</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.cgi$&gt;
+  SetHandler cgi-script
+&lt;/FilesMatch&gt;</pre>
+</div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="contentencoding" id="contentencoding">Codage du contenu</a></h2>
+    <p>Un fichier d'un <a class="glossarylink" href="../glossary.html#type de médium" title="voir glossaire">type de médium</a> particulier
+    peut être également codé d'une certaine manière pour simplifier sa
+    transmission sur Internet. Alors que cela concerne en général la
+    compression, comme <code>gzip</code>, il peut aussi s'agir de
+    chiffrement, comme <code>pgp</code> ou d'un codage comme UUencoding,
+    qui est conçu pour transmettre un fichier binaire sous un format
+    ASCII (texte).</p>
+
+    <p>La <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC
+    HTTP/1.1</a>, section 14.11 stipule à ce titre :</p>
+
+    <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt">
+      <p>Le champ d'en-tête Content-Encoding de l'entité est utilisé en
+      tant que modificateur du type de médium. Lorsqu'il est présent, sa
+      valeur indique quels codages de contenu additionnels ont été
+      appliqués au corps de l'entité, et ainsi quels mécanismes de
+      décodage doivent être appliqués afin de retrouver le type de
+      médium référencé par le champ d'en-tête Content-Type. Le codage de
+      contenu est principalement utilisé pour permettre la compression
+      d'un document sans perdre l'information concernant le type de
+      médium sous-jacent.</p>
+    </blockquote>
+
+    <p>En utilisant plusieurs extensions (voir la <a href="#multipleext">section ci-dessus à propos des extensions de
+    fichiers multiples</a>), vous pouvez indiquer qu'un fichier est d'un
+    <em>type</em>, particulier, et possède aussi un <em>codage</em>
+    particulier.</p>
+
+    <p>Considérons par exemple un fichier contenant un document
+    Microsoft Word et compressé par pkzip pour réduire sa taille. Si
+    l'extension <code>.doc</code> est associée au type de fichier
+    Microsoft Word, et si l'extension <code>.zip</code> est associée au
+    codage de fichier pkzip, alors le fichier
+    <code>Resume.doc.zip</code> sera identifié comme document Word
+    compressé par pkzip.</p>
+
+    <p>Apache joint un en-tête <code>Content-encoding</code> à la
+    ressource afin d'informer le navigateur client à propos de la
+    méthode de codage.</p>
+
+    <pre class="prettyprint lang-config">Content-encoding: pkzip</pre>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="charset-lang" id="charset-lang">Jeux de caractères et langues</a></h2>
+    <p>En plus du type de fichier et du codage, un autre élément
+    important d'information est la langue dans laquelle le document est
+    écrit, et avec quel jeu de caractères le contenu du fichier doit
+    être affiché. Par exemple, un document peut être écrit en alphabet
+    vietnamien ou cyrillique, et doit être affiché en conséquence. Cette
+    information est également transmise via des en-têtes HTTP.</p>
+
+    <p>Les jeu de caractères, langue, codage et type MIME sont tous
+    utilisés au cours du processus de négociation de contenu (voir
+    <code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code>) afin de déterminer quel document
+    servir au client, lorsque plusieurs choix sont possibles en fonction
+    du jeu de caractères, de la langue, du codage ou du type MIME. Toutes
+    les associations d'extensions de noms de fichiers créées via les
+    directives <code class="directive"><a href="#addcharset">AddCharset</a></code>,
+    <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code> et <code class="directive"><a href="#addtype">AddType</a></code> (ainsi que les associations
+    d'extensions listées dans le fichier défini par la directive
+    <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code>),
+    participent à ce processus de sélection. Les extensions de noms de
+    fichiers qui n'ont été associés que par des directives <code class="directive"><a href="#addhandler">AddHandler</a></code>, <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code> ou <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code>, peuvent être incluses
+    ou exclues du processus de sélection en utilisant la directive
+    <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code>.</p>
+
+    <h3><a name="charset" id="charset">Jeu de caractères</a></h3>
+      <p>Pour transmettre cette information supplémentaire, Apache peut
+      ajouter un en-tête <code>Content-Language</code>, afin de
+      spécifier la langue dans laquelle le document est écrit, et peut
+      ajouter des informations additionnelles à l'en-tête
+      <code>Content-Type</code> pour indiquer le jeu de caractères
+      particulier qui doit être utilisé pour restituer correctement le
+      document.</p>
+
+      <div class="example"><p><code>
+        Content-Language: en, fr
+Content-Type: text/plain; charset=ISO-8859-1
+      </code></p></div>
+
+      <p>La langue est spécifiée via son abréviation en deux lettres. Le
+      <code>jeu de caractères</code> est le nom du jeu de caractères
+      particulier qui doit être utilisé.</p>
+    
 </div>
 </div>
 <div class="bottomlang">
index 787247b1a91b2040d82a1f570f91ff4e207703e4..7e31da77be2acd3c3339f9616584505bb77b3421 100644 (file)
 <li><code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="multipleext" id="multipleext">複数の拡張子のあるファイル</a></h2>
-    <p>ファイルは複数の拡張子を持つことができ、拡張子の順番は<em>通常は</em>関係ありません。例えば、ファイル <code>welcome.html.fr</code>
-    がコンテントタイプは <code>text/html</code>
-    に、言語はフランス語にマップされる場合、<code>welcome.fr.html</code>
-    もまったく同じ情報にマップされます。
-    同じメタ情報にマップされる拡張子が複数あるときには、言語と
-    コンテントエンコーディングを除いて、
-    右側にあるものが使用されます。たとえば、<code>.gif</code> が <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a> <code>image/gif</code> にマップされ、<code>.html</code>
-    が MIME タイプ <code>text/html</code>
-    にマップされる場合は、ファイル <code>welcome.gif.html</code> は
-    MIME タイプ <code>text/html</code> に関連付けられます。</p>
-
-    <p>リソースに複数の言語やエンコーディングを関連付けること
-    ができるため、
-    <a href="#charset-lang">言語</a>と<a href="#contentencoding">コンテントエンコーディング</a>は前のものに追加されていきます。
-    たとえば、ファイル <code>welcome.html.en.de</code> は
-    <code>Content-Language: en, de</code> と <code>Content-Type:
-    text/html</code> として送信されます。</p>
-
-    <p>複数の拡張子のあるファイルが <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME
-    タイプ</a>とハンドラの両方に関連付けられているときは注意する必要があります。
-    その場合、普通はリクエストがハンドラに関連付けられた
-    モジュールによって扱われることになります。たとえば、拡張子
-    <code>.imap</code> が (<code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code> の) <code>imap-file</code>
-    にマップされていて、<code>.html</code> が MIME タイプ <code>text/html</code>
-    にマップされているときは、ファイル <code>world.imap.html</code> は
-    <code>imap-file</code> ハンドラと <code>text/html</code> MIME
-    タイプに関連付けられます。ファイルが処理されるときは <code>imap-file</code>
-    ハンドラが使用されますので、そのファイルは <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code>
-    のイメージマップファイルとして扱われることになります。</p>
-
-    <p>ファイル名のドット区切りでの最後の部分を使って、
-    特定の部分のメタデータにマッピングしたい場合は、
-    <code>Add*</code> ディレクティブは使わないでください。
-    たとえば <code>foo.html.cgi</code> を CGI スクリプトとして処理したいけれども、
-    <code>bar.cgi.html</code> は CGI スクリプトとしては処理したくない場合、
-    <code>AddHandler cgi-script .cgi</code> とする代わりに
-    次のようにしてください</p>
-
-    <div class="example"><h3>Configure handler based on final extension only</h3><p><code>
-    &lt;FilesMatch \.cgi$&gt;
-    <span class="indent">
-      SetHandler cgi-script
-    </span>
-    &lt;/FilesMatch&gt;
-    </code></p></div>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="contentencoding" id="contentencoding">コンテントエンコーディング</a></h2>
-    <p>特定の <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a>
-    のファイルはインターネットでの転送を簡単にするために、
-    さらに符号化することができます。これは通常は <code>gzip</code> の
-    ような圧縮のことを指しますが、<code>pgp</code> のような暗号化や、
-    バイナリファイルを ASCII (テキスト) 形式で送るために考案された
-    UUencoding のことを指すこともあります。</p>
-
-    <p><a href="http://www.ietf.org/rfc/rfc2616.txt">HTTP/1.1 RFC</a> 
-    14.11 節では次のように記述されています。</p>
-
-    <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt">
-      <p>Content-Encoding エンティティヘッダフィールドはメディアタイプの
-      修飾子として使われます。それが存在していれば、値はエンティティボディに
-      どの追加の符号化が適用されたかを示し、Content-Type ヘッダフィールドに
-      書かれているメディアタイプを得るためにどの復号機構を適用すべきか、も
-      示していることになります。Content-Encoding は主に、元のメディアタイプの
-      同一性を失うことなくドキュメントを圧縮することを可能にするために
-      使用されます。</p>
-    </blockquote>
-
-    <p>複数のファイル拡張子 (複数の拡張子については <a href="#multipleext">上の節</a> を参照) 使うことで、
-    ファイルの<em>タイプ</em>や<em>エンコーディング</em>を指定することが
-    できます。</p>
-
-    <p>たとえば、Microsoft Word のドキュメントがあり、サイズを小さくするために
-    pkzip されているとします。<code>.doc</code> 拡張子が Microsoft Word の
-    ファイルタイプと関連付けられていて、<code>.zip</code> 拡張子が
-    pkzip ファイルエンコーディングと関連付けられていると、ファイル
-    <code>Resume.doc.zip</code> は pkzip された Word ドキュメントである
-    ということがわかります。</p>
-
-    <p>クライアントのブラウザにエンコーディング方法を知らせるために、
-    Apache はリソースと共に <code>Content-Encoding</code> ヘッダを
-    送ります。</p>
-
-    <div class="example"><p><code>Content-encoding: pkzip</code></p></div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="charset-lang" id="charset-lang">文字セットと言語</a></h2>
-    <p>ファイルタイプとファイルエンコーディングの他に重要な情報は
-    ドキュメントの書かれている言語と、どの文字セットでファイルが表示
-    されるべきか、というものです。たとえば、ドキュメントはベトナムの
-    アルファベットやキリル文字で書かれていて、そのように表示される
-    必要があるかもしれません。この情報もまた、HTTP ヘッダで
-    送信されます。</p>
-
-    <p>文字セット、言語、エンコーディング、mime タイプはすべて
-    コンテントネゴシエーション (<code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code> 参照)
-    の最中に、複数の文字セット、言語、エンコーディング、MIME タイプからなる
-    代替物があるときにどのドキュメントをクライアントに送るのかを
-    決定するときに使われます。<code class="directive"><a href="#addcharset">AddCharset</a></code>,
-    <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code>,
-    <code class="directive"><a href="#addtype">AddType</a></code> の各ディレクティブで作成された
-    拡張子の関連付け (と <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code> でリストされている
-    拡張子) がこの選択に参加します。<code class="directive"><a href="#addhandler">AddHandler</a></code>,
-    <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code>,
-    <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code> の
-    各ディレクティブでのみ関連付けられている拡張子は
-    <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code> ディレクティブを
-    使うことでマッチの
-    処理に含めることも外すこともできます。</p>
-
-    <h3><a name="charset" id="charset">Charset</a></h3>
-      <p>さらに情報を伝えるために、Apache は文書の言語を
-      <code>Content-Language</code> ヘッダで送ることもあります。
-      また、情報を正しく表示するために使用すべき文字セットを示すために
-      <code>Conten-Type</code> ヘッダに情報を追加することもあります。</p>
-
-      <div class="example"><p><code>
-        Content-Language: en, fr<br />
-        Content-Type: text/plain; charset=ISO-8859-1
-      </code></p></div>
-
-      <p>言語の指定は二文字の短縮形で行なわれます。<code>charset</code> が
-      使用すべき文字セットの名前です。</p>
-    
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AddCharset" id="AddCharset">AddCharset</a> <a name="addcharset" id="addcharset">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ファイル名の拡張子を指定された文字セットにマップする</td></tr>
 <ul>
 <li><code class="module"><a href="../mod/mod_mime_magic.html">mod_mime_magic</a></code></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="multipleext" id="multipleext">複数の拡張子のあるファイル</a></h2>
+    <p>ファイルは複数の拡張子を持つことができ、拡張子の順番は<em>通常は</em>関係ありません。例えば、ファイル <code>welcome.html.fr</code>
+    がコンテントタイプは <code>text/html</code>
+    に、言語はフランス語にマップされる場合、<code>welcome.fr.html</code>
+    もまったく同じ情報にマップされます。
+    同じメタ情報にマップされる拡張子が複数あるときには、言語と
+    コンテントエンコーディングを除いて、
+    右側にあるものが使用されます。たとえば、<code>.gif</code> が <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a> <code>image/gif</code> にマップされ、<code>.html</code>
+    が MIME タイプ <code>text/html</code>
+    にマップされる場合は、ファイル <code>welcome.gif.html</code> は
+    MIME タイプ <code>text/html</code> に関連付けられます。</p>
+
+    <p>リソースに複数の言語やエンコーディングを関連付けること
+    ができるため、
+    <a href="#charset-lang">言語</a>と<a href="#contentencoding">コンテントエンコーディング</a>は前のものに追加されていきます。
+    たとえば、ファイル <code>welcome.html.en.de</code> は
+    <code>Content-Language: en, de</code> と <code>Content-Type:
+    text/html</code> として送信されます。</p>
+
+    <p>複数の拡張子のあるファイルが <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME
+    タイプ</a>とハンドラの両方に関連付けられているときは注意する必要があります。
+    その場合、普通はリクエストがハンドラに関連付けられた
+    モジュールによって扱われることになります。たとえば、拡張子
+    <code>.imap</code> が (<code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code> の) <code>imap-file</code>
+    にマップされていて、<code>.html</code> が MIME タイプ <code>text/html</code>
+    にマップされているときは、ファイル <code>world.imap.html</code> は
+    <code>imap-file</code> ハンドラと <code>text/html</code> MIME
+    タイプに関連付けられます。ファイルが処理されるときは <code>imap-file</code>
+    ハンドラが使用されますので、そのファイルは <code class="module"><a href="../mod/mod_imagemap.html">mod_imagemap</a></code>
+    のイメージマップファイルとして扱われることになります。</p>
+
+    <p>ファイル名のドット区切りでの最後の部分を使って、
+    特定の部分のメタデータにマッピングしたい場合は、
+    <code>Add*</code> ディレクティブは使わないでください。
+    たとえば <code>foo.html.cgi</code> を CGI スクリプトとして処理したいけれども、
+    <code>bar.cgi.html</code> は CGI スクリプトとしては処理したくない場合、
+    <code>AddHandler cgi-script .cgi</code> とする代わりに
+    次のようにしてください</p>
+
+    <div class="example"><h3>Configure handler based on final extension only</h3><p><code>
+    &lt;FilesMatch \.cgi$&gt;
+    <span class="indent">
+      SetHandler cgi-script
+    </span>
+    &lt;/FilesMatch&gt;
+    </code></p></div>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="contentencoding" id="contentencoding">コンテントエンコーディング</a></h2>
+    <p>特定の <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME タイプ</a>
+    のファイルはインターネットでの転送を簡単にするために、
+    さらに符号化することができます。これは通常は <code>gzip</code> の
+    ような圧縮のことを指しますが、<code>pgp</code> のような暗号化や、
+    バイナリファイルを ASCII (テキスト) 形式で送るために考案された
+    UUencoding のことを指すこともあります。</p>
+
+    <p><a href="http://www.ietf.org/rfc/rfc2616.txt">HTTP/1.1 RFC</a> 
+    14.11 節では次のように記述されています。</p>
+
+    <blockquote cite="http://www.ietf.org/rfc/rfc2616.txt">
+      <p>Content-Encoding エンティティヘッダフィールドはメディアタイプの
+      修飾子として使われます。それが存在していれば、値はエンティティボディに
+      どの追加の符号化が適用されたかを示し、Content-Type ヘッダフィールドに
+      書かれているメディアタイプを得るためにどの復号機構を適用すべきか、も
+      示していることになります。Content-Encoding は主に、元のメディアタイプの
+      同一性を失うことなくドキュメントを圧縮することを可能にするために
+      使用されます。</p>
+    </blockquote>
+
+    <p>複数のファイル拡張子 (複数の拡張子については <a href="#multipleext">上の節</a> を参照) 使うことで、
+    ファイルの<em>タイプ</em>や<em>エンコーディング</em>を指定することが
+    できます。</p>
+
+    <p>たとえば、Microsoft Word のドキュメントがあり、サイズを小さくするために
+    pkzip されているとします。<code>.doc</code> 拡張子が Microsoft Word の
+    ファイルタイプと関連付けられていて、<code>.zip</code> 拡張子が
+    pkzip ファイルエンコーディングと関連付けられていると、ファイル
+    <code>Resume.doc.zip</code> は pkzip された Word ドキュメントである
+    ということがわかります。</p>
+
+    <p>クライアントのブラウザにエンコーディング方法を知らせるために、
+    Apache はリソースと共に <code>Content-Encoding</code> ヘッダを
+    送ります。</p>
+
+    <div class="example"><p><code>Content-encoding: pkzip</code></p></div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="charset-lang" id="charset-lang">文字セットと言語</a></h2>
+    <p>ファイルタイプとファイルエンコーディングの他に重要な情報は
+    ドキュメントの書かれている言語と、どの文字セットでファイルが表示
+    されるべきか、というものです。たとえば、ドキュメントはベトナムの
+    アルファベットやキリル文字で書かれていて、そのように表示される
+    必要があるかもしれません。この情報もまた、HTTP ヘッダで
+    送信されます。</p>
+
+    <p>文字セット、言語、エンコーディング、mime タイプはすべて
+    コンテントネゴシエーション (<code class="module"><a href="../mod/mod_negotiation.html">mod_negotiation</a></code> 参照)
+    の最中に、複数の文字セット、言語、エンコーディング、MIME タイプからなる
+    代替物があるときにどのドキュメントをクライアントに送るのかを
+    決定するときに使われます。<code class="directive"><a href="#addcharset">AddCharset</a></code>,
+    <code class="directive"><a href="#addencoding">AddEncoding</a></code>, <code class="directive"><a href="#addlanguage">AddLanguage</a></code>,
+    <code class="directive"><a href="#addtype">AddType</a></code> の各ディレクティブで作成された
+    拡張子の関連付け (と <code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code> でリストされている
+    拡張子) がこの選択に参加します。<code class="directive"><a href="#addhandler">AddHandler</a></code>,
+    <code class="directive"><a href="#addinputfilter">AddInputFilter</a></code>,
+    <code class="directive"><a href="#addoutputfilter">AddOutputFilter</a></code> の
+    各ディレクティブでのみ関連付けられている拡張子は
+    <code class="directive"><a href="#multiviewsmatch">MultiviewsMatch</a></code> ディレクティブを
+    使うことでマッチの
+    処理に含めることも外すこともできます。</p>
+
+    <h3><a name="charset" id="charset">Charset</a></h3>
+      <p>さらに情報を伝えるために、Apache は文書の言語を
+      <code>Content-Language</code> ヘッダで送ることもあります。
+      また、情報を正しく表示するために使用すべき文字セットを示すために
+      <code>Conten-Type</code> ヘッダに情報を追加することもあります。</p>
+
+      <div class="example"><p><code>
+        Content-Language: en, fr<br />
+        Content-Type: text/plain; charset=ISO-8859-1
+      </code></p></div>
+
+      <p>言語の指定は二文字の短縮形で行なわれます。<code>charset</code> が
+      使用すべき文字セットの名前です。</p>
+    
 </div>
 </div>
 <div class="bottomlang">
index 89b612d21b548b82e37f06c759ade6321ccb66a4..75d28c6251ad167edb2ec18797591f4ad7f199e5 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#notes">Notes</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="MimeMagicFile" id="MimeMagicFile">MimeMagicFile</a> <a name="mimemagicfile" id="mimemagicfile">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable MIME-type determination based on file contents
+using the specified magic file</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MimeMagicFile <var>file-path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mime_magic</td></tr>
+</table>
+    <p>The <code class="directive">MimeMagicFile</code> directive can be used to
+    enable this module, the default file is distributed at
+    <code>conf/magic</code>. Non-rooted paths are relative to the
+    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Virtual hosts will use
+    the same file as the main server unless a more specific setting is
+    used, in which case the more specific setting overrides the main
+    server's file.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">MimeMagicFile conf/magic</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="format" id="format">Format of the Magic File</a></h2>
 
         used here.</li>
       </ul>
     </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="MimeMagicFile" id="MimeMagicFile">MimeMagicFile</a> <a name="mimemagicfile" id="mimemagicfile">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable MIME-type determination based on file contents
-using the specified magic file</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>MimeMagicFile <var>file-path</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mime_magic</td></tr>
-</table>
-    <p>The <code class="directive">MimeMagicFile</code> directive can be used to
-    enable this module, the default file is distributed at
-    <code>conf/magic</code>. Non-rooted paths are relative to the
-    <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Virtual hosts will use
-    the same file as the main server unless a more specific setting is
-    used, in which case the more specific setting overrides the main
-    server's file.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">MimeMagicFile conf/magic</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 065dc3b313df74bb3acf7f6459a67e2e2ad39778..f76c015e2d41d9206c3df6432b95d3a760535e8c 100644 (file)
@@ -58,6 +58,29 @@ octets de son contenu</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#notes">Notes</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="mimemagicfile" id="mimemagicfile">Directive</a> <a name="MimeMagicFile" id="MimeMagicFile">MimeMagicFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la détermination du type MIME en se basant sur le
+contenu du fichier et en utilisant le fichier magique
+spécifié</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MimeMagicFile <var>chemin-fichier</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mime_magic</td></tr>
+</table>
+    <p>La directive <code class="directive">MimeMagicFile</code> permet
+    d'activer ce module, le fichier par défaut fourni étant
+    <code>conf/magic</code>. Les chemins sans slash '/' de début sont
+    relatifs au répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Les serveurs virtuels
+    utilisent le même fichier que le serveur principal sauf si un
+    fichier spécifique a été défini pour ce serveur virtuel, auquel cas
+    c'est ce dernier fichier qui sera utilisé.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">MimeMagicFile conf/magic</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="format" id="format">Format du fichier magique</a></h2>
 
@@ -253,29 +276,6 @@ octets de son contenu</td></tr>
         used here.</li>
       </ul>
     </div>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="mimemagicfile" id="mimemagicfile">Directive</a> <a name="MimeMagicFile" id="MimeMagicFile">MimeMagicFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la détermination du type MIME en se basant sur le
-contenu du fichier et en utilisant le fichier magique
-spécifié</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>MimeMagicFile <var>chemin-fichier</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_mime_magic</td></tr>
-</table>
-    <p>La directive <code class="directive">MimeMagicFile</code> permet
-    d'activer ce module, le fichier par défaut fourni étant
-    <code>conf/magic</code>. Les chemins sans slash '/' de début sont
-    relatifs au répertoire défini par la directive <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>. Les serveurs virtuels
-    utilisent le même fichier que le serveur principal sauf si un
-    fichier spécifique a été défini pour ce serveur virtuel, auquel cas
-    c'est ce dernier fichier qui sera utilisé.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">MimeMagicFile conf/magic</pre>
-</div>
-
 </div>
 </div>
 <div class="bottomlang">
index 6ca0fcc54a471c23828eb59c54fae560e77c78d8..7be5c8e17fddfb3f32c30ed435d64b7e0553e72c 100644 (file)
@@ -69,6 +69,118 @@ Negotiation</a></li>
 <li><a href="../env.html">Environment Variables</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a> <a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allows content-negotiated documents to be
+cached by proxy servers</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
+</table>
+    <p>If set, this directive allows content-negotiated documents
+    to be cached by proxy servers. This could mean that clients
+    behind those proxys could retrieve versions of the documents
+    that are not the best match for their abilities, but it will
+    make caching more efficient.</p>
+
+    <p>This directive only applies to requests which come from
+    HTTP/1.0 browsers. HTTP/1.1 provides much better control over
+    the caching of negotiated documents, and this directive has no
+    effect in responses to HTTP/1.1 requests.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a> <a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action to take if a single acceptable document is not
+found</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
+</table>
+    <p>The <code class="directive">ForceLanguagePriority</code> directive uses
+    the given <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to satisfy
+    negotiation where the server could otherwise not return a single
+    matching document.</p>
+
+    <p><code>ForceLanguagePriority Prefer</code> uses
+    <code>LanguagePriority</code> to serve a one valid result, rather
+    than returning an HTTP result 300 (MULTIPLE CHOICES) when there
+    are several equally valid choices.  If the directives below were
+    given, and the user's <code>Accept-Language</code> header assigned
+    <code>en</code> and <code>de</code> each as quality <code>.500</code>
+    (equally acceptable) then the first matching variant, <code>en</code>,
+    will be served.</p>
+
+    <pre class="prettyprint lang-config">LanguagePriority en fr de
+ForceLanguagePriority Prefer</pre>
+
+
+    <p><code>ForceLanguagePriority Fallback</code> uses
+    <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to
+    serve a valid result, rather than returning an HTTP result 406
+    (NOT ACCEPTABLE). If the directives below were given, and the user's
+    <code>Accept-Language</code> only permitted an <code>es</code>
+    language response, but such a variant isn't found, then the first
+    variant from the <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> list below will be served.</p>
+
+    <pre class="prettyprint lang-config">LanguagePriority en fr de
+ForceLanguagePriority Fallback</pre>
+
+
+    <p>Both options, <code>Prefer</code> and <code>Fallback</code>, may be
+    specified, so either the first matching variant from <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> will be served if
+    more than one variant is acceptable, or first available document will
+    be served if none of the variants matched the client's acceptable list
+    of languages.</p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a> <a name="languagepriority" id="languagepriority">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The precendence of language variants for cases where
+the client does not express a preference</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>]
+...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
+</table>
+    <p>The <code class="directive">LanguagePriority</code> sets the precedence
+    of language variants for the case where the client does not
+    express a preference, when handling a Multiviews request. The list
+    of <var>MIME-lang</var> are in order of decreasing preference.</p>
+
+    <pre class="prettyprint lang-config">LanguagePriority en fr de</pre>
+
+
+    <p>For a request for <code>foo.html</code>, where
+    <code>foo.html.fr</code> and <code>foo.html.de</code> both
+    existed, but the browser did not express a language preference,
+    then <code>foo.html.fr</code> would be returned.</p>
+
+    <p>Note that this directive only has an effect if a 'best'
+    language cannot be determined by any other means or the <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> directive
+    is not <code>None</code>. In general, the client determines the
+    language preference, not the server.</p>
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="typemaps" id="typemaps">Type maps</a></h2>
     <p>A type map has a format similar to RFC822 mail headers. It
@@ -226,118 +338,6 @@ Negotiation</a></li>
     that do not have content negotiation meta-information assigned
     to them when choosing files.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a> <a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Allows content-negotiated documents to be
-cached by proxy servers</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
-</table>
-    <p>If set, this directive allows content-negotiated documents
-    to be cached by proxy servers. This could mean that clients
-    behind those proxys could retrieve versions of the documents
-    that are not the best match for their abilities, but it will
-    make caching more efficient.</p>
-
-    <p>This directive only applies to requests which come from
-    HTTP/1.0 browsers. HTTP/1.1 provides much better control over
-    the caching of negotiated documents, and this directive has no
-    effect in responses to HTTP/1.1 requests.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a> <a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action to take if a single acceptable document is not
-found</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
-</table>
-    <p>The <code class="directive">ForceLanguagePriority</code> directive uses
-    the given <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to satisfy
-    negotiation where the server could otherwise not return a single
-    matching document.</p>
-
-    <p><code>ForceLanguagePriority Prefer</code> uses
-    <code>LanguagePriority</code> to serve a one valid result, rather
-    than returning an HTTP result 300 (MULTIPLE CHOICES) when there
-    are several equally valid choices.  If the directives below were
-    given, and the user's <code>Accept-Language</code> header assigned
-    <code>en</code> and <code>de</code> each as quality <code>.500</code>
-    (equally acceptable) then the first matching variant, <code>en</code>,
-    will be served.</p>
-
-    <pre class="prettyprint lang-config">LanguagePriority en fr de
-ForceLanguagePriority Prefer</pre>
-
-
-    <p><code>ForceLanguagePriority Fallback</code> uses
-    <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> to
-    serve a valid result, rather than returning an HTTP result 406
-    (NOT ACCEPTABLE). If the directives below were given, and the user's
-    <code>Accept-Language</code> only permitted an <code>es</code>
-    language response, but such a variant isn't found, then the first
-    variant from the <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> list below will be served.</p>
-
-    <pre class="prettyprint lang-config">LanguagePriority en fr de
-ForceLanguagePriority Fallback</pre>
-
-
-    <p>Both options, <code>Prefer</code> and <code>Fallback</code>, may be
-    specified, so either the first matching variant from <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> will be served if
-    more than one variant is acceptable, or first available document will
-    be served if none of the variants matched the client's acceptable list
-    of languages.</p>
-
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a> <a name="languagepriority" id="languagepriority">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The precendence of language variants for cases where
-the client does not express a preference</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LanguagePriority <var>MIME-lang</var> [<var>MIME-lang</var>]
-...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
-</table>
-    <p>The <code class="directive">LanguagePriority</code> sets the precedence
-    of language variants for the case where the client does not
-    express a preference, when handling a Multiviews request. The list
-    of <var>MIME-lang</var> are in order of decreasing preference.</p>
-
-    <pre class="prettyprint lang-config">LanguagePriority en fr de</pre>
-
-
-    <p>For a request for <code>foo.html</code>, where
-    <code>foo.html.fr</code> and <code>foo.html.de</code> both
-    existed, but the browser did not express a language preference,
-    then <code>foo.html.fr</code> would be returned.</p>
-
-    <p>Note that this directive only has an effect if a 'best'
-    language cannot be determined by any other means or the <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> directive
-    is not <code>None</code>. In general, the client determines the
-    language preference, not the server.</p>
-
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
-</ul>
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_negotiation.html" title="English">&nbsp;en&nbsp;</a> |
index 448adfb247dd8ed143fcdb0332c38589129ed240..d17973fb960659c5c8511dfe59decae6105045cb 100644 (file)
@@ -69,6 +69,128 @@ contenu</a></li>
 <li><a href="../env.html">Variables d'environnement</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a> <a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet la mise en cache au niveau des serveurs mandataires
+des documents dont le contenu a été négocié</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
+</table>
+    <p>Si elle est définie à "on", cette directive permet la mise en
+    cache au niveau des serveurs mandataires des documents dont le
+    contenu a été négocié. Le processus de mise en cache sera alors plus
+    efficace, mais des clients se trouvant derrière le mandataire
+    seront alors susceptibles de se voir servir des versions de
+    documents qui ne correspondent pas forcément à leurs attentes.</p>
+
+    <p>Cette directive ne s'applique qu'aux requêtes en provenance de
+    navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contrôle de
+    la mise en cache des documents au contenu négocié, et cette
+    directive n'a aucun effet sur les réponses aux requêtes
+    HTTP/1.1.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a> <a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre si un document acceptable unique
+n'est pas trouvé</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
+</table>
+    <p>La directive <code class="directive">ForceLanguagePriority</code> utilise
+    le langage défini par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> pour terminer
+    la négociation lorsque le serveur n'est pas en mesure de trouver une
+    solution satisfaisante unique.</p>
+
+    <p><code>ForceLanguagePriority Prefer</code> utilise la directive
+    <code>LanguagePriority</code> pour servir le résultat d'un choix
+    unique, au lieu de renvoyer un résultat HTTP 300 (MULTIPLE CHOICES),
+    lorsque que plusieurs choix équivalents sont disponibles. Par
+    exemple, avec les deux directives ci-dessous, si l'en-tête
+    <code>Accept-Language</code> de l'utilisateur assigne à
+    <code>en</code> et <code>de</code> une qualité de <code>.500</code>
+    (les deux langages sont également acceptables), alors c'est la
+    première variante acceptable de langue <code>en</code> qui sera
+    servie.</p>
+
+    <pre class="prettyprint lang-config">LanguagePriority en fr de
+ForceLanguagePriority Prefer</pre>
+
+
+    <p><code>ForceLanguagePriority Fallback</code> utilise la directive
+    <code class="directive"><a href="#languagepriority">LanguagePriority</a></code>
+    pour servir un résultat valide, au lieu de renvoyer un résultat HTTP
+    406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si
+    l'en-tête <code>Accept-Language</code> de l'utilisateur ne mentionne
+    que les réponses de langage <code>es</code>, et si aucune variante
+    dans cette langue n'est trouvée, c'est la première variante de la
+    liste définie par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> qui sera servie.</p>
+
+    <pre class="prettyprint lang-config">LanguagePriority en fr de
+ForceLanguagePriority Fallback</pre>
+
+
+    <p>Les deux options, <code>Prefer</code> et <code>Fallback</code>,
+    peuvent être spécifiées, de façon à ce que la variante servie soit
+    la première variante qui convient définie par la directive
+    <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> si
+    plusieurs variantes sont également acceptables, ou le premier
+    document disponible si aucune variante ne convient à la liste de
+    langages acceptables fournie par le client.</p>
+
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="languagepriority" id="languagepriority">Directive</a> <a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'ordre de priorité des variantes de langages pour les
+cas où le client n'a pas formulé de préférences</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LanguagePriority <var>langage-MIME</var> [<var>langage-MIME</var>]
+...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
+</table>
+    <p>La directive <code class="directive">LanguagePriority</code> permet de
+    définir, au cours du traitement d'une requête Multivues, l'ordre de
+    priorité des variantes de langages pour les cas
+    où le client n'a pas formulé de préférences. La liste énumère les
+    <var>langages-MIME</var> dans un ordre de préférences
+    décroissantes.</p>
+
+    <pre class="prettyprint lang-config">LanguagePriority en fr de</pre>
+
+
+    <p>Dans le cas d'une requête pour <code>foo.html</code>, si
+    <code>foo.html.fr</code> et <code>foo.html.de</code> existent, et si
+    le client n'a pas formulé de préférences, c'est le fichier
+    <code>foo.html.fr</code> qui sera renvoyé.</p>
+
+    <p>Notez que cette directive n'a d'effet que si le 'meilleur'
+    langage n'a pas pu être déterminé d'une autre manière ou si la
+    valeur de la directive  <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> est
+    différente de <code>None</code>. En général, c'est le client qui
+    détermine le langage préféré, non le serveur.</p>
+
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="typemaps" id="typemaps">Tables de correspondances de types</a></h2>
     <p>Une table de correspondances de types possède un format similaire
@@ -232,128 +354,6 @@ contenu</a></li>
     prendre en compte les fichiers qui ne comportent pas de métadonnées
     de négociation de contenu lors du choix du fichier à servir.</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="cachenegotiateddocs" id="cachenegotiateddocs">Directive</a> <a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet la mise en cache au niveau des serveurs mandataires
-des documents dont le contenu a été négocié</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>CacheNegotiatedDocs On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>CacheNegotiatedDocs Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
-</table>
-    <p>Si elle est définie à "on", cette directive permet la mise en
-    cache au niveau des serveurs mandataires des documents dont le
-    contenu a été négocié. Le processus de mise en cache sera alors plus
-    efficace, mais des clients se trouvant derrière le mandataire
-    seront alors susceptibles de se voir servir des versions de
-    documents qui ne correspondent pas forcément à leurs attentes.</p>
-
-    <p>Cette directive ne s'applique qu'aux requêtes en provenance de
-    navigateurs HTTP/1.0. HTTP/1.1 fournit un bien meilleur contrôle de
-    la mise en cache des documents au contenu négocié, et cette
-    directive n'a aucun effet sur les réponses aux requêtes
-    HTTP/1.1.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="forcelanguagepriority" id="forcelanguagepriority">Directive</a> <a name="ForceLanguagePriority" id="ForceLanguagePriority">ForceLanguagePriority</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Action à entreprendre si un document acceptable unique
-n'est pas trouvé</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ForceLanguagePriority None|Prefer|Fallback [Prefer|Fallback]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ForceLanguagePriority Prefer</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
-</table>
-    <p>La directive <code class="directive">ForceLanguagePriority</code> utilise
-    le langage défini par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> pour terminer
-    la négociation lorsque le serveur n'est pas en mesure de trouver une
-    solution satisfaisante unique.</p>
-
-    <p><code>ForceLanguagePriority Prefer</code> utilise la directive
-    <code>LanguagePriority</code> pour servir le résultat d'un choix
-    unique, au lieu de renvoyer un résultat HTTP 300 (MULTIPLE CHOICES),
-    lorsque que plusieurs choix équivalents sont disponibles. Par
-    exemple, avec les deux directives ci-dessous, si l'en-tête
-    <code>Accept-Language</code> de l'utilisateur assigne à
-    <code>en</code> et <code>de</code> une qualité de <code>.500</code>
-    (les deux langages sont également acceptables), alors c'est la
-    première variante acceptable de langue <code>en</code> qui sera
-    servie.</p>
-
-    <pre class="prettyprint lang-config">LanguagePriority en fr de
-ForceLanguagePriority Prefer</pre>
-
-
-    <p><code>ForceLanguagePriority Fallback</code> utilise la directive
-    <code class="directive"><a href="#languagepriority">LanguagePriority</a></code>
-    pour servir un résultat valide, au lieu de renvoyer un résultat HTTP
-    406 (NOT ACCEPTABLE). Avec les deux directives ci-dessous, si
-    l'en-tête <code>Accept-Language</code> de l'utilisateur ne mentionne
-    que les réponses de langage <code>es</code>, et si aucune variante
-    dans cette langue n'est trouvée, c'est la première variante de la
-    liste définie par la directive <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> qui sera servie.</p>
-
-    <pre class="prettyprint lang-config">LanguagePriority en fr de
-ForceLanguagePriority Fallback</pre>
-
-
-    <p>Les deux options, <code>Prefer</code> et <code>Fallback</code>,
-    peuvent être spécifiées, de façon à ce que la variante servie soit
-    la première variante qui convient définie par la directive
-    <code class="directive"><a href="#languagepriority">LanguagePriority</a></code> si
-    plusieurs variantes sont également acceptables, ou le premier
-    document disponible si aucune variante ne convient à la liste de
-    langages acceptables fournie par le client.</p>
-
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="languagepriority" id="languagepriority">Directive</a> <a name="LanguagePriority" id="LanguagePriority">LanguagePriority</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'ordre de priorité des variantes de langages pour les
-cas où le client n'a pas formulé de préférences</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LanguagePriority <var>langage-MIME</var> [<var>langage-MIME</var>]
-...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>FileInfo</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_negotiation</td></tr>
-</table>
-    <p>La directive <code class="directive">LanguagePriority</code> permet de
-    définir, au cours du traitement d'une requête Multivues, l'ordre de
-    priorité des variantes de langages pour les cas
-    où le client n'a pas formulé de préférences. La liste énumère les
-    <var>langages-MIME</var> dans un ordre de préférences
-    décroissantes.</p>
-
-    <pre class="prettyprint lang-config">LanguagePriority en fr de</pre>
-
-
-    <p>Dans le cas d'une requête pour <code>foo.html</code>, si
-    <code>foo.html.fr</code> et <code>foo.html.de</code> existent, et si
-    le client n'a pas formulé de préférences, c'est le fichier
-    <code>foo.html.fr</code> qui sera renvoyé.</p>
-
-    <p>Notez que cette directive n'a d'effet que si le 'meilleur'
-    langage n'a pas pu être déterminé d'une autre manière ou si la
-    valeur de la directive  <code class="directive"><a href="#forcelanguagepriority">ForceLanguagePriority</a></code> est
-    différente de <code>None</code>. En général, c'est le client qui
-    détermine le langage préféré, non le serveur.</p>
-
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
-</ul>
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_negotiation.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index abea7eb3f87227f5cfd12c5696dcc8bde5c79cf9..98349e6dcc3cc7d0a5b1a92c35aa9ddbbc126182 100644 (file)
 <li><a href="../env.html">環境変数</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="typemaps" id="typemaps">タイプマップ</a></h2>
-    <p>タイプマップは RFC 822 のメールヘッダに類似した書式です。
-    ドキュメントの記述が空行で分離されて書かれていて、ハッシュ文字
-    ('#') で始まる行はコメントとして扱われます。
-    ドキュメントの説明は複数のヘッダレコードから構成されます。
-    レコードは、続きの行が空白で始まっていると複数の行にまたがります。
-    最初の空白が消去されて、前の行とつなげて 1 行として扱われます。
-    ヘッダレコードはキーワード名の後に値が続くという形式で、
-    キーワード名は常にコロンで終わります。空白はヘッダ名と値の間、
-    値のトークンの間に入れることができます。
-    使用可能なヘッダは以下のとおりです:</p>
-
-    <dl>
-      <dt><code>Content-Encoding:</code></dt>
-      <dd>ファイルのエンコーディング。Apache は <code class="directive"><a href="../mod/mod_mime.html#addencoding">AddEncoding</a></code> ディレクティブ
-      で定義されたエンコーディングだけを認識します。通常 compress
-      されたファイルのための <code>x-compress</code> と gzip
-      されたファイルのための <code>x-gzip</code> を含みます。
-      エンコーディングの比較をするときは、接頭辞 <code>x-</code>
-      は無視されます。</dd>
-
-      <dt><code>Content-Language:</code></dt>
-      <dd>インターネット標準の言語タグ 
-      (<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>)
-      で定義されている言語の種類。例えば、<code>en</code>
-      は英語を表します。
-      複数の言語が格納される場合はコンマで区切られます。</dd>
-
-      <dt><code>Content-Length:</code></dt>
-      <dd>ファイルの長さ (バイト数)。
-      このヘッダがない場合、ファイルの実際の長さが使用されます。</dd>
-
-      <dt><code>Content-Type:</code></dt>
-      <dd>ドキュメントの <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME
-      メディアタイプ</a>、オプショナルなパラメータ付き。パラメータの構文は
-      <code>name=value</code>
-      で、メディアタイプや他のパラメータとはセミコロンで分離されます。
-      共通のパラメータは以下のとおり:
-
-        <dl>
-          <dt><code>level</code></dt>
-          <dd>メディアタイプのバージョンを示す整数。
-          <code>text/html</code> では 2 がデフォルトで、その他の場合は
-          0 がデフォルトです。</dd>
-
-          <dt><code>qs</code></dt>
-          <dd>クライアントの能力に関係なく、variant
-          を他と比較したときの相対的な「品質」で、0.0 から 1.0
-          の範囲の浮動点小数。
-          例えば、写真を表現しようとしているときは普通は JPEG
-          ファイルの方が ASCII ファイルよりも高い品質になります。
-          しかし、リソースが ASCII アートで表現されているときは、ASCII
-          ファイルの方が JPEG
-          ファイルよりも高い品質になります。このように、<code>qs</code>
-          はリソース毎に特有の値を取ります。
-          </dd>
-        </dl>
-
-        <div class="example"><h3>例</h3><p><code>
-          Content-Type: image/jpeg; qs=0.8
-        </code></p></div>
-      </dd>
-
-      <dt><code>URI:</code></dt>
-      <dd>(指定のメディアタイプ、コンテントエンコーディングの) variant の
-      ファイルの uri.  これは、マップファイルからの相対 URL として
-      解釈されます。同じサーバに存在しなければならず、クライアントが
-      直接リクエストしたときにアクセスを許可されるものでなければなりません。</dd>
-
-      <dt><code>Body:</code></dt>
-      <dd>Apache 2.0 で新設されたこの Body ヘッダを使って、
-      リソースの実際の内容をタイプマップファイルに書くことができます。
-      このヘッダは本文の内容の区切りとなる文字列で始まる必要があります。
-      タイプマップファイルの続く行は、区切り文字列が見つかるまで、
-      リソースの本文になります。
-
-      <div class="example"><h3>Example:</h3><p><code>
-        Body:----xyz----<br />
-        &lt;html&gt;<br />
-        &lt;body&gt;<br />
-        &lt;p&gt;Content of the page.&lt;/p&gt;<br />
-        &lt;/body&gt;<br />
-        &lt;/html&gt;<br />
-        ----xyz----
-      </code></p></div>
-      </dd>
-    </dl>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="multiviews" id="multiviews">MultiViews</a></h2>
-    <p>MultiViews 探索は、<code>Multiviews</code> <code class="directive"><a href="../mod/core.html#options">Options</a></code> ディレクティブにより有効になります。
-    サーバが <code>/some/dir/foo</code>
-    へのリクエストを受け取り、<code>/some/dir/foo</code> が存在
-    <em>しない</em>場合、サーバはディレクトリを読んで、
-    <code>foo.*</code> にあてはまる全てのファイルを探し、
-    事実上それらのファイルをマップするタイプマップを作ります。
-    そのとき、メディアタイプとコンテントエンコーディングは、
-    そのファイル名を直接指定したときと同じものが割り当てられます。
-    それからクライアントの要求に一番合うものを選び、
-    そのドキュメントを返します。</p>
-
-    <p>ファイルを選択する際に、関連するコンテントネゴシエーションの
-    メタ情報を持たないファイルについて、判定を行うかどうかを
-    <code class="directive"><a href="../mod/mod_mime.html#multiviewsmatch">MultiViewsMatch</a></code>
-    ディレクティブで設定します。</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CacheNegotiatedDocs" id="CacheNegotiatedDocs">CacheNegotiatedDocs</a> <a name="cachenegotiateddocs" id="cachenegotiateddocs">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>コンテントネゴシエーションされたドキュメントをプロキシサーバが
 <li><code class="directive"><a href="../mod/mod_mime.html#addlanguage">AddLanguage</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="typemaps" id="typemaps">タイプマップ</a></h2>
+    <p>タイプマップは RFC 822 のメールヘッダに類似した書式です。
+    ドキュメントの記述が空行で分離されて書かれていて、ハッシュ文字
+    ('#') で始まる行はコメントとして扱われます。
+    ドキュメントの説明は複数のヘッダレコードから構成されます。
+    レコードは、続きの行が空白で始まっていると複数の行にまたがります。
+    最初の空白が消去されて、前の行とつなげて 1 行として扱われます。
+    ヘッダレコードはキーワード名の後に値が続くという形式で、
+    キーワード名は常にコロンで終わります。空白はヘッダ名と値の間、
+    値のトークンの間に入れることができます。
+    使用可能なヘッダは以下のとおりです:</p>
+
+    <dl>
+      <dt><code>Content-Encoding:</code></dt>
+      <dd>ファイルのエンコーディング。Apache は <code class="directive"><a href="../mod/mod_mime.html#addencoding">AddEncoding</a></code> ディレクティブ
+      で定義されたエンコーディングだけを認識します。通常 compress
+      されたファイルのための <code>x-compress</code> と gzip
+      されたファイルのための <code>x-gzip</code> を含みます。
+      エンコーディングの比較をするときは、接頭辞 <code>x-</code>
+      は無視されます。</dd>
+
+      <dt><code>Content-Language:</code></dt>
+      <dd>インターネット標準の言語タグ 
+      (<a href="http://www.ietf.org/rfc/rfc1766.txt">RFC 1766</a>)
+      で定義されている言語の種類。例えば、<code>en</code>
+      は英語を表します。
+      複数の言語が格納される場合はコンマで区切られます。</dd>
+
+      <dt><code>Content-Length:</code></dt>
+      <dd>ファイルの長さ (バイト数)。
+      このヘッダがない場合、ファイルの実際の長さが使用されます。</dd>
+
+      <dt><code>Content-Type:</code></dt>
+      <dd>ドキュメントの <a class="glossarylink" href="../glossary.html#mime-type" title="用語集を参照">MIME
+      メディアタイプ</a>、オプショナルなパラメータ付き。パラメータの構文は
+      <code>name=value</code>
+      で、メディアタイプや他のパラメータとはセミコロンで分離されます。
+      共通のパラメータは以下のとおり:
+
+        <dl>
+          <dt><code>level</code></dt>
+          <dd>メディアタイプのバージョンを示す整数。
+          <code>text/html</code> では 2 がデフォルトで、その他の場合は
+          0 がデフォルトです。</dd>
+
+          <dt><code>qs</code></dt>
+          <dd>クライアントの能力に関係なく、variant
+          を他と比較したときの相対的な「品質」で、0.0 から 1.0
+          の範囲の浮動点小数。
+          例えば、写真を表現しようとしているときは普通は JPEG
+          ファイルの方が ASCII ファイルよりも高い品質になります。
+          しかし、リソースが ASCII アートで表現されているときは、ASCII
+          ファイルの方が JPEG
+          ファイルよりも高い品質になります。このように、<code>qs</code>
+          はリソース毎に特有の値を取ります。
+          </dd>
+        </dl>
+
+        <div class="example"><h3>例</h3><p><code>
+          Content-Type: image/jpeg; qs=0.8
+        </code></p></div>
+      </dd>
+
+      <dt><code>URI:</code></dt>
+      <dd>(指定のメディアタイプ、コンテントエンコーディングの) variant の
+      ファイルの uri.  これは、マップファイルからの相対 URL として
+      解釈されます。同じサーバに存在しなければならず、クライアントが
+      直接リクエストしたときにアクセスを許可されるものでなければなりません。</dd>
+
+      <dt><code>Body:</code></dt>
+      <dd>Apache 2.0 で新設されたこの Body ヘッダを使って、
+      リソースの実際の内容をタイプマップファイルに書くことができます。
+      このヘッダは本文の内容の区切りとなる文字列で始まる必要があります。
+      タイプマップファイルの続く行は、区切り文字列が見つかるまで、
+      リソースの本文になります。
+
+      <div class="example"><h3>Example:</h3><p><code>
+        Body:----xyz----<br />
+        &lt;html&gt;<br />
+        &lt;body&gt;<br />
+        &lt;p&gt;Content of the page.&lt;/p&gt;<br />
+        &lt;/body&gt;<br />
+        &lt;/html&gt;<br />
+        ----xyz----
+      </code></p></div>
+      </dd>
+    </dl>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="multiviews" id="multiviews">MultiViews</a></h2>
+    <p>MultiViews 探索は、<code>Multiviews</code> <code class="directive"><a href="../mod/core.html#options">Options</a></code> ディレクティブにより有効になります。
+    サーバが <code>/some/dir/foo</code>
+    へのリクエストを受け取り、<code>/some/dir/foo</code> が存在
+    <em>しない</em>場合、サーバはディレクトリを読んで、
+    <code>foo.*</code> にあてはまる全てのファイルを探し、
+    事実上それらのファイルをマップするタイプマップを作ります。
+    そのとき、メディアタイプとコンテントエンコーディングは、
+    そのファイル名を直接指定したときと同じものが割り当てられます。
+    それからクライアントの要求に一番合うものを選び、
+    そのドキュメントを返します。</p>
+
+    <p>ファイルを選択する際に、関連するコンテントネゴシエーションの
+    メタ情報を持たないファイルについて、判定を行うかどうかを
+    <code class="directive"><a href="../mod/mod_mime.html#multiviewsmatch">MultiViewsMatch</a></code>
+    ディレクティブで設定します。</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_negotiation.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index b93bb6c103bba440f538c82e2814abe705f9f276..f7067c995eea0c5143502fd5ee63826218af3209 100644 (file)
@@ -45,7 +45,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#securelisten">SecureListen</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="NWSSLTrustedCerts" id="NWSSLTrustedCerts">NWSSLTrustedCerts</a> <a name="nwssltrustedcerts" id="nwssltrustedcerts">Directive</a></h2>
 <table class="directive">
@@ -92,6 +91,7 @@
     parameter also enables mutual authentication.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_nw_ssl.html" title="English">&nbsp;en&nbsp;</a> |
index 4c12fef2d69bab12a501d6a74917708e3bbc0b5b..ee14dd10c4dd1ee9634c565f2856e7a221130e64 100644 (file)
@@ -45,7 +45,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#securelisten">SecureListen</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="nwssltrustedcerts" id="nwssltrustedcerts">Directive</a> <a name="NWSSLTrustedCerts" id="NWSSLTrustedCerts">NWSSLTrustedCerts</a></h2>
 <table class="directive">
@@ -96,6 +95,7 @@ sp
     d'activer l'authentification mutuelle.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_nw_ssl.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 54758a89340156640f4435eb28c744fbd8911142..e4fcc747e2c119942028eb54d1bb5f6214201a9b 100644 (file)
@@ -77,65 +77,6 @@ separation is an issue.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Security Considerations</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="security" id="security">Security Considerations</a></h2>
-
-<p><code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> introduces new security concerns
-in situations where <strong>untrusted code</strong> may be run
-<strong>within the webserver process</strong>.  This applies to
-untrusted modules, and scripts running under modules such as
-mod_php or mod_perl.  Scripts running externally (e.g. as CGI
-or in an appserver behind mod_proxy or mod_jk) are NOT affected.</p>
-
-<p>The basic security concerns with mod_privileges are:</p>
-<ul><li>Running as a system user introduces the same security issues
-    as mod_suexec, and near-equivalents such as cgiwrap and suphp.</li>
-<li>A privileges-aware malicious user extension (module or script)
-    could escalate its privileges to anything available to the
-    httpd process in any virtual host.  This introduces new risks
-    if (and only if) mod_privileges is compiled with the
-    <var>BIG_SECURITY_HOLE</var> option.</li>
-<li>A privileges-aware malicious user extension (module or script)
-    could escalate privileges to set its user ID to another system
-    user (and/or group).</li>
-</ul>
-
-<p>The <code class="directive">PrivilegesMode</code> directive allows you to
-select either <var>FAST</var> or <var>SECURE</var> mode.  You can
-mix modes, using <var>FAST</var> mode for trusted users and
-fully-audited code paths, while imposing SECURE mode where an
-untrusted user has scope to introduce code.</p>
-<p>Before describing the modes, we should also introduce the target
-use cases: Benign vs Hostile.  In a benign situation, you want to
-separate users for their convenience, and protect them and the server
-against the risks posed by honest mistakes, but you trust your users
-are not deliberately subverting system security.  In a hostile
-situation - e.g. commercial hosting - you may have users deliberately
-attacking the system or each other.</p>
-<dl>
-<dt>FAST mode</dt>
-<dd>In <var>FAST</var> mode, requests are run in-process with the
-selected uid/gid and privileges, so the overhead is negligible.
-This is suitable for benign situations, but is not secure against an
-attacker escalating privileges with an in-process module or script.</dd>
-<dt>SECURE mode</dt>
-<dd>A request in <var>SECURE</var> mode forks a subprocess, which
-then drops privileges.  This is a very similar case to running CGI
-with suexec, but for the entire request cycle, and with the benefit
-of fine-grained control of privileges.</dd>
-</dl>
-<p>You can select different <code class="directive">PrivilegesMode</code>s for
-each virtual host, and even in a directory context within a virtual
-host.  <var>FAST</var> mode is appropriate where the user(s) are
-trusted and/or have no privilege to load in-process code.
-<var>SECURE</var> mode is appropriate to cases where untrusted code
-might be run in-process.  However, even in <var>SECURE</var> mode,
-there is no protection against a malicious user who is able to
-introduce privileges-aware code running <em>before the start of the
-request-processing cycle.</em></p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="DTracePrivileges" id="DTracePrivileges">DTracePrivileges</a> <a name="dtraceprivileges" id="dtraceprivileges">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines whether the privileges required by dtrace are enabled.</td></tr>
@@ -391,6 +332,65 @@ non-threaded MPMs (<code class="module"><a href="../mod/prefork.html">prefork</a
 <li><code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code></li>
 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="security" id="security">Security Considerations</a></h2>
+
+<p><code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> introduces new security concerns
+in situations where <strong>untrusted code</strong> may be run
+<strong>within the webserver process</strong>.  This applies to
+untrusted modules, and scripts running under modules such as
+mod_php or mod_perl.  Scripts running externally (e.g. as CGI
+or in an appserver behind mod_proxy or mod_jk) are NOT affected.</p>
+
+<p>The basic security concerns with mod_privileges are:</p>
+<ul><li>Running as a system user introduces the same security issues
+    as mod_suexec, and near-equivalents such as cgiwrap and suphp.</li>
+<li>A privileges-aware malicious user extension (module or script)
+    could escalate its privileges to anything available to the
+    httpd process in any virtual host.  This introduces new risks
+    if (and only if) mod_privileges is compiled with the
+    <var>BIG_SECURITY_HOLE</var> option.</li>
+<li>A privileges-aware malicious user extension (module or script)
+    could escalate privileges to set its user ID to another system
+    user (and/or group).</li>
+</ul>
+
+<p>The <code class="directive">PrivilegesMode</code> directive allows you to
+select either <var>FAST</var> or <var>SECURE</var> mode.  You can
+mix modes, using <var>FAST</var> mode for trusted users and
+fully-audited code paths, while imposing SECURE mode where an
+untrusted user has scope to introduce code.</p>
+<p>Before describing the modes, we should also introduce the target
+use cases: Benign vs Hostile.  In a benign situation, you want to
+separate users for their convenience, and protect them and the server
+against the risks posed by honest mistakes, but you trust your users
+are not deliberately subverting system security.  In a hostile
+situation - e.g. commercial hosting - you may have users deliberately
+attacking the system or each other.</p>
+<dl>
+<dt>FAST mode</dt>
+<dd>In <var>FAST</var> mode, requests are run in-process with the
+selected uid/gid and privileges, so the overhead is negligible.
+This is suitable for benign situations, but is not secure against an
+attacker escalating privileges with an in-process module or script.</dd>
+<dt>SECURE mode</dt>
+<dd>A request in <var>SECURE</var> mode forks a subprocess, which
+then drops privileges.  This is a very similar case to running CGI
+with suexec, but for the entire request cycle, and with the benefit
+of fine-grained control of privileges.</dd>
+</dl>
+<p>You can select different <code class="directive">PrivilegesMode</code>s for
+each virtual host, and even in a directory context within a virtual
+host.  <var>FAST</var> mode is appropriate where the user(s) are
+trusted and/or have no privilege to load in-process code.
+<var>SECURE</var> mode is appropriate to cases where untrusted code
+might be run in-process.  However, even in <var>SECURE</var> mode,
+there is no protection against a malicious user who is able to
+introduce privileges-aware code running <em>before the start of the
+request-processing cycle.</em></p>
+
 </div>
 </div>
 <div class="bottomlang">
index 1207d81b7f844d62c1874e66d633d20bfe65c1df..cc7759325315d62bee9d9f14c715b66e54f21ce9 100644 (file)
@@ -82,79 +82,6 @@ s
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Considérations à propos de sécurité</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="security" id="security">Considérations à propos de sécurité</a></h2>
-
-<p><code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> introduit de nouveaux problèmes de
-sécurité dans les situations où du <strong>code non sûr</strong> peut
-s'exécuter <strong>à l'intérieur du processus du serveur web</strong>.
-Ceci s'applique aux modules non sûrs, et aux scripts s'exécutant sous
-des modules comme mod_php ou mod_perl. Les scripts s'exécutant en
-externe (comme par exemple les scripts CGI ou ceux s'exécutant sur un
-serveur d'applications derrière mod_proxy ou mod_jk) ne sont pas
-concernés.</p>
-
-<p>Les principaux problèmes de sécurité que l'on rencontre avec
-mod_privileges sont :</p>
-
-
-<ul><li>L'exécution sous un utilisateur système pose les mêmes problèmes
-de sécurité que mod_suexec, et pratiquement les mêmes que cgiwrap et
-suphp.</li>
-<li>Une extension utilisateur (module ou script) malveillante, écrite en connaissant les mécanismes
-utilisés par <strong>mod_privileges</strong>,
-pourrait élever ses privilèges à tout niveau
-accessible au processus httpd dans tout serveur virtuel. Ceci introduit
-de nouveaux risques si (et seulement si) mod_privileges est compilé avec
-l'option <var>BIG_SECURITY_HOLE</var>.</li>
-<li>Une extension utilisateur (module ou script) malveillante, écrite en connaissant les mécanismes
-utilisés par <strong>mod_privileges</strong>,
-pourrait élever ses privilèges pour s'attribuer
-l'identifiant utilisateur d'un autre utilisateur (et/ou groupe)
-système.</li>
-</ul>
-
-<p>La directive <code class="directive">PrivilegesMode</code> vous permet de
-sélectionner soit le mode <var>FAST</var>, soit le mode
-<var>SECURE</var>. Vous pouvez panacher les modes en utilisant par
-exemple le mode <var>FAST</var> pour les utilisateurs de confiance et
-les chemins contenant du code entièrement audité, tout en imposant le
-mode <var>SECURE</var> où un utilisateur non sûr a la possibilité
-d'introduire du code.</p>
-<p>Avant de décrire les modes, il nous faut présenter les cas
-d'utilisation de la cible : "Benign" ou "Hostile". Dans une situation
-"Benign", vous voulez séparer les utilisateurs pour leur confort, et les
-protéger, ainsi que le serveur, contre les risques induits par les
-erreurs involontaires. Dans une situation "Hostile" - par exemple
-l'hébergement d'un site commercial - il se peut que des utilisateurs
-attaquent délibérément le serveur ou s'attaquent entre eux.</p>
-<dl>
-<dt>Mode FAST</dt>
-<dd>En mode <var>FAST</var>, les requêtes sont traitées "in-process"
-avec les uid/gid et privilèges sélectionnés, si bien que la
-surcharge est négligeable. Ceci convient aux situations "Benign", mais
-n'est pas sécurisé contre un attaquant augmentant ses privilèges avec un
-module ou script "in-process".</dd>
-<dt>Mode SECURE</dt>
-<dd>Une requête en mode <var>SECURE</var> génère un sous-processus qui
-supprime les privilèges. Ce comportement est très similaire à
-l'exécution d'un programme CGI avec suexec, mais il reste valable tout
-au long du cycle de traitement de la requête, avec en plus l'avantage
-d'un contrôle précis des privilèges.</dd>
-</dl>
-<p>Vous pouvez sélectionner différents
-<code class="directive">PrivilegesMode</code>s pour chaque serveur virtuel, et
-même dans un contexte de répertoire à l'intérieur d'un serveur virtuel.
-Le mode <var>FAST</var> convient lorsque les utilisateurs sont sûrs
-et/ou n'ont pas le privilège de charger du code "in-process". Le mode
-<var>SECURE</var> convient dans les cas où du code non sûr peut
-s'exécuter "in-process".  Cependant, même en mode <var>SECURE</var>, il
-n'y a pas de protection contre un utilisateur malveillant qui a la
-possibilité d'introduire du code supportant les privilèges <em>avant le
-début du cycle de traitement de la requête.</em></p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="dtraceprivileges" id="dtraceprivileges">Directive</a> <a name="DTracePrivileges" id="DTracePrivileges">DTracePrivileges</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine si les privilèges requis par dtrace sont
@@ -444,6 +371,79 @@ personnalis
 <li><code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code></li>
 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
 </ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="security" id="security">Considérations à propos de sécurité</a></h2>
+
+<p><code class="module"><a href="../mod/mod_privileges.html">mod_privileges</a></code> introduit de nouveaux problèmes de
+sécurité dans les situations où du <strong>code non sûr</strong> peut
+s'exécuter <strong>à l'intérieur du processus du serveur web</strong>.
+Ceci s'applique aux modules non sûrs, et aux scripts s'exécutant sous
+des modules comme mod_php ou mod_perl. Les scripts s'exécutant en
+externe (comme par exemple les scripts CGI ou ceux s'exécutant sur un
+serveur d'applications derrière mod_proxy ou mod_jk) ne sont pas
+concernés.</p>
+
+<p>Les principaux problèmes de sécurité que l'on rencontre avec
+mod_privileges sont :</p>
+
+
+<ul><li>L'exécution sous un utilisateur système pose les mêmes problèmes
+de sécurité que mod_suexec, et pratiquement les mêmes que cgiwrap et
+suphp.</li>
+<li>Une extension utilisateur (module ou script) malveillante, écrite en connaissant les mécanismes
+utilisés par <strong>mod_privileges</strong>,
+pourrait élever ses privilèges à tout niveau
+accessible au processus httpd dans tout serveur virtuel. Ceci introduit
+de nouveaux risques si (et seulement si) mod_privileges est compilé avec
+l'option <var>BIG_SECURITY_HOLE</var>.</li>
+<li>Une extension utilisateur (module ou script) malveillante, écrite en connaissant les mécanismes
+utilisés par <strong>mod_privileges</strong>,
+pourrait élever ses privilèges pour s'attribuer
+l'identifiant utilisateur d'un autre utilisateur (et/ou groupe)
+système.</li>
+</ul>
+
+<p>La directive <code class="directive">PrivilegesMode</code> vous permet de
+sélectionner soit le mode <var>FAST</var>, soit le mode
+<var>SECURE</var>. Vous pouvez panacher les modes en utilisant par
+exemple le mode <var>FAST</var> pour les utilisateurs de confiance et
+les chemins contenant du code entièrement audité, tout en imposant le
+mode <var>SECURE</var> où un utilisateur non sûr a la possibilité
+d'introduire du code.</p>
+<p>Avant de décrire les modes, il nous faut présenter les cas
+d'utilisation de la cible : "Benign" ou "Hostile". Dans une situation
+"Benign", vous voulez séparer les utilisateurs pour leur confort, et les
+protéger, ainsi que le serveur, contre les risques induits par les
+erreurs involontaires. Dans une situation "Hostile" - par exemple
+l'hébergement d'un site commercial - il se peut que des utilisateurs
+attaquent délibérément le serveur ou s'attaquent entre eux.</p>
+<dl>
+<dt>Mode FAST</dt>
+<dd>En mode <var>FAST</var>, les requêtes sont traitées "in-process"
+avec les uid/gid et privilèges sélectionnés, si bien que la
+surcharge est négligeable. Ceci convient aux situations "Benign", mais
+n'est pas sécurisé contre un attaquant augmentant ses privilèges avec un
+module ou script "in-process".</dd>
+<dt>Mode SECURE</dt>
+<dd>Une requête en mode <var>SECURE</var> génère un sous-processus qui
+supprime les privilèges. Ce comportement est très similaire à
+l'exécution d'un programme CGI avec suexec, mais il reste valable tout
+au long du cycle de traitement de la requête, avec en plus l'avantage
+d'un contrôle précis des privilèges.</dd>
+</dl>
+<p>Vous pouvez sélectionner différents
+<code class="directive">PrivilegesMode</code>s pour chaque serveur virtuel, et
+même dans un contexte de répertoire à l'intérieur d'un serveur virtuel.
+Le mode <var>FAST</var> convient lorsque les utilisateurs sont sûrs
+et/ou n'ont pas le privilège de charger du code "in-process". Le mode
+<var>SECURE</var> convient dans les cas où du code non sûr peut
+s'exécuter "in-process".  Cependant, même en mode <var>SECURE</var>, il
+n'y a pas de protection contre un utilisateur malveillant qui a la
+possibilité d'introduire du code supportant les privilèges <em>avant le
+début du cycle de traitement de la requête.</em></p>
+
 </div>
 </div>
 <div class="bottomlang">
index 758bb382f3dde647ed6761f6694e3c61f6ab4952..0b1b8f8c7c1e3bcb8c491aac051ef6ac261222f8 100644 (file)
 <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="forwardreverse" id="forwardreverse">Forward Proxies and Reverse
-       Proxies/Gateways</a></h2>
-      <p>Apache HTTP Server can be configured in both a <dfn>forward</dfn> and
-      <dfn>reverse</dfn> proxy (also known as <dfn>gateway</dfn>) mode.</p>
-
-      <p>An ordinary <dfn>forward proxy</dfn> is an intermediate
-      server that sits between the client and the <em>origin
-      server</em>.  In order to get content from the origin server,
-      the client sends a request to the proxy naming the origin server
-      as the target and the proxy then requests the content from the
-      origin server and returns it to the client.  The client must be
-      specially configured to use the forward proxy to access other
-      sites.</p>
-
-      <p>A typical usage of a forward proxy is to provide Internet
-      access to internal clients that are otherwise restricted by a
-      firewall.  The forward proxy can also use caching (as provided
-      by <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) to reduce network usage.</p>
-
-      <p>The forward proxy is activated using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive.  Because
-      forward proxies allow clients to access arbitrary sites through
-      your server and to hide their true origin, it is essential that
-      you <a href="#access">secure your server</a> so that only
-      authorized clients can access the proxy before activating a
-      forward proxy.</p>
-
-      <p>A <dfn>reverse proxy</dfn> (or <dfn>gateway</dfn>), by
-      contrast, appears to the client just like an ordinary web
-      server.  No special configuration on the client is necessary.
-      The client makes ordinary requests for content in the name-space
-      of the reverse proxy.  The reverse proxy then decides where to
-      send those requests, and returns the content as if it was itself
-      the origin.</p>
-
-      <p>A typical usage of a reverse proxy is to provide Internet
-      users access to a server that is behind a firewall.  Reverse
-      proxies can also be used to balance load among several back-end
-      servers, or to provide caching for a slower back-end server.
-      In addition, reverse proxies can be used simply to bring
-      several servers into the same URL space.</p>
-
-      <p>A reverse proxy is activated using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive or the
-      <code>[P]</code> flag to the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive.  It is
-      <strong>not</strong> necessary to turn <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> on in order to
-      configure a reverse proxy.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Basic Examples</a></h2>
-
-    <p>The examples below are only a very basic idea to help you
-    get started.  Please read the documentation on the individual
-    directives.</p>
-
-    <p>In addition, if you wish to have caching enabled, consult
-    the documentation from <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
+<div class="directive-section"><h2><a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a> <a name="balancergrowth" id="balancergrowth">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of additional Balancers that can be added Post-configuration</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerGrowth <var>#</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BalancerGrowth 5</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerGrowth is only available in Apache HTTP Server 2.3.13
+  and later.</td></tr>
+</table>
+    <p>This directive allows for growth potential in the number of
+    Balancers available for a virtualhost in addition to the
+    number pre-configured. It only takes effect if there is at
+    least 1 pre-configured Balancer.</p>
 
-    <div class="example"><h3>Reverse Proxy</h3><pre class="prettyprint lang-config">ProxyPass "/foo" "http://foo.example.com/bar"
-ProxyPassReverse "/foo" "http://foo.example.com/bar"</pre>
 </div>
-
-    <div class="example"><h3>Forward Proxy</h3><pre class="prettyprint lang-config">ProxyRequests On
-ProxyVia On
-
-&lt;Proxy "*"&gt;
-  Require host internal.example.com
-&lt;/Proxy&gt;</pre>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BalancerInherit" id="BalancerInherit">BalancerInherit</a> <a name="balancerinherit" id="balancerinherit">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Inherit ProxyPassed Balancers/Workers from the main server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerInherit On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BalancerInherit On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerInherit is only available in Apache HTTP Server 2.4.5 and later.</td></tr>
+</table>
+        <p>This directive will cause the current server/vhost to "inherit" ProxyPass
+            Balancers and Workers defined in the main server. This can cause issues and
+            inconsistent behavior if using the Balancer Manager and so should be disabled
+            if using that feature.</p>
+        <p>The setting in the global server defines the default for all vhosts.</p>
+    
 </div>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="handler" id="handler">Access via Handler</a></h2>
-
-      <p>You can also force a request to be handled as a reverse-proxy
-        request, by creating a suitable Handler pass-through. The example
-        configuration below will pass all requests for PHP scripts to the
-        specified FastCGI server using reverse proxy:
-      </p>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BalancerMember" id="BalancerMember">BalancerMember</a> <a name="balancermember" id="balancermember">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add a member to a load balancing group</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>key=value [key=value ...]]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerMember is only available in Apache HTTP Server 2.2
+        and later.</td></tr>
+</table>
+        <p>This directive adds a member to a load balancing group. It could be used
+            within a <code>&lt;Proxy <var>balancer://</var>...&gt;</code> container
+            directive, and can take any of the key value pair parameters available to
+            <code class="directive"><a href="#proxypass">ProxyPass</a></code> directives.</p>
+        <p>One additional parameter is available only to <code class="directive">BalancerMember</code> directives:
+            <var>loadfactor</var>. This is the member load factor - a number between 1
+            (default) and 100, which defines the weighted load to be applied to the
+            member in question.</p>
+        <p>The <var>balancerurl</var> is only needed when not in
+            <code>&lt;Proxy <var>balancer://</var>...&gt;</code>
+            container directive. It corresponds to the url of a balancer defined in
+            <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+        <p>The path component of the balancer URL in any
+            <code>&lt;Proxy <var>balancer://</var>...&gt;</code> container directive
+            is ignored.</p>
+        <p>Trailing slashes should typically be removed from the URL of a
+            <code class="directive">BalancerMember</code>.</p>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="BalancerPersist" id="BalancerPersist">BalancerPersist</a> <a name="balancerpersist" id="balancerpersist">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Attempt to persist changes made by the Balancer Manager across restarts.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerPersist On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BalancerPersist Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerPersist is only available in Apache HTTP Server 2.4.4 and later.</td></tr>
+</table>
+        <p>This directive will cause the shared memory storage associated
+        with the balancers and balancer members to be persisted across
+        restarts. This allows these local changes to not be lost during the
+        normal restart/graceful state transitions.</p>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="NoProxy" id="NoProxy">NoProxy</a> <a name="noproxy" id="noproxy">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Hosts, domains, or networks that will be connected to
+directly</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>NoProxy <var>host</var> [<var>host</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>This directive is only useful for Apache httpd proxy servers within
+    intranets.  The <code class="directive">NoProxy</code> directive specifies a
+    list of subnets, IP addresses, hosts and/or domains, separated by
+    spaces. A request to a host which matches one or more of these is
+    always served directly, without forwarding to the configured
+    <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> proxy server(s).</p>
 
-      <div class="example"><h3>Reverse Proxy PHP scripts</h3><pre class="prettyprint lang-config">&lt;FilesMatch "\.php$"&gt;
-    # Unix sockets require 2.4.7 or later
-    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
-&lt;/FilesMatch&gt;</pre>
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyRemote  "*"  "http://firewall.example.com:81"
+NoProxy         ".example.com" "192.168.112.0/21"</pre>
 </div>
 
-      <p>This feature is available in Apache HTTP Server 2.4.10 and later.</p>
+    <p>The <var>host</var> arguments to the <code class="directive">NoProxy</code>
+    directive are one of the following type list:</p>
 
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="workers" id="workers">Workers</a></h2>
-      <p>The proxy manages the configuration of origin servers and their
-      communication parameters in objects called <dfn>workers</dfn>.
-      There are two built-in workers, the default forward proxy worker and the
-      default reverse proxy worker. Additional workers can be configured
-      explicitly.</p>
+    <dl>
+    
+    <dt><var><a name="domain" id="domain">Domain</a></var></dt>
+    <dd>
+    <p>A <dfn>Domain</dfn> is a partially qualified DNS domain name, preceded
+    by a period. It represents a list of hosts which logically belong to the
+    same DNS domain or zone (<em>i.e.</em>, the suffixes of the hostnames are
+    all ending in <var>Domain</var>).</p>
 
-      <p>The two default workers have a fixed configuration
-      and will be used if no other worker matches the request.
-      They do not use HTTP Keep-Alive or connection pooling.
-      The TCP connections to the origin server will instead be
-      opened and closed for each request.</p>
+    <div class="example"><h3>Examples</h3><p><code>
+      .com .example.org.
+    </code></p></div>
 
-      <p>Explicitly configured workers are identified by their URL.
-      They are usually created and configured using
-      <code class="directive"><a href="#proxypass">ProxyPass</a></code> or
-      <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> when used
-      for a reverse proxy:</p>
+    <p>To distinguish <var>Domain</var>s from <var><a href="#hostname">Hostname</a></var>s (both syntactically and semantically; a DNS domain can
+    have a DNS A record, too!), <var>Domain</var>s are always written with a
+    leading period.</p>
 
-      <pre class="prettyprint lang-config">ProxyPass "/example" "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
+    <div class="note"><h3>Note</h3>
+      <p>Domain name comparisons are done without regard to the case, and
+      <var>Domain</var>s are always assumed to be anchored in the root of the
+      DNS tree, therefore two domains <code>.ExAmple.com</code> and
+      <code>.example.com.</code> (note the trailing period) are considered
+      equal. Since a domain comparison does not involve a DNS lookup, it is much
+      more efficient than subnet comparison.</p>
+    </div></dd>
 
+    
+    <dt><var><a name="subnet" id="subnet">SubNet</a></var></dt>
+    <dd>
+    <p>A <dfn>SubNet</dfn> is a partially qualified internet address in
+    numeric (dotted quad) form, optionally followed by a slash and the netmask,
+    specified as the number of significant bits in the <var>SubNet</var>. It is
+    used to represent a subnet of hosts which can be reached over a common
+    network interface. In the absence of the explicit net mask it is assumed
+    that omitted (or zero valued) trailing digits specify the mask. (In this
+    case, the netmask can only be multiples of 8 bits wide.) Examples:</p>
 
-      <p>This will create a worker associated with the origin server URL
-      <code>http://backend.example.com</code> and using the given timeout
-      values. When used in a forward proxy, workers are usually defined
-      via the <code class="directive"><a href="#proxyset">ProxySet</a></code> directive:</p>
+    <dl>
+    <dt><code>192.168</code> or <code>192.168.0.0</code></dt>
+    <dd>the subnet 192.168.0.0 with an implied netmask of 16 valid bits
+    (sometimes used in the netmask form <code>255.255.0.0</code>)</dd>
+    <dt><code>192.168.112.0/21</code></dt>
+    <dd>the subnet <code>192.168.112.0/21</code> with a netmask of 21
+    valid bits (also used in the form <code>255.255.248.0</code>)</dd>
+    </dl>
 
-      <pre class="prettyprint lang-config">ProxySet "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
+    <p>As a degenerate case, a <em>SubNet</em> with 32 valid bits is the
+    equivalent to an <var><a href="#ipaddr">IPAddr</a></var>, while a <var>SubNet</var> with zero
+    valid bits (<em>e.g.</em>, 0.0.0.0/0) is the same as the constant
+    <var>_Default_</var>, matching any IP address.</p></dd>
 
+    
+    <dt><var><a name="ipaddr" id="ipaddr">IPAddr</a></var></dt>
+    <dd>
+    <p>A <dfn>IPAddr</dfn> represents a fully qualified internet address in
+    numeric (dotted quad) form. Usually, this address represents a host, but
+    there need not necessarily be a DNS domain name connected with the
+    address.</p>
+    <div class="example"><h3>Example</h3><p><code>
+      192.168.123.7
+    </code></p></div>
 
-      <p>or alternatively using <code class="directive"><a href="#proxy">Proxy</a></code>
-      and <code class="directive"><a href="#proxyset">ProxySet</a></code>:</p>
+    <div class="note"><h3>Note</h3>
+      <p>An <var>IPAddr</var> does not need to be resolved by the DNS system, so
+      it can result in more effective apache performance.</p>
+    </div></dd>
 
-      <pre class="prettyprint lang-config">&lt;Proxy "http://backend.example.com"&gt;
-  ProxySet connectiontimeout=5 timeout=30
-&lt;/Proxy&gt;</pre>
+    
+    <dt><var><a name="hostname" id="hostname">Hostname</a></var></dt>
+    <dd>
+    <p>A <dfn>Hostname</dfn> is a fully qualified DNS domain name which can
+    be resolved to one or more <var><a href="#ipaddr">IPAddrs</a></var> via the
+    DNS domain name service. It represents a logical host (in contrast to
+    <var><a href="#domain">Domain</a></var>s, see above) and must be resolvable
+    to at least one <var><a href="#ipaddr">IPAddr</a></var> (or often to a list
+    of hosts with different <var><a href="#ipaddr">IPAddr</a></var>s).</p>
 
+    <div class="example"><h3>Examples</h3><p><code>
+      prep.ai.example.edu<br />
+      www.example.org
+    </code></p></div>
 
-      <p>Using explicitly configured workers in the forward mode is
-      not very common, because forward proxies usually communicate with many
-      different origin servers. Creating explicit workers for some of the
-      origin servers can still be useful, if they are used very often.
-      Explicitly configured workers have no concept of forward or reverse
-      proxying by themselves. They encapsulate a common concept of
-      communication with origin servers. A worker created by
-      <code class="directive"><a href="#proxypass">ProxyPass</a></code> for use in a
-      reverse proxy will be also used for forward proxy requests whenever
-      the URL to the origin server matches the worker URL and vice versa.</p>
+    <div class="note"><h3>Note</h3>
+      <p>In many situations, it is more effective to specify an <var><a href="#ipaddr">IPAddr</a></var> in place of a <var>Hostname</var> since a
+      DNS lookup can be avoided. Name resolution in Apache httpd can take a remarkable
+      deal of time when the connection to the name server uses a slow PPP
+      link.</p>
+      <p><var>Hostname</var> comparisons are done without regard to the case,
+      and <var>Hostname</var>s are always assumed to be anchored in the root
+      of the DNS tree, therefore two hosts <code>WWW.ExAmple.com</code>
+      and <code>www.example.com.</code> (note the trailing period) are
+      considered equal.</p>
+     </div></dd>
+    </dl>
 
-      <p>The URL identifying a direct worker is the URL of its
-      origin server including any path components given:</p>
+<h3>See also</h3>
+<ul>
+<li><a href="../dns-caveats.html">DNS Issues</a></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Proxy" id="Proxy">&lt;Proxy&gt;</a> <a name="proxy" id="proxy">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Container for directives applied to proxied resources</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;Proxy <var>wildcard-url</var>&gt; ...&lt;/Proxy&gt;</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Directives placed in <code class="directive">&lt;Proxy&gt;</code>
+    sections apply only to matching proxied content.  Shell-style wildcards are
+    allowed.</p>
 
-     <pre class="prettyprint lang-config">ProxyPass "/examples" "http://backend.example.com/examples"
-ProxyPass "/docs" "http://backend.example.com/docs"</pre>
+    <p>For example, the following will allow only hosts in
+    <code>yournetwork.example.com</code> to access content via your proxy
+    server:</p>
 
+    <pre class="prettyprint lang-config">&lt;Proxy "*"&gt;
+  Require host yournetwork.example.com
+&lt;/Proxy&gt;</pre>
 
-      <p>This example defines two different workers, each using a separate
-      connection pool and configuration.</p>
 
-      <div class="warning"><h3>Worker Sharing</h3>
-        <p>Worker sharing happens if the worker URLs overlap, which occurs when
-        the URL of some worker is a leading substring of the URL of another
-        worker defined later in the configuration file. In the following example</p>
+    <p>The following example will process all files in the <code>foo</code>
+    directory of <code>example.com</code> through the <code>INCLUDES</code>
+    filter when they are sent through the proxy server:</p>
 
-        <pre class="prettyprint lang-config">ProxyPass "/apps" "http://backend.example.com/" timeout=60
-ProxyPass "/examples" "http://backend.example.com/examples" timeout=10</pre>
+   <pre class="prettyprint lang-config">&lt;Proxy "http://example.com/foo/*"&gt;
+  SetOutputFilter INCLUDES
+&lt;/Proxy&gt;</pre>
 
 
-        <p>the second worker isn't actually created. Instead the first
-        worker is used. The benefit is, that there is only one connection pool,
-        so connections are more often reused. Note that all configuration attributes
-        given explicitly for the later worker will be ignored. This will be logged
-        as a warning. In the above example the resulting timeout value
-        for the URL <code>/examples</code> will be <code>60</code> instead
-        of <code>10</code>!</p>
+    <div class="note"><h3>Differences from the Location configuration section</h3>
+      <p>A backend URL matches the configuration section if it begins with the 
+      the <var>wildcard-url</var> string, even if the last path segment in the
+      directive only matches a prefix of the backend URL.  For example, 
+      &lt;Proxy "http://example.com/foo"&gt; matches all of 
+      http://example.com/foo, http://example.com/foo/bar, and 
+      http://example.com/foobar.  The matching of the final URL differs
+      from the behavior of the <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section, which for purposes of this note 
+      treats the final path component as if it ended in a slash.</p>
+      <p>For more control over the matching, see <code class="directive">&lt;ProxyMatch&gt;</code>.</p>
+    </div>
 
-        <p>If you want to avoid worker sharing, sort your worker definitions
-        by URL length, starting with the longest worker URLs. If you want to maximize
-        worker sharing use the reverse sort order. See also the related warning about
-        ordering <code class="directive"><a href="#proxypass">ProxyPass</a></code> directives.</p>
 
-      </div> 
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyAddHeaders" id="ProxyAddHeaders">ProxyAddHeaders</a> <a name="proxyaddheaders" id="proxyaddheaders">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add proxy information in X-Forwarded-* headers</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyAddHeaders Off|On</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyAddHeaders On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.10 and later</td></tr>
+</table>
+    <p>This directive determines whether or not proxy related information should be passed to the
+    backend server through X-Forwarded-For, X-Forwarded-Host and X-Forwarded-Server HTTP headers.</p>
+    <div class="note"><h3>Effectiveness</h3>
+     <p>This option is of use only for HTTP proxying, as handled by <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>.</p>
+    </div>
 
-      <p>Explicitly configured workers come in two flavors:
-      <dfn>direct workers</dfn> and <dfn>(load) balancer workers</dfn>.
-      They support many important configuration attributes which are
-      described below in the <code class="directive"><a href="#proxypass">ProxyPass</a></code>
-      directive. The same attributes can also be set using
-      <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a> <a name="proxybadheader" id="proxybadheader">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines how to handle bad header lines in a
+response</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyBadHeader IsError</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>The <code class="directive">ProxyBadHeader</code> directive determines the
+    behaviour of <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> if it receives syntactically invalid
+    response header lines (<em>i.e.</em> containing no colon) from the origin
+    server. The following arguments are possible:</p>
 
-      <p>The set of options available for a direct worker
-      depends on the protocol, which is specified in the origin server URL.
-      Available protocols include <code>ajp</code>, <code>fcgi</code>,
-      <code>ftp</code>, <code>http</code> and <code>scgi</code>.</p>
+    <dl>
+    <dt><code>IsError</code></dt>
+    <dd>Abort the request and end up with a 502 (Bad Gateway) response. This is
+    the default behaviour.</dd>
 
-      <p>Balancer workers are virtual workers that use direct workers known
-      as their members to actually handle the requests. Each balancer can
-      have multiple members. When it handles a request, it chooses a member
-      based on the configured load balancing algorithm.</p>
+    <dt><code>Ignore</code></dt>
+    <dd>Treat bad header lines as if they weren't sent.</dd>
 
-      <p>A balancer worker is created if its worker URL uses
-      <code>balancer</code> as the protocol scheme.
-      The balancer URL uniquely identifies the balancer worker.
-      Members are added to a balancer using
-      <code class="directive"><a href="#balancermember">BalancerMember</a></code>.</p>
+    <dt><code>StartBody</code></dt>
+    <dd>When receiving the first bad header line, finish reading the headers and
+    treat the remainder as body. This helps to work around buggy backend servers
+    which forget to insert an empty line between the headers and the body.</dd>
+    </dl>
 
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="access" id="access">Controlling access to your proxy</a></h2>
-      <p>You can control who can access your proxy via the <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> control block as in
-      the following example:</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a> <a name="proxyblock" id="proxyblock">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Words, hosts, or domains that are banned from being
+proxied</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBlock *|<var>word</var>|<var>host</var>|<var>domain</var>
+[<var>word</var>|<var>host</var>|<var>domain</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>The <code class="directive">ProxyBlock</code> directive specifies a list of
+    words, hosts and/or domains, separated by spaces.  HTTP, HTTPS, and
+    FTP document requests to sites whose names contain matched words,
+    hosts or domains are <em>blocked</em> by the proxy server. The proxy
+    module will also attempt to determine IP addresses of list items which
+    may be hostnames during startup, and cache them for match test as
+    well. That may slow down the startup time of the server.</p>
 
-      <pre class="prettyprint lang-config">&lt;Proxy "*"&gt;
-  Require ip 192.168.0
-&lt;/Proxy&gt;</pre>
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyBlock "news.example.com" "auctions.example.com" "friends.example.com"</pre>
+</div>
 
+    <p>Note that <code>example</code> would also be sufficient to match any
+    of these sites.</p>
 
-      <p>For more information on access control directives, see
-      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
+    <p>Hosts would also be matched if referenced by IP address.</p>
 
-      <p>Strictly limiting access is essential if you are using a
-      forward proxy (using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive).
-      Otherwise, your server can be used by any client to access
-      arbitrary hosts while hiding his or her true identity.  This is
-      dangerous both for your network and for the Internet at large.
-      When using a reverse proxy (using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive with
-      <code>ProxyRequests Off</code>), access control is less
-      critical because clients can only contact the hosts that you
-      have specifically configured.</p>
+    <p>Note also that</p>
 
-      <p><strong>See Also</strong> the <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a> environment variable.</p>
+    <pre class="prettyprint lang-config">ProxyBlock "*"</pre>
 
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="startup" id="startup">Slow Startup</a></h2>
-      <p>If you're using the <code class="directive"><a href="#proxyblock">ProxyBlock</a></code> directive, hostnames' IP addresses are looked up
-      and cached during startup for later match test. This may take a few
-      seconds (or more) depending on the speed with which the hostname lookups
-      occur.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="intranet" id="intranet">Intranet Proxy</a></h2>
-      <p>An Apache httpd proxy server situated in an intranet needs to forward
-      external requests through the company's firewall (for this, configure
-      the <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> directive
-      to forward the respective <var>scheme</var> to the firewall proxy).
-      However, when it has to
-      access resources within the intranet, it can bypass the firewall when
-      accessing hosts. The <code class="directive"><a href="#noproxy">NoProxy</a></code>
-      directive is useful for specifying which hosts belong to the intranet and
-      should be accessed directly.</p>
 
-      <p>Users within an intranet tend to omit the local domain name from their
-      WWW requests, thus requesting "http://somehost/" instead of
-      <code>http://somehost.example.com/</code>. Some commercial proxy servers
-      let them get away with this and simply serve the request, implying a
-      configured local domain. When the <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> directive is used and the server is <a href="#proxyrequests">configured for proxy service</a>, Apache httpd can return
-      a redirect response and send the client to the correct, fully qualified,
-      server address. This is the preferred method since the user's bookmark
-      files will then contain fully qualified hosts.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="envsettings" id="envsettings">Protocol Adjustments</a></h2>
-      <p>For circumstances where <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> is sending
-      requests to an origin server that doesn't properly implement
-      keepalives or HTTP/1.1, there are two <a href="../env.html">environment variables</a> that can force the
-      request to use HTTP/1.0 with no keepalive. These are set via the
-      <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> directive.</p>
-
-      <p>These are the <code>force-proxy-request-1.0</code> and
-      <code>proxy-nokeepalive</code> notes.</p>
-
-      <pre class="prettyprint lang-config">&lt;Location "/buggyappserver/"&gt;
-  ProxyPass "http://buggyappserver:7001/foo/"
-  SetEnv force-proxy-request-1.0 1
-  SetEnv proxy-nokeepalive 1
-&lt;/Location&gt;</pre>
-
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="request-bodies" id="request-bodies">Request Bodies</a></h2>
-
-    <p>Some request methods such as POST include a request body.
-    The HTTP protocol requires that requests which include a body
-    either use chunked transfer encoding or send a
-    <code>Content-Length</code> request header.  When passing these
-    requests on to the origin server, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
-    will always attempt to send the <code>Content-Length</code>.  But
-    if the body is large and the original request used chunked
-    encoding, then chunked encoding may also be used in the upstream
-    request.  You can control this selection using <a href="../env.html">environment variables</a>.  Setting
-    <code>proxy-sendcl</code> ensures maximum compatibility with
-    upstream servers by always sending the
-    <code>Content-Length</code>, while setting
-    <code>proxy-sendchunked</code> minimizes resource usage by using
-    chunked encoding.</p>
-
-    <p>Under some circumstances, the server must spool request bodies
-    to disk to satisfy the requested handling of request bodies.  For
-    example, this spooling will occur if the original body was sent with
-    chunked encoding (and is large), but the administrator has
-    asked for backend requests to be sent with Content-Length or as HTTP/1.0.
-    This spooling can also occur if the request body already has a
-    Content-Length header, but the server is configured to filter incoming
-    request bodies.</p>
-
-    <p><code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> only applies to
-    request bodies that the server will spool to disk</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="x-headers" id="x-headers">Reverse Proxy Request Headers</a></h2>
-
-    <p>When acting in a reverse-proxy mode (using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive, for example),
-    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> adds several request headers in
-    order to pass information to the origin server. These headers
-    are:</p>
-
-    <dl>
-      <dt><code>X-Forwarded-For</code></dt>
-      <dd>The IP address of the client.</dd>
-      <dt><code>X-Forwarded-Host</code></dt>
-      <dd>The original host requested by the client in the <code>Host</code>
-       HTTP request header.</dd>
-      <dt><code>X-Forwarded-Server</code></dt>
-      <dd>The hostname of the proxy server.</dd>
-    </dl>
-
-    <p>Be careful when using these headers on the origin server, since
-    they will contain more than one (comma-separated) value if the
-    original request already contained one of these headers. For
-    example, you can use <code>%{X-Forwarded-For}i</code> in the log
-    format string of the origin server to log the original clients IP
-    address, but you may get more than one address if the request
-    passes through several proxies.</p>
-
-    <p>See also the <code class="directive"><a href="#proxypreservehost">ProxyPreserveHost</a></code> and <code class="directive"><a href="#proxyvia">ProxyVia</a></code> directives, which control
-    other request headers.</p>
-
-    <p>Note:  If you need to specify custom request headers to be
-    added to the forwarded request, use the 
-    <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>
-    directive.</p>
+    <p>blocks connections to all sites.</p>
 
-   </div>
+</div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a> <a name="balancergrowth" id="balancergrowth">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a> <a name="proxydomain" id="proxydomain">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Number of additional Balancers that can be added Post-configuration</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerGrowth <var>#</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BalancerGrowth 5</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default domain name for proxied requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyDomain <var>Domain</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerGrowth is only available in Apache HTTP Server 2.3.13
-  and later.</td></tr>
 </table>
-    <p>This directive allows for growth potential in the number of
-    Balancers available for a virtualhost in addition to the
-    number pre-configured. It only takes effect if there is at
-    least 1 pre-configured Balancer.</p>
+    <p>This directive is only useful for Apache httpd proxy servers within
+    intranets. The <code class="directive">ProxyDomain</code> directive specifies
+    the default domain which the apache proxy server will belong to. If a
+    request to a host without a domain name is encountered, a redirection
+    response to the same host with the configured <var>Domain</var> appended
+    will be generated.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">      ProxyRemote  "*"  "http://firewall.example.com:81"<br />
+      NoProxy         ".example.com" "192.168.112.0/21"<br />
+      ProxyDomain     ".example.com"</pre>
+</div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BalancerInherit" id="BalancerInherit">BalancerInherit</a> <a name="balancerinherit" id="balancerinherit">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a> <a name="proxyerroroverride" id="proxyerroroverride">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Inherit ProxyPassed Balancers/Workers from the main server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerInherit On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BalancerInherit On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Override error pages for proxied content</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyErrorOverride Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerInherit is only available in Apache HTTP Server 2.4.5 and later.</td></tr>
 </table>
-        <p>This directive will cause the current server/vhost to "inherit" ProxyPass
-            Balancers and Workers defined in the main server. This can cause issues and
-            inconsistent behavior if using the Balancer Manager and so should be disabled
-            if using that feature.</p>
-        <p>The setting in the global server defines the default for all vhosts.</p>
-    
+    <p>This directive is useful for reverse-proxy setups, where you want to
+    have a common look and feel on the error pages seen by the end user.
+    This also allows for included files (via
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>'s SSI) to get
+    the error code and act accordingly (default behavior would display
+    the error page of the proxied server, turning this on shows the SSI
+    Error message).</p>
+
+    <p>This directive does not affect the processing of informational (1xx),
+    normal success (2xx), or redirect (3xx) responses.</p>
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BalancerMember" id="BalancerMember">BalancerMember</a> <a name="balancermember" id="balancermember">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a> <a name="proxyiobuffersize" id="proxyiobuffersize">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add a member to a load balancing group</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>key=value [key=value ...]]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determine size of internal data throughput buffer</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyIOBufferSize <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyIOBufferSize 8192</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerMember is only available in Apache HTTP Server 2.2
-        and later.</td></tr>
 </table>
-        <p>This directive adds a member to a load balancing group. It could be used
-            within a <code>&lt;Proxy <var>balancer://</var>...&gt;</code> container
-            directive, and can take any of the key value pair parameters available to
-            <code class="directive"><a href="#proxypass">ProxyPass</a></code> directives.</p>
-        <p>One additional parameter is available only to <code class="directive">BalancerMember</code> directives:
-            <var>loadfactor</var>. This is the member load factor - a number between 1
-            (default) and 100, which defines the weighted load to be applied to the
-            member in question.</p>
-        <p>The <var>balancerurl</var> is only needed when not in
-            <code>&lt;Proxy <var>balancer://</var>...&gt;</code>
-            container directive. It corresponds to the url of a balancer defined in
-            <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
-        <p>The path component of the balancer URL in any
-            <code>&lt;Proxy <var>balancer://</var>...&gt;</code> container directive
-            is ignored.</p>
-        <p>Trailing slashes should typically be removed from the URL of a
-            <code class="directive">BalancerMember</code>.</p>
-    
+    <p>The <code class="directive">ProxyIOBufferSize</code> directive adjusts the size
+    of the internal buffer, which is used as a scratchpad for the data between
+    input and output. The size must be at least <code>512</code>.</p>
+
+    <p>In almost every case there's no reason to change that value.</p>
+
+    <p>If used with AJP this directive sets the maximum AJP packet size in
+    bytes. Values larger than 65536 are set to 65536. If you change it from
+    the default, you must also change the <code>packetSize</code> attribute of
+    your AJP connector on the Tomcat side! The attribute
+    <code>packetSize</code> is only available in Tomcat <code>5.5.20+</code>
+    and <code>6.0.2+</code></p>
+
+    <p>Normally it is not necessary to change the maximum packet size.
+    Problems with the default value have been reported when sending
+    certificates or certificate chains.</p>
+
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="BalancerPersist" id="BalancerPersist">BalancerPersist</a> <a name="balancerpersist" id="balancerpersist">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyMatch" id="ProxyMatch">&lt;ProxyMatch&gt;</a> <a name="proxymatch" id="proxymatch">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Attempt to persist changes made by the Balancer Manager across restarts.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>BalancerPersist On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>BalancerPersist Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Container for directives applied to regular-expression-matched
+proxied resources</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>BalancerPersist is only available in Apache HTTP Server 2.4.4 and later.</td></tr>
 </table>
-        <p>This directive will cause the shared memory storage associated
-        with the balancers and balancer members to be persisted across
-        restarts. This allows these local changes to not be lost during the
-        normal restart/graceful state transitions.</p>
-    
+    <p>The <code class="directive">&lt;ProxyMatch&gt;</code> directive is
+    identical to the <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> directive, except it matches URLs
+    using <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expressions</a>.</p>
+
+    <p>From 2.4.8 onwards, named groups and backreferences are captured and
+    written to the environment with the corresponding name prefixed with
+    "MATCH_" and in upper case. This allows elements of URLs to be referenced
+    from within <a href="../expr.html">expressions</a> and modules like
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. In order to prevent confusion, numbered
+    (unnamed) backreferences are ignored. Use named groups instead.</p>
+
+<pre class="prettyprint lang-config">&lt;ProxyMatch "^http://(?&lt;sitename&gt;[^/]+)"&gt;
+    Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
+&lt;/ProxyMatch&gt;</pre>
+
+
+<h3>See also</h3>
+<ul>
+<li><code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code></li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="NoProxy" id="NoProxy">NoProxy</a> <a name="noproxy" id="noproxy">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a> <a name="proxymaxforwards" id="proxymaxforwards">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Hosts, domains, or networks that will be connected to
-directly</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>NoProxy <var>host</var> [<var>host</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximium number of proxies that a request can be forwarded
+through</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyMaxForwards <var>number</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyMaxForwards -1</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Default behaviour changed in 2.2.7</td></tr>
 </table>
-    <p>This directive is only useful for Apache httpd proxy servers within
-    intranets.  The <code class="directive">NoProxy</code> directive specifies a
-    list of subnets, IP addresses, hosts and/or domains, separated by
-    spaces. A request to a host which matches one or more of these is
-    always served directly, without forwarding to the configured
-    <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> proxy server(s).</p>
+    <p>The <code class="directive">ProxyMaxForwards</code> directive specifies the
+    maximum number of proxies through which a request may pass, if there's no
+    <code>Max-Forwards</code> header supplied with the request. This may
+    be set to prevent infinite proxy loops, or a DoS attack.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyRemote  "*"  "http://firewall.example.com:81"
-NoProxy         ".example.com" "192.168.112.0/21"</pre>
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyMaxForwards 15</pre>
 </div>
 
-    <p>The <var>host</var> arguments to the <code class="directive">NoProxy</code>
-    directive are one of the following type list:</p>
-
-    <dl>
-    
-    <dt><var><a name="domain" id="domain">Domain</a></var></dt>
-    <dd>
-    <p>A <dfn>Domain</dfn> is a partially qualified DNS domain name, preceded
-    by a period. It represents a list of hosts which logically belong to the
-    same DNS domain or zone (<em>i.e.</em>, the suffixes of the hostnames are
-    all ending in <var>Domain</var>).</p>
+    <p>Note that setting <code class="directive">ProxyMaxForwards</code> is a
+    violation of the HTTP/1.1 protocol (RFC2616), which forbids a Proxy
+    setting <code>Max-Forwards</code> if the Client didn't set it.
+    Earlier Apache httpd versions would always set it.  A negative
+    <code class="directive">ProxyMaxForwards</code> value, including the
+    default -1, gives you protocol-compliant behaviour, but may
+    leave you open to loops.</p>
 
-    <div class="example"><h3>Examples</h3><p><code>
-      .com .example.org.
-    </code></p></div>
-
-    <p>To distinguish <var>Domain</var>s from <var><a href="#hostname">Hostname</a></var>s (both syntactically and semantically; a DNS domain can
-    have a DNS A record, too!), <var>Domain</var>s are always written with a
-    leading period.</p>
-
-    <div class="note"><h3>Note</h3>
-      <p>Domain name comparisons are done without regard to the case, and
-      <var>Domain</var>s are always assumed to be anchored in the root of the
-      DNS tree, therefore two domains <code>.ExAmple.com</code> and
-      <code>.example.com.</code> (note the trailing period) are considered
-      equal. Since a domain comparison does not involve a DNS lookup, it is much
-      more efficient than subnet comparison.</p>
-    </div></dd>
-
-    
-    <dt><var><a name="subnet" id="subnet">SubNet</a></var></dt>
-    <dd>
-    <p>A <dfn>SubNet</dfn> is a partially qualified internet address in
-    numeric (dotted quad) form, optionally followed by a slash and the netmask,
-    specified as the number of significant bits in the <var>SubNet</var>. It is
-    used to represent a subnet of hosts which can be reached over a common
-    network interface. In the absence of the explicit net mask it is assumed
-    that omitted (or zero valued) trailing digits specify the mask. (In this
-    case, the netmask can only be multiples of 8 bits wide.) Examples:</p>
-
-    <dl>
-    <dt><code>192.168</code> or <code>192.168.0.0</code></dt>
-    <dd>the subnet 192.168.0.0 with an implied netmask of 16 valid bits
-    (sometimes used in the netmask form <code>255.255.0.0</code>)</dd>
-    <dt><code>192.168.112.0/21</code></dt>
-    <dd>the subnet <code>192.168.112.0/21</code> with a netmask of 21
-    valid bits (also used in the form <code>255.255.248.0</code>)</dd>
-    </dl>
-
-    <p>As a degenerate case, a <em>SubNet</em> with 32 valid bits is the
-    equivalent to an <var><a href="#ipaddr">IPAddr</a></var>, while a <var>SubNet</var> with zero
-    valid bits (<em>e.g.</em>, 0.0.0.0/0) is the same as the constant
-    <var>_Default_</var>, matching any IP address.</p></dd>
-
-    
-    <dt><var><a name="ipaddr" id="ipaddr">IPAddr</a></var></dt>
-    <dd>
-    <p>A <dfn>IPAddr</dfn> represents a fully qualified internet address in
-    numeric (dotted quad) form. Usually, this address represents a host, but
-    there need not necessarily be a DNS domain name connected with the
-    address.</p>
-    <div class="example"><h3>Example</h3><p><code>
-      192.168.123.7
-    </code></p></div>
-
-    <div class="note"><h3>Note</h3>
-      <p>An <var>IPAddr</var> does not need to be resolved by the DNS system, so
-      it can result in more effective apache performance.</p>
-    </div></dd>
-
-    
-    <dt><var><a name="hostname" id="hostname">Hostname</a></var></dt>
-    <dd>
-    <p>A <dfn>Hostname</dfn> is a fully qualified DNS domain name which can
-    be resolved to one or more <var><a href="#ipaddr">IPAddrs</a></var> via the
-    DNS domain name service. It represents a logical host (in contrast to
-    <var><a href="#domain">Domain</a></var>s, see above) and must be resolvable
-    to at least one <var><a href="#ipaddr">IPAddr</a></var> (or often to a list
-    of hosts with different <var><a href="#ipaddr">IPAddr</a></var>s).</p>
-
-    <div class="example"><h3>Examples</h3><p><code>
-      prep.ai.example.edu<br />
-      www.example.org
-    </code></p></div>
-
-    <div class="note"><h3>Note</h3>
-      <p>In many situations, it is more effective to specify an <var><a href="#ipaddr">IPAddr</a></var> in place of a <var>Hostname</var> since a
-      DNS lookup can be avoided. Name resolution in Apache httpd can take a remarkable
-      deal of time when the connection to the name server uses a slow PPP
-      link.</p>
-      <p><var>Hostname</var> comparisons are done without regard to the case,
-      and <var>Hostname</var>s are always assumed to be anchored in the root
-      of the DNS tree, therefore two hosts <code>WWW.ExAmple.com</code>
-      and <code>www.example.com.</code> (note the trailing period) are
-      considered equal.</p>
-     </div></dd>
-    </dl>
-
-<h3>See also</h3>
-<ul>
-<li><a href="../dns-caveats.html">DNS Issues</a></li>
-</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Proxy" id="Proxy">&lt;Proxy&gt;</a> <a name="proxy" id="proxy">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyPass" id="ProxyPass">ProxyPass</a> <a name="proxypass" id="proxypass">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Container for directives applied to proxied resources</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;Proxy <var>wildcard-url</var>&gt; ...&lt;/Proxy&gt;</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps remote servers into the local server URL-space</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPass [<var>path</var>] !|<var>url</var> [<var>key=value</var>
+  <var>[key=value</var> ...]] [nocanon] [interpolate] [noquery]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Unix Domain Socket (UDS) support added in 2.4.7</td></tr>
 </table>
-    <p>Directives placed in <code class="directive">&lt;Proxy&gt;</code>
-    sections apply only to matching proxied content.  Shell-style wildcards are
-    allowed.</p>
-
-    <p>For example, the following will allow only hosts in
-    <code>yournetwork.example.com</code> to access content via your proxy
-    server:</p>
-
-    <pre class="prettyprint lang-config">&lt;Proxy "*"&gt;
-  Require host yournetwork.example.com
-&lt;/Proxy&gt;</pre>
-
+    <p>This directive allows remote servers to be mapped into the
+    space of the local server; the local server does not act as a
+    proxy in the conventional sense, but appears to be a mirror of the
+    remote server. The local server is often called a <dfn>reverse
+    proxy</dfn> or <dfn>gateway</dfn>. The <var>path</var> is the name of
+    a local virtual path; <var>url</var> is a partial URL for the
+    remote server and cannot include a query string.</p>
 
-    <p>The following example will process all files in the <code>foo</code>
-    directory of <code>example.com</code> through the <code>INCLUDES</code>
-    filter when they are sent through the proxy server:</p>
+    <div class="note"><strong>Note: </strong>This directive cannot be used within a 
+    <code>&lt;Directory&gt;</code> context.</div>
 
-   <pre class="prettyprint lang-config">&lt;Proxy "http://example.com/foo/*"&gt;
-  SetOutputFilter INCLUDES
-&lt;/Proxy&gt;</pre>
+    <div class="warning">The <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive should
+    usually be set <strong>off</strong> when using
+    <code class="directive">ProxyPass</code>.</div>
 
+    <p>In 2.4.7 and later, support for using a Unix Domain Socket is available by using a target
+    which prepends <code>unix:/path/lis.sock|</code>. For example, to proxy
+    HTTP and target the UDS at /home/www/socket you would use
+    <code>unix:/home/www.socket|http://localhost/whatever/</code>.</p>
 
-    <div class="note"><h3>Differences from the Location configuration section</h3>
-      <p>A backend URL matches the configuration section if it begins with the 
-      the <var>wildcard-url</var> string, even if the last path segment in the
-      directive only matches a prefix of the backend URL.  For example, 
-      &lt;Proxy "http://example.com/foo"&gt; matches all of 
-      http://example.com/foo, http://example.com/foo/bar, and 
-      http://example.com/foobar.  The matching of the final URL differs
-      from the behavior of the <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section, which for purposes of this note 
-      treats the final path component as if it ended in a slash.</p>
-      <p>For more control over the matching, see <code class="directive">&lt;ProxyMatch&gt;</code>.</p>
-    </div>
+    <div class="note"><strong>Note:</strong> The path associated with the <code>unix:</code>
+    URL is <code class="directive">DefaultRuntimeDir</code> aware.</div>
 
+    <p>Suppose the local server has address <code>http://example.com/</code>;
+    then</p>
 
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyAddHeaders" id="ProxyAddHeaders">ProxyAddHeaders</a> <a name="proxyaddheaders" id="proxyaddheaders">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Add proxy information in X-Forwarded-* headers</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyAddHeaders Off|On</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyAddHeaders On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.10 and later</td></tr>
-</table>
-    <p>This directive determines whether or not proxy related information should be passed to the
-    backend server through X-Forwarded-For, X-Forwarded-Host and X-Forwarded-Server HTTP headers.</p>
-    <div class="note"><h3>Effectiveness</h3>
-     <p>This option is of use only for HTTP proxying, as handled by <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>.</p>
-    </div>
+    <pre class="prettyprint lang-config">&lt;Location "/mirror/foo/"&gt;
+    ProxyPass "http://backend.example.com/"
+&lt;/Location&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a> <a name="proxybadheader" id="proxybadheader">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determines how to handle bad header lines in a
-response</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyBadHeader IsError</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>The <code class="directive">ProxyBadHeader</code> directive determines the
-    behaviour of <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> if it receives syntactically invalid
-    response header lines (<em>i.e.</em> containing no colon) from the origin
-    server. The following arguments are possible:</p>
 
-    <dl>
-    <dt><code>IsError</code></dt>
-    <dd>Abort the request and end up with a 502 (Bad Gateway) response. This is
-    the default behaviour.</dd>
+    <p>will cause a local request for
+    <code>http://example.com/mirror/foo/bar</code> to be internally converted
+    into a proxy request to <code>http://backend.example.com/bar</code>.</p>
 
-    <dt><code>Ignore</code></dt>
-    <dd>Treat bad header lines as if they weren't sent.</dd>
+    <p>The following alternative syntax is possible, however it can carry a
+    performance penalty when present in very large numbers. The advantage of
+    the below syntax is that it allows for dynamic control via the
+    <a href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> interface:</p>
 
-    <dt><code>StartBody</code></dt>
-    <dd>When receiving the first bad header line, finish reading the headers and
-    treat the remainder as body. This helps to work around buggy backend servers
-    which forget to insert an empty line between the headers and the body.</dd>
-    </dl>
+    <pre class="prettyprint lang-config">ProxyPass "/mirror/foo/" "http://backend.example.com/"</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a> <a name="proxyblock" id="proxyblock">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Words, hosts, or domains that are banned from being
-proxied</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBlock *|<var>word</var>|<var>host</var>|<var>domain</var>
-[<var>word</var>|<var>host</var>|<var>domain</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>The <code class="directive">ProxyBlock</code> directive specifies a list of
-    words, hosts and/or domains, separated by spaces.  HTTP, HTTPS, and
-    FTP document requests to sites whose names contain matched words,
-    hosts or domains are <em>blocked</em> by the proxy server. The proxy
-    module will also attempt to determine IP addresses of list items which
-    may be hostnames during startup, and cache them for match test as
-    well. That may slow down the startup time of the server.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyBlock "news.example.com" "auctions.example.com" "friends.example.com"</pre>
-</div>
+    <div class="warning">
+    <p>If the first argument ends with a trailing <strong>/</strong>, the second
+       argument should also end with a trailing <strong>/</strong> and vice
+       versa. Otherwise the resulting requests to the backend may miss some
+       needed slashes and do not deliver the expected results.
+    </p>
+    </div>
 
-    <p>Note that <code>example</code> would also be sufficient to match any
-    of these sites.</p>
+    <p>The <code>!</code> directive is useful in situations where you don't want
+    to reverse-proxy a subdirectory, <em>e.g.</em></p>
 
-    <p>Hosts would also be matched if referenced by IP address.</p>
+    <pre class="prettyprint lang-config">&lt;Location "/mirror/foo/"&gt;
+    ProxyPass "http://backend.example.com/"
+&lt;/Location&gt;
+&lt;Location "/mirror/foo/i"&gt;
+    ProxyPass "!"
+&lt;/Location&gt;</pre>
 
-    <p>Note also that</p>
 
-    <pre class="prettyprint lang-config">ProxyBlock "*"</pre>
+    <pre class="prettyprint lang-config">ProxyPass "/mirror/foo/i" "!"
+ProxyPass "/mirror/foo" "http://backend.example.com"</pre>
 
 
-    <p>blocks connections to all sites.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a> <a name="proxydomain" id="proxydomain">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Default domain name for proxied requests</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyDomain <var>Domain</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This directive is only useful for Apache httpd proxy servers within
-    intranets. The <code class="directive">ProxyDomain</code> directive specifies
-    the default domain which the apache proxy server will belong to. If a
-    request to a host without a domain name is encountered, a redirection
-    response to the same host with the configured <var>Domain</var> appended
-    will be generated.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">      ProxyRemote  "*"  "http://firewall.example.com:81"<br />
-      NoProxy         ".example.com" "192.168.112.0/21"<br />
-      ProxyDomain     ".example.com"</pre>
-</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a> <a name="proxyerroroverride" id="proxyerroroverride">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Override error pages for proxied content</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyErrorOverride Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This directive is useful for reverse-proxy setups, where you want to
-    have a common look and feel on the error pages seen by the end user.
-    This also allows for included files (via
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>'s SSI) to get
-    the error code and act accordingly (default behavior would display
-    the error page of the proxied server, turning this on shows the SSI
-    Error message).</p>
-
-    <p>This directive does not affect the processing of informational (1xx),
-    normal success (2xx), or redirect (3xx) responses.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a> <a name="proxyiobuffersize" id="proxyiobuffersize">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Determine size of internal data throughput buffer</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyIOBufferSize <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyIOBufferSize 8192</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>The <code class="directive">ProxyIOBufferSize</code> directive adjusts the size
-    of the internal buffer, which is used as a scratchpad for the data between
-    input and output. The size must be at least <code>512</code>.</p>
-
-    <p>In almost every case there's no reason to change that value.</p>
-
-    <p>If used with AJP this directive sets the maximum AJP packet size in
-    bytes. Values larger than 65536 are set to 65536. If you change it from
-    the default, you must also change the <code>packetSize</code> attribute of
-    your AJP connector on the Tomcat side! The attribute
-    <code>packetSize</code> is only available in Tomcat <code>5.5.20+</code>
-    and <code>6.0.2+</code></p>
-
-    <p>Normally it is not necessary to change the maximum packet size.
-    Problems with the default value have been reported when sending
-    certificates or certificate chains.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyMatch" id="ProxyMatch">&lt;ProxyMatch&gt;</a> <a name="proxymatch" id="proxymatch">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Container for directives applied to regular-expression-matched
-proxied resources</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>The <code class="directive">&lt;ProxyMatch&gt;</code> directive is
-    identical to the <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> directive, except it matches URLs
-    using <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expressions</a>.</p>
-
-    <p>From 2.4.8 onwards, named groups and backreferences are captured and
-    written to the environment with the corresponding name prefixed with
-    "MATCH_" and in upper case. This allows elements of URLs to be referenced
-    from within <a href="../expr.html">expressions</a> and modules like
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. In order to prevent confusion, numbered
-    (unnamed) backreferences are ignored. Use named groups instead.</p>
-
-<pre class="prettyprint lang-config">&lt;ProxyMatch "^http://(?&lt;sitename&gt;[^/]+)"&gt;
-    Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
-&lt;/ProxyMatch&gt;</pre>
-
-
-<h3>See also</h3>
-<ul>
-<li><code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a> <a name="proxymaxforwards" id="proxymaxforwards">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximium number of proxies that a request can be forwarded
-through</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyMaxForwards <var>number</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyMaxForwards -1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Default behaviour changed in 2.2.7</td></tr>
-</table>
-    <p>The <code class="directive">ProxyMaxForwards</code> directive specifies the
-    maximum number of proxies through which a request may pass, if there's no
-    <code>Max-Forwards</code> header supplied with the request. This may
-    be set to prevent infinite proxy loops, or a DoS attack.</p>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyMaxForwards 15</pre>
-</div>
-
-    <p>Note that setting <code class="directive">ProxyMaxForwards</code> is a
-    violation of the HTTP/1.1 protocol (RFC2616), which forbids a Proxy
-    setting <code>Max-Forwards</code> if the Client didn't set it.
-    Earlier Apache httpd versions would always set it.  A negative
-    <code class="directive">ProxyMaxForwards</code> value, including the
-    default -1, gives you protocol-compliant behaviour, but may
-    leave you open to loops.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPass" id="ProxyPass">ProxyPass</a> <a name="proxypass" id="proxypass">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps remote servers into the local server URL-space</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPass [<var>path</var>] !|<var>url</var> [<var>key=value</var>
-  <var>[key=value</var> ...]] [nocanon] [interpolate] [noquery]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Unix Domain Socket (UDS) support added in 2.4.7</td></tr>
-</table>
-    <p>This directive allows remote servers to be mapped into the
-    space of the local server; the local server does not act as a
-    proxy in the conventional sense, but appears to be a mirror of the
-    remote server. The local server is often called a <dfn>reverse
-    proxy</dfn> or <dfn>gateway</dfn>. The <var>path</var> is the name of
-    a local virtual path; <var>url</var> is a partial URL for the
-    remote server and cannot include a query string.</p>
-
-    <div class="note"><strong>Note: </strong>This directive cannot be used within a 
-    <code>&lt;Directory&gt;</code> context.</div>
-
-    <div class="warning">The <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive should
-    usually be set <strong>off</strong> when using
-    <code class="directive">ProxyPass</code>.</div>
-
-    <p>In 2.4.7 and later, support for using a Unix Domain Socket is available by using a target
-    which prepends <code>unix:/path/lis.sock|</code>. For example, to proxy
-    HTTP and target the UDS at /home/www/socket you would use
-    <code>unix:/home/www.socket|http://localhost/whatever/</code>.</p>
-
-    <div class="note"><strong>Note:</strong> The path associated with the <code>unix:</code>
-    URL is <code class="directive">DefaultRuntimeDir</code> aware.</div>
-
-    <p>Suppose the local server has address <code>http://example.com/</code>;
-    then</p>
-
-    <pre class="prettyprint lang-config">&lt;Location "/mirror/foo/"&gt;
-    ProxyPass "http://backend.example.com/"
-&lt;/Location&gt;</pre>
-
-
-    <p>will cause a local request for
-    <code>http://example.com/mirror/foo/bar</code> to be internally converted
-    into a proxy request to <code>http://backend.example.com/bar</code>.</p>
-
-    <p>The following alternative syntax is possible, however it can carry a
-    performance penalty when present in very large numbers. The advantage of
-    the below syntax is that it allows for dynamic control via the
-    <a href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> interface:</p>
-
-    <pre class="prettyprint lang-config">ProxyPass "/mirror/foo/" "http://backend.example.com/"</pre>
-
-
-    <div class="warning">
-    <p>If the first argument ends with a trailing <strong>/</strong>, the second
-       argument should also end with a trailing <strong>/</strong> and vice
-       versa. Otherwise the resulting requests to the backend may miss some
-       needed slashes and do not deliver the expected results.
-    </p>
-    </div>
-
-    <p>The <code>!</code> directive is useful in situations where you don't want
-    to reverse-proxy a subdirectory, <em>e.g.</em></p>
-
-    <pre class="prettyprint lang-config">&lt;Location "/mirror/foo/"&gt;
-    ProxyPass "http://backend.example.com/"
-&lt;/Location&gt;
-&lt;Location "/mirror/foo/i"&gt;
-    ProxyPass "!"
-&lt;/Location&gt;</pre>
-
-
-    <pre class="prettyprint lang-config">ProxyPass "/mirror/foo/i" "!"
-ProxyPass "/mirror/foo" "http://backend.example.com"</pre>
-
-
-    <p>will proxy all requests to <code>/mirror/foo</code> to
-    <code>backend.example.com</code> <em>except</em> requests made to
-    <code>/mirror/foo/i</code>.</p>
+    <p>will proxy all requests to <code>/mirror/foo</code> to
+    <code>backend.example.com</code> <em>except</em> requests made to
+    <code>/mirror/foo/i</code>.</p>
 
     <div class="warning"><h3>Ordering ProxyPass Directives</h3>
       <p>The configured <code class="directive"><a href="#proxypass">ProxyPass</a></code>
@@ -1417,518 +1082,853 @@ ProxyPass "/" "balancer://mycluster/" stickysession=JSESSIONID|jsessionid nofail
     scheme can be accomplished with <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> as in the
     following example.</p>
 
-    <pre class="prettyprint lang-config">RewriteEngine On
+    <pre class="prettyprint lang-config">RewriteEngine On
+
+RewriteCond "%{HTTPS}" =off
+RewriteRule "." "-" [E=protocol:http]
+RewriteCond "%{HTTPS}" =on
+RewriteRule "." "-" [E=protocol:https]
+
+RewriteRule "^/mirror/foo/(.*)" "%{ENV:protocol}://backend.example.com/$1" [P]
+ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
+ProxyPassReverse  "/mirror/foo/" "https://backend.example.com/"</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a> <a name="proxypassinherit" id="proxypassinherit">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Inherit ProxyPass directives defined from the main server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassInherit On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyPassInherit On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>ProxyPassInherit is only available in Apache HTTP Server 2.4.5 and later.
+        and later.</td></tr>
+</table>
+        <p>This directive will cause the current server/vhost to "inherit"
+            <code class="directive"><a href="#proxypass">ProxyPass</a></code>
+            directives defined in the main server. This can cause issues and
+            inconsistent behavior if using the Balancer Manager for dynamic changes
+            and so should be disabled if using that feature.</p>
+        <p>The setting in the global server defines the default for all vhosts.</p>
+        <p>Disabling ProxyPassInherit also disables <code class="directive"><a href="#balancerinherit">BalancerInherit</a></code>.</p>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPassInterpolateEnv" id="ProxyPassInterpolateEnv">ProxyPassInterpolateEnv</a> <a name="proxypassinterpolateenv" id="proxypassinterpolateenv">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable Environment Variable interpolation in Reverse Proxy configurations</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassInterpolateEnv On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyPassInterpolateEnv Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in httpd 2.2.9 and later</td></tr>
+</table>
+    <p>This directive, together with the <var>interpolate</var> argument to
+    <code class="directive">ProxyPass</code>, <code class="directive">ProxyPassReverse</code>,
+    <code class="directive">ProxyPassReverseCookieDomain</code> and
+    <code class="directive">ProxyPassReverseCookiePath</code>
+    enables reverse proxies to be dynamically
+    configured using environment variables, which may be set by
+    another module such as <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
+    It affects the <code class="directive">ProxyPass</code>,
+    <code class="directive">ProxyPassReverse</code>,
+    <code class="directive">ProxyPassReverseCookieDomain</code>, and
+    <code class="directive">ProxyPassReverseCookiePath</code> directives,
+    and causes them to substitute the value of an environment
+    variable <code>varname</code> for the string <code>${varname}</code>
+    in configuration directives (if the <var>interpolate</var> option is set).</p>
+    <p>Keep this turned off (for server performance) unless you need it!</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a> <a name="proxypassmatch" id="proxypassmatch">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps remote servers into the local server URL-space using regular expressions</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassMatch [<var>regex</var>] !|<var>url</var> [<var>key=value</var>
+       <var>[key=value</var> ...]]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>This directive is equivalent to <code class="directive"><a href="#proxypass">ProxyPass</a></code>,
+       but makes use of regular expressions, instead of simple prefix matching. The
+       supplied regular expression is matched against the <var>url</var>, and if it
+       matches, the server will substitute any parenthesized matches into the given
+       string and use it as a new <var>url</var>.</p>
+
+    <div class="note"><strong>Note: </strong>This directive cannot be used within a 
+    <code>&lt;Directory&gt;</code> context.</div>
+    
+    <p>Suppose the local server has address <code>http://example.com/</code>;
+    then</p>
+
+    <pre class="prettyprint lang-config">ProxyPassMatch "^/(.*\.gif)$" "http://backend.example.com/$1"</pre>
+
+
+    <p>will cause a local request for
+    <code>http://example.com/foo/bar.gif</code> to be internally converted
+    into a proxy request to <code>http://backend.example.com/foo/bar.gif</code>.</p>
+    <div class="note"><h3>Note</h3>
+      <p>The URL argument must be parsable as a URL <em>before</em> regexp
+      substitutions (as well as after).  This limits the matches you can use.
+      For instance, if we had used</p>
+      <pre class="prettyprint lang-config">ProxyPassMatch "^(/.*\.gif)$" "http://backend.example.com:8000$1"</pre>
+
+      <p>in our previous example, it would fail with a syntax error
+      at server startup.  This is a bug (PR 46665 in the ASF bugzilla),
+      and the workaround is to reformulate the match:</p>
+      <pre class="prettyprint lang-config">ProxyPassMatch "^/(.*\.gif)$" "http://backend.example.com:8000/$1"</pre>
+
+    </div>
+    <p>The <code>!</code> directive is useful in situations where you don't want
+    to reverse-proxy a subdirectory.</p>
+
+    <p>When used inside a <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> section, the first argument is omitted and the
+    regexp is obtained from the <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>.</p>
+
+    <p>If you require a more flexible reverse-proxy configuration, see the
+    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive with the
+    <code>[P]</code> flag.</p>
+
+    <div class="note">
+      <h3>Default Substitution</h3>
+      <p>When the URL parameter doesn't use any backreferences into the regular
+      expression, the original URL will be appended to the URL parameter.
+      </p>
+    </div>
+
+    <div class="warning">
+      <h3>Security Warning</h3>
+      <p>Take care when constructing the target URL of the rule, considering
+        the security impact from allowing the client influence over the set of
+        URLs to which your server will act as a proxy.  Ensure that the scheme
+        and hostname part of the URL is either fixed, or does not allow the
+        client undue influence.</p>
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a> <a name="proxypassreverse" id="proxypassreverse">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the URL in HTTP response headers sent from a reverse
+proxied server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverse [<var>path</var>] <var>url</var>
+[<var>interpolate</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>This directive lets Apache httpd adjust the URL in the <code>Location</code>,
+    <code>Content-Location</code> and <code>URI</code> headers on HTTP
+    redirect responses. This is essential when Apache httpd is used as a
+    reverse proxy (or gateway) to avoid by-passing the reverse proxy
+    because of HTTP redirects on the backend servers which stay behind
+    the reverse proxy.</p>
+
+    <p>Only the HTTP response headers specifically mentioned above
+    will be rewritten. Apache httpd will not rewrite other response
+    headers, nor will it by default rewrite URL references inside HTML pages.
+    This means that if the proxied content contains absolute URL
+    references, they will by-pass the proxy. To rewrite HTML content to
+    match the proxy, you must load and enable <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code>.
+    </p>
+
+    <p><var>path</var> is the name of a local virtual path. <var>url</var> is a
+    partial URL for the remote server - the same way they are used for the
+    <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+
+    <p>For example, suppose the local server has address
+    <code>http://example.com/</code>; then</p>
+
+    <pre class="prettyprint lang-config">ProxyPass         "/mirror/foo/" "http://backend.example.com/"
+ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
+ProxyPassReverseCookieDomain  "backend.example.com"  "public.example.com"
+ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
+
+
+    <p>will not only cause a local request for the
+    <code>http://example.com/mirror/foo/bar</code> to be internally converted
+    into a proxy request to <code>http://backend.example.com/bar</code>
+    (the functionality <code>ProxyPass</code> provides here). It also takes care
+    of redirects the server <code>backend.example.com</code> sends: when
+    <code>http://backend.example.com/bar</code> is redirected by him to
+    <code>http://backend.example.com/quux</code> Apache httpd adjusts this to
+    <code>http://example.com/mirror/foo/quux</code> before forwarding the HTTP
+    redirect response to the client. Note that the hostname used for
+    constructing the URL is chosen in respect to the setting of the <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code> directive.</p>
+
+    <p>Note that this <code class="directive">ProxyPassReverse</code> directive can
+    also be used in conjunction with the proxy pass-through feature
+    (<code>RewriteRule ...  [P]</code>) from <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+    because it doesn't depend on a corresponding <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+
+    <p>The optional <var>interpolate</var> keyword, used together with
+    <code class="directive">ProxyPassInterpolateEnv</code>, enables interpolation
+    of environment variables specified using the format <var>${VARNAME}</var>.
+    Note that interpolation is not supported within the scheme portion of a
+    URL.</p>
+
+    <p>When used inside a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section, the first argument is omitted and the local
+    directory is obtained from the <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. The same occurs inside a <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> section, but will probably not work as
+    intended, as ProxyPassReverse will interpret the regexp literally as a
+    path; if needed in this situation, specify the ProxyPassReverse outside
+    the section, or in a separate <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section.</p>
+
+    <p>This directive is not supported in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> or <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code> sections.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</a> <a name="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the Domain string in Set-Cookie headers from a reverse-
+proxied server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverseCookieDomain <var>internal-domain</var>
+<var>public-domain</var> [<var>interpolate</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+<p>Usage is basically similar to
+<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, but instead of
+rewriting headers that are a URL, this rewrites the <code>domain</code>
+string in <code>Set-Cookie</code> headers.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a> <a name="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the Path string in Set-Cookie headers from a reverse-
+proxied server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverseCookiePath <var>internal-path</var>
+<var>public-path</var> [<var>interpolate</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+<p>
+Useful in conjunction with
+<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>
+in situations where backend URL paths are mapped to public paths on the
+reverse proxy. This directive rewrites the <code>path</code> string in
+<code>Set-Cookie</code> headers. If the beginning of the cookie path matches
+<var>internal-path</var>, the cookie path will be replaced with
+<var>public-path</var>.
+</p><p>
+In the example given with 
+<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, the directive:
+</p>
+    <pre class="prettyprint lang-config">ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
+
+<p>
+will rewrite a cookie with backend path <code>/</code> (or
+<code>/example</code> or, in fact, anything) to <code>/mirror/foo/</code>.
+</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a> <a name="proxypreservehost" id="proxypreservehost">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use incoming Host HTTP request header for proxy
+request</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPreserveHost On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyPreserveHost Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Usable in directory
+context in 2.3.3 and later.</td></tr>
+</table>
+    <p>When enabled, this option will pass the Host: line from the incoming
+    request to the proxied host, instead of the hostname specified in the
+    <code class="directive">ProxyPass</code> line.</p>
+
+    <p>This option should normally be turned <code>Off</code>. It is mostly
+    useful in special configurations like proxied mass name-based virtual
+    hosting, where the original Host header needs to be evaluated by the
+    backend server.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</a> <a name="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Network buffer size for proxied HTTP and FTP
+connections</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyReceiveBufferSize <var>bytes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyReceiveBufferSize 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>The <code class="directive">ProxyReceiveBufferSize</code> directive specifies an
+    explicit (TCP/IP) network buffer size for proxied HTTP and FTP connections,
+    for increased throughput. It has to be greater than <code>512</code> or set
+    to <code>0</code> to indicate that the system's default buffer size should
+    be used.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyReceiveBufferSize 2048</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a> <a name="proxyremote" id="proxyremote">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remote proxy used to handle certain requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyRemote <var>match</var> <var>remote-server</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>This defines remote proxies to this proxy. <var>match</var> is either the
+    name of a URL-scheme that the remote server supports, or a partial URL
+    for which the remote server should be used, or <code>*</code> to indicate
+    the server should be contacted for all requests. <var>remote-server</var> is
+    a partial URL for the remote server. Syntax:</p>
+
+    <div class="example"><p><code>
+      <dfn>remote-server</dfn> =
+          <var>scheme</var>://<var>hostname</var>[:<var>port</var>]
+    </code></p></div>
+
+    <p><var>scheme</var> is effectively the protocol that should be used to
+    communicate with the remote server; only <code>http</code> and <code>https</code>
+    are supported by this module. When using <code>https</code>, the requests
+    are forwarded through the remote proxy using the HTTP CONNECT method.</p>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyRemote "http://goodguys.example.com/" "http://mirrorguys.example.com:8000"
+ProxyRemote "*" "http://cleverproxy.localdomain"
+ProxyRemote "ftp" "http://ftpproxy.mydomain:8080"</pre>
+</div>
+
+    <p>In the last example, the proxy will forward FTP requests, encapsulated
+    as yet another HTTP proxy request, to another proxy which can handle
+    them.</p>
+
+    <p>This option also supports reverse proxy configuration - a backend
+    webserver can be embedded within a virtualhost URL space even if that
+    server is hidden by another forward proxy.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyRemoteMatch" id="ProxyRemoteMatch">ProxyRemoteMatch</a> <a name="proxyremotematch" id="proxyremotematch">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remote proxy used to handle requests matched by regular
+expressions</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyRemoteMatch <var>regex</var> <var>remote-server</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>The <code class="directive">ProxyRemoteMatch</code> is identical to the
+    <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> directive, except the
+    first argument is a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>
+    match against the requested URL.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyRequests" id="ProxyRequests">ProxyRequests</a> <a name="proxyrequests" id="proxyrequests">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables forward (standard) proxy requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyRequests On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyRequests Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>This allows or prevents Apache httpd from functioning as a forward proxy
+    server. (Setting ProxyRequests to <code>Off</code> does not disable use of
+    the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.)</p>
+
+    <p>In a typical reverse proxy or gateway configuration, this
+    option should be set to
+    <code>Off</code>.</p>
+
+    <p>In order to get the functionality of proxying HTTP or FTP sites, you
+    need also <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> or <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>
+    (or both) present in the server.</p>
+
+    <p>In order to get the functionality of (forward) proxying HTTPS sites, you
+    need <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> enabled in the server.</p>
+
+    <div class="warning"><h3>Warning</h3>
+      <p>Do not enable proxying with <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> until you have <a href="#access">secured your server</a>.  Open proxy servers are dangerous
+      both to your network and to the Internet at large.</p>
+    </div>
+
+<h3>See also</h3>
+<ul>
+<li><a href="#forwardreverse">Forward and Reverse Proxies/Gateways</a></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxySet" id="ProxySet">ProxySet</a> <a name="proxyset" id="proxyset">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set various Proxy balancer or member parameters</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxySet <var>url</var> <var>key=value [key=value ...]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>ProxySet is only available in Apache HTTP Server 2.2
+  and later.</td></tr>
+</table>
+    <p>This directive is used as an alternate method of setting any of the
+    parameters available to Proxy balancers and workers normally done via the
+    <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive. If used
+    within a <code>&lt;Proxy <var>balancer url|worker url</var>&gt;</code>
+    container directive, the <var>url</var> argument is not required. As a side
+    effect the respective balancer or worker gets created. This can be useful
+    when doing reverse proxying via a
+    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> instead of a
+    <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+
+    <div class="example"><pre class="prettyprint lang-config">&lt;Proxy "balancer://hotcluster"&gt;
+    BalancerMember "http://www2.example.com:8080" loadfactor=1
+    BalancerMember "http://www3.example.com:8080" loadfactor=2
+    ProxySet lbmethod=bytraffic
+&lt;/Proxy&gt;</pre>
+</div>
+
+    <pre class="prettyprint lang-config">&lt;Proxy "http://backend"&gt;
+    ProxySet keepalive=On
+&lt;/Proxy&gt;</pre>
+
+
+    <pre class="prettyprint lang-config">ProxySet "balancer://foo" lbmethod=bytraffic timeout=15</pre>
+
+
+    <pre class="prettyprint lang-config">ProxySet "ajp://backend:7001" timeout=15</pre>
+
 
-RewriteCond "%{HTTPS}" =off
-RewriteRule "." "-" [E=protocol:http]
-RewriteCond "%{HTTPS}" =on
-RewriteRule "." "-" [E=protocol:https]
+   <div class="warning"><h3>Warning</h3>
+      <p>Keep in mind that the same parameter key can have a different meaning
+      depending whether it is applied to a balancer or a worker as shown by the two
+      examples above regarding timeout.</p>
+   </div>
 
-RewriteRule "^/mirror/foo/(.*)" "%{ENV:protocol}://backend.example.com/$1" [P]
-ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
-ProxyPassReverse  "/mirror/foo/" "https://backend.example.com/"</pre>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxySourceAddress" id="ProxySourceAddress">ProxySourceAddress</a> <a name="proxysourceaddress" id="proxysourceaddress">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set local IP address for outgoing proxy connections</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxySourceAddress <var>address</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.9 and later</td></tr>
+</table>
+    <p>This directive allows to set a specific local address to bind to when connecting
+    to a backend server.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a> <a name="proxypassinherit" id="proxypassinherit">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyStatus" id="ProxyStatus">ProxyStatus</a> <a name="proxystatus" id="proxystatus">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Inherit ProxyPass directives defined from the main server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassInherit On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyPassInherit On</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Show Proxy LoadBalancer status in mod_status</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyStatus Off|On|Full</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyStatus Off</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>ProxyPassInherit is only available in Apache HTTP Server 2.4.5 and later.
-        and later.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.2 and later</td></tr>
 </table>
-        <p>This directive will cause the current server/vhost to "inherit"
-            <code class="directive"><a href="#proxypass">ProxyPass</a></code>
-            directives defined in the main server. This can cause issues and
-            inconsistent behavior if using the Balancer Manager for dynamic changes
-            and so should be disabled if using that feature.</p>
-        <p>The setting in the global server defines the default for all vhosts.</p>
-        <p>Disabling ProxyPassInherit also disables <code class="directive"><a href="#balancerinherit">BalancerInherit</a></code>.</p>
-    
+    <p>This directive determines whether or not proxy
+    loadbalancer status data is displayed via the <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>
+    server-status page.</p>
+    <div class="note"><h3>Note</h3>
+      <p><strong>Full</strong> is synonymous with <strong>On</strong></p>
+    </div>
+
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPassInterpolateEnv" id="ProxyPassInterpolateEnv">ProxyPassInterpolateEnv</a> <a name="proxypassinterpolateenv" id="proxypassinterpolateenv">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a> <a name="proxytimeout" id="proxytimeout">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable Environment Variable interpolation in Reverse Proxy configurations</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassInterpolateEnv On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyPassInterpolateEnv Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Network timeout for proxied requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyTimeout <var>seconds</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Value of <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in httpd 2.2.9 and later</td></tr>
 </table>
-    <p>This directive, together with the <var>interpolate</var> argument to
-    <code class="directive">ProxyPass</code>, <code class="directive">ProxyPassReverse</code>,
-    <code class="directive">ProxyPassReverseCookieDomain</code> and
-    <code class="directive">ProxyPassReverseCookiePath</code>
-    enables reverse proxies to be dynamically
-    configured using environment variables, which may be set by
-    another module such as <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>.
-    It affects the <code class="directive">ProxyPass</code>,
-    <code class="directive">ProxyPassReverse</code>,
-    <code class="directive">ProxyPassReverseCookieDomain</code>, and
-    <code class="directive">ProxyPassReverseCookiePath</code> directives,
-    and causes them to substitute the value of an environment
-    variable <code>varname</code> for the string <code>${varname}</code>
-    in configuration directives (if the <var>interpolate</var> option is set).</p>
-    <p>Keep this turned off (for server performance) unless you need it!</p>
+    <p>This directive allows a user to specifiy a timeout on proxy requests.
+    This is useful when you have a slow/buggy appserver which hangs, and you
+    would rather just return a timeout and fail gracefully instead of waiting
+    however long it takes the server to return.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a> <a name="proxypassmatch" id="proxypassmatch">Directive</a></h2>
+<div class="directive-section"><h2><a name="ProxyVia" id="ProxyVia">ProxyVia</a> <a name="proxyvia" id="proxyvia">Directive</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maps remote servers into the local server URL-space using regular expressions</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassMatch [<var>regex</var>] !|<var>url</var> [<var>key=value</var>
-       <var>[key=value</var> ...]]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Information provided in the <code>Via</code> HTTP response
+header for proxied requests</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyVia On|Off|Full|Block</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyVia Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
 <tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 </table>
-    <p>This directive is equivalent to <code class="directive"><a href="#proxypass">ProxyPass</a></code>,
-       but makes use of regular expressions, instead of simple prefix matching. The
-       supplied regular expression is matched against the <var>url</var>, and if it
-       matches, the server will substitute any parenthesized matches into the given
-       string and use it as a new <var>url</var>.</p>
+    <p>This directive controls the use of the <code>Via:</code> HTTP
+    header by the proxy. Its intended use is to control the flow of
+    proxy requests along a chain of proxy servers.  See <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1), section
+    14.45 for an explanation of <code>Via:</code> header lines.</p>
 
-    <div class="note"><strong>Note: </strong>This directive cannot be used within a 
-    <code>&lt;Directory&gt;</code> context.</div>
-    
-    <p>Suppose the local server has address <code>http://example.com/</code>;
-    then</p>
+    <ul>
+    <li>If set to <code>Off</code>, which is the default, no special processing
+    is performed. If a request or reply contains a <code>Via:</code> header,
+    it is passed through unchanged.</li>
 
-    <pre class="prettyprint lang-config">ProxyPassMatch "^/(.*\.gif)$" "http://backend.example.com/$1"</pre>
+    <li>If set to <code>On</code>, each request and reply will get a
+    <code>Via:</code> header line added for the current host.</li>
 
+    <li>If set to <code>Full</code>, each generated <code>Via:</code> header
+    line will additionally have the Apache httpd server version shown as a
+    <code>Via:</code> comment field.</li>
 
-    <p>will cause a local request for
-    <code>http://example.com/foo/bar.gif</code> to be internally converted
-    into a proxy request to <code>http://backend.example.com/foo/bar.gif</code>.</p>
-    <div class="note"><h3>Note</h3>
-      <p>The URL argument must be parsable as a URL <em>before</em> regexp
-      substitutions (as well as after).  This limits the matches you can use.
-      For instance, if we had used</p>
-      <pre class="prettyprint lang-config">ProxyPassMatch "^(/.*\.gif)$" "http://backend.example.com:8000$1"</pre>
+    <li>If set to <code>Block</code>, every proxy request will have all its
+    <code>Via:</code> header lines removed. No new <code>Via:</code> header will
+    be generated.</li>
+    </ul>
 
-      <p>in our previous example, it would fail with a syntax error
-      at server startup.  This is a bug (PR 46665 in the ASF bugzilla),
-      and the workaround is to reformulate the match:</p>
-      <pre class="prettyprint lang-config">ProxyPassMatch "^/(.*\.gif)$" "http://backend.example.com:8000/$1"</pre>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="forwardreverse" id="forwardreverse">Forward Proxies and Reverse
+       Proxies/Gateways</a></h2>
+      <p>Apache HTTP Server can be configured in both a <dfn>forward</dfn> and
+      <dfn>reverse</dfn> proxy (also known as <dfn>gateway</dfn>) mode.</p>
 
-    </div>
-    <p>The <code>!</code> directive is useful in situations where you don't want
-    to reverse-proxy a subdirectory.</p>
+      <p>An ordinary <dfn>forward proxy</dfn> is an intermediate
+      server that sits between the client and the <em>origin
+      server</em>.  In order to get content from the origin server,
+      the client sends a request to the proxy naming the origin server
+      as the target and the proxy then requests the content from the
+      origin server and returns it to the client.  The client must be
+      specially configured to use the forward proxy to access other
+      sites.</p>
 
-    <p>When used inside a <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> section, the first argument is omitted and the
-    regexp is obtained from the <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>.</p>
+      <p>A typical usage of a forward proxy is to provide Internet
+      access to internal clients that are otherwise restricted by a
+      firewall.  The forward proxy can also use caching (as provided
+      by <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) to reduce network usage.</p>
 
-    <p>If you require a more flexible reverse-proxy configuration, see the
-    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive with the
-    <code>[P]</code> flag.</p>
+      <p>The forward proxy is activated using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive.  Because
+      forward proxies allow clients to access arbitrary sites through
+      your server and to hide their true origin, it is essential that
+      you <a href="#access">secure your server</a> so that only
+      authorized clients can access the proxy before activating a
+      forward proxy.</p>
 
-    <div class="note">
-      <h3>Default Substitution</h3>
-      <p>When the URL parameter doesn't use any backreferences into the regular
-      expression, the original URL will be appended to the URL parameter.
-      </p>
-    </div>
+      <p>A <dfn>reverse proxy</dfn> (or <dfn>gateway</dfn>), by
+      contrast, appears to the client just like an ordinary web
+      server.  No special configuration on the client is necessary.
+      The client makes ordinary requests for content in the name-space
+      of the reverse proxy.  The reverse proxy then decides where to
+      send those requests, and returns the content as if it was itself
+      the origin.</p>
 
-    <div class="warning">
-      <h3>Security Warning</h3>
-      <p>Take care when constructing the target URL of the rule, considering
-        the security impact from allowing the client influence over the set of
-        URLs to which your server will act as a proxy.  Ensure that the scheme
-        and hostname part of the URL is either fixed, or does not allow the
-        client undue influence.</p>
-    </div>
+      <p>A typical usage of a reverse proxy is to provide Internet
+      users access to a server that is behind a firewall.  Reverse
+      proxies can also be used to balance load among several back-end
+      servers, or to provide caching for a slower back-end server.
+      In addition, reverse proxies can be used simply to bring
+      several servers into the same URL space.</p>
+
+      <p>A reverse proxy is activated using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive or the
+      <code>[P]</code> flag to the <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> directive.  It is
+      <strong>not</strong> necessary to turn <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> on in order to
+      configure a reverse proxy.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Basic Examples</a></h2>
+
+    <p>The examples below are only a very basic idea to help you
+    get started.  Please read the documentation on the individual
+    directives.</p>
+
+    <p>In addition, if you wish to have caching enabled, consult
+    the documentation from <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
 
+    <div class="example"><h3>Reverse Proxy</h3><pre class="prettyprint lang-config">ProxyPass "/foo" "http://foo.example.com/bar"
+ProxyPassReverse "/foo" "http://foo.example.com/bar"</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a> <a name="proxypassreverse" id="proxypassreverse">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the URL in HTTP response headers sent from a reverse
-proxied server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverse [<var>path</var>] <var>url</var>
-[<var>interpolate</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This directive lets Apache httpd adjust the URL in the <code>Location</code>,
-    <code>Content-Location</code> and <code>URI</code> headers on HTTP
-    redirect responses. This is essential when Apache httpd is used as a
-    reverse proxy (or gateway) to avoid by-passing the reverse proxy
-    because of HTTP redirects on the backend servers which stay behind
-    the reverse proxy.</p>
 
-    <p>Only the HTTP response headers specifically mentioned above
-    will be rewritten. Apache httpd will not rewrite other response
-    headers, nor will it by default rewrite URL references inside HTML pages.
-    This means that if the proxied content contains absolute URL
-    references, they will by-pass the proxy. To rewrite HTML content to
-    match the proxy, you must load and enable <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code>.
-    </p>
+    <div class="example"><h3>Forward Proxy</h3><pre class="prettyprint lang-config">ProxyRequests On
+ProxyVia On
 
-    <p><var>path</var> is the name of a local virtual path. <var>url</var> is a
-    partial URL for the remote server - the same way they are used for the
-    <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+&lt;Proxy "*"&gt;
+  Require host internal.example.com
+&lt;/Proxy&gt;</pre>
+</div>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="handler" id="handler">Access via Handler</a></h2>
 
-    <p>For example, suppose the local server has address
-    <code>http://example.com/</code>; then</p>
+      <p>You can also force a request to be handled as a reverse-proxy
+        request, by creating a suitable Handler pass-through. The example
+        configuration below will pass all requests for PHP scripts to the
+        specified FastCGI server using reverse proxy:
+      </p>
+
+      <div class="example"><h3>Reverse Proxy PHP scripts</h3><pre class="prettyprint lang-config">&lt;FilesMatch "\.php$"&gt;
+    # Unix sockets require 2.4.7 or later
+    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
+&lt;/FilesMatch&gt;</pre>
+</div>
 
-    <pre class="prettyprint lang-config">ProxyPass         "/mirror/foo/" "http://backend.example.com/"
-ProxyPassReverse  "/mirror/foo/" "http://backend.example.com/"
-ProxyPassReverseCookieDomain  "backend.example.com"  "public.example.com"
-ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
+      <p>This feature is available in Apache HTTP Server 2.4.10 and later.</p>
 
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="workers" id="workers">Workers</a></h2>
+      <p>The proxy manages the configuration of origin servers and their
+      communication parameters in objects called <dfn>workers</dfn>.
+      There are two built-in workers, the default forward proxy worker and the
+      default reverse proxy worker. Additional workers can be configured
+      explicitly.</p>
 
-    <p>will not only cause a local request for the
-    <code>http://example.com/mirror/foo/bar</code> to be internally converted
-    into a proxy request to <code>http://backend.example.com/bar</code>
-    (the functionality <code>ProxyPass</code> provides here). It also takes care
-    of redirects the server <code>backend.example.com</code> sends: when
-    <code>http://backend.example.com/bar</code> is redirected by him to
-    <code>http://backend.example.com/quux</code> Apache httpd adjusts this to
-    <code>http://example.com/mirror/foo/quux</code> before forwarding the HTTP
-    redirect response to the client. Note that the hostname used for
-    constructing the URL is chosen in respect to the setting of the <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code> directive.</p>
+      <p>The two default workers have a fixed configuration
+      and will be used if no other worker matches the request.
+      They do not use HTTP Keep-Alive or connection pooling.
+      The TCP connections to the origin server will instead be
+      opened and closed for each request.</p>
 
-    <p>Note that this <code class="directive">ProxyPassReverse</code> directive can
-    also be used in conjunction with the proxy pass-through feature
-    (<code>RewriteRule ...  [P]</code>) from <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-    because it doesn't depend on a corresponding <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+      <p>Explicitly configured workers are identified by their URL.
+      They are usually created and configured using
+      <code class="directive"><a href="#proxypass">ProxyPass</a></code> or
+      <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> when used
+      for a reverse proxy:</p>
 
-    <p>The optional <var>interpolate</var> keyword, used together with
-    <code class="directive">ProxyPassInterpolateEnv</code>, enables interpolation
-    of environment variables specified using the format <var>${VARNAME}</var>.
-    Note that interpolation is not supported within the scheme portion of a
-    URL.</p>
+      <pre class="prettyprint lang-config">ProxyPass "/example" "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
 
-    <p>When used inside a <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section, the first argument is omitted and the local
-    directory is obtained from the <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. The same occurs inside a <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> section, but will probably not work as
-    intended, as ProxyPassReverse will interpret the regexp literally as a
-    path; if needed in this situation, specify the ProxyPassReverse outside
-    the section, or in a separate <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> section.</p>
 
-    <p>This directive is not supported in <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> or <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code> sections.</p>
+      <p>This will create a worker associated with the origin server URL
+      <code>http://backend.example.com</code> and using the given timeout
+      values. When used in a forward proxy, workers are usually defined
+      via the <code class="directive"><a href="#proxyset">ProxySet</a></code> directive:</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</a> <a name="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the Domain string in Set-Cookie headers from a reverse-
-proxied server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverseCookieDomain <var>internal-domain</var>
-<var>public-domain</var> [<var>interpolate</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-<p>Usage is basically similar to
-<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, but instead of
-rewriting headers that are a URL, this rewrites the <code>domain</code>
-string in <code>Set-Cookie</code> headers.</p>
+      <pre class="prettyprint lang-config">ProxySet "http://backend.example.com" connectiontimeout=5 timeout=30</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a> <a name="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Adjusts the Path string in Set-Cookie headers from a reverse-
-proxied server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPassReverseCookiePath <var>internal-path</var>
-<var>public-path</var> [<var>interpolate</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-<p>
-Useful in conjunction with
-<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>
-in situations where backend URL paths are mapped to public paths on the
-reverse proxy. This directive rewrites the <code>path</code> string in
-<code>Set-Cookie</code> headers. If the beginning of the cookie path matches
-<var>internal-path</var>, the cookie path will be replaced with
-<var>public-path</var>.
-</p><p>
-In the example given with 
-<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, the directive:
-</p>
-    <pre class="prettyprint lang-config">ProxyPassReverseCookiePath  "/"  "/mirror/foo/"</pre>
 
-<p>
-will rewrite a cookie with backend path <code>/</code> (or
-<code>/example</code> or, in fact, anything) to <code>/mirror/foo/</code>.
-</p>
+      <p>or alternatively using <code class="directive"><a href="#proxy">Proxy</a></code>
+      and <code class="directive"><a href="#proxyset">ProxySet</a></code>:</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a> <a name="proxypreservehost" id="proxypreservehost">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use incoming Host HTTP request header for proxy
-request</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyPreserveHost On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyPreserveHost Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Usable in directory
-context in 2.3.3 and later.</td></tr>
-</table>
-    <p>When enabled, this option will pass the Host: line from the incoming
-    request to the proxied host, instead of the hostname specified in the
-    <code class="directive">ProxyPass</code> line.</p>
+      <pre class="prettyprint lang-config">&lt;Proxy "http://backend.example.com"&gt;
+  ProxySet connectiontimeout=5 timeout=30
+&lt;/Proxy&gt;</pre>
 
-    <p>This option should normally be turned <code>Off</code>. It is mostly
-    useful in special configurations like proxied mass name-based virtual
-    hosting, where the original Host header needs to be evaluated by the
-    backend server.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</a> <a name="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Network buffer size for proxied HTTP and FTP
-connections</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyReceiveBufferSize <var>bytes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyReceiveBufferSize 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>The <code class="directive">ProxyReceiveBufferSize</code> directive specifies an
-    explicit (TCP/IP) network buffer size for proxied HTTP and FTP connections,
-    for increased throughput. It has to be greater than <code>512</code> or set
-    to <code>0</code> to indicate that the system's default buffer size should
-    be used.</p>
+      <p>Using explicitly configured workers in the forward mode is
+      not very common, because forward proxies usually communicate with many
+      different origin servers. Creating explicit workers for some of the
+      origin servers can still be useful, if they are used very often.
+      Explicitly configured workers have no concept of forward or reverse
+      proxying by themselves. They encapsulate a common concept of
+      communication with origin servers. A worker created by
+      <code class="directive"><a href="#proxypass">ProxyPass</a></code> for use in a
+      reverse proxy will be also used for forward proxy requests whenever
+      the URL to the origin server matches the worker URL and vice versa.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyReceiveBufferSize 2048</pre>
-</div>
+      <p>The URL identifying a direct worker is the URL of its
+      origin server including any path components given:</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a> <a name="proxyremote" id="proxyremote">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remote proxy used to handle certain requests</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyRemote <var>match</var> <var>remote-server</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This defines remote proxies to this proxy. <var>match</var> is either the
-    name of a URL-scheme that the remote server supports, or a partial URL
-    for which the remote server should be used, or <code>*</code> to indicate
-    the server should be contacted for all requests. <var>remote-server</var> is
-    a partial URL for the remote server. Syntax:</p>
+     <pre class="prettyprint lang-config">ProxyPass "/examples" "http://backend.example.com/examples"
+ProxyPass "/docs" "http://backend.example.com/docs"</pre>
 
-    <div class="example"><p><code>
-      <dfn>remote-server</dfn> =
-          <var>scheme</var>://<var>hostname</var>[:<var>port</var>]
-    </code></p></div>
 
-    <p><var>scheme</var> is effectively the protocol that should be used to
-    communicate with the remote server; only <code>http</code> and <code>https</code>
-    are supported by this module. When using <code>https</code>, the requests
-    are forwarded through the remote proxy using the HTTP CONNECT method.</p>
+      <p>This example defines two different workers, each using a separate
+      connection pool and configuration.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyRemote "http://goodguys.example.com/" "http://mirrorguys.example.com:8000"
-ProxyRemote "*" "http://cleverproxy.localdomain"
-ProxyRemote "ftp" "http://ftpproxy.mydomain:8080"</pre>
-</div>
+      <div class="warning"><h3>Worker Sharing</h3>
+        <p>Worker sharing happens if the worker URLs overlap, which occurs when
+        the URL of some worker is a leading substring of the URL of another
+        worker defined later in the configuration file. In the following example</p>
 
-    <p>In the last example, the proxy will forward FTP requests, encapsulated
-    as yet another HTTP proxy request, to another proxy which can handle
-    them.</p>
+        <pre class="prettyprint lang-config">ProxyPass "/apps" "http://backend.example.com/" timeout=60
+ProxyPass "/examples" "http://backend.example.com/examples" timeout=10</pre>
 
-    <p>This option also supports reverse proxy configuration - a backend
-    webserver can be embedded within a virtualhost URL space even if that
-    server is hidden by another forward proxy.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyRemoteMatch" id="ProxyRemoteMatch">ProxyRemoteMatch</a> <a name="proxyremotematch" id="proxyremotematch">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remote proxy used to handle requests matched by regular
-expressions</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyRemoteMatch <var>regex</var> <var>remote-server</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>The <code class="directive">ProxyRemoteMatch</code> is identical to the
-    <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> directive, except the
-    first argument is a <a class="glossarylink" href="../glossary.html#regex" title="see glossary">regular expression</a>
-    match against the requested URL.</p>
+        <p>the second worker isn't actually created. Instead the first
+        worker is used. The benefit is, that there is only one connection pool,
+        so connections are more often reused. Note that all configuration attributes
+        given explicitly for the later worker will be ignored. This will be logged
+        as a warning. In the above example the resulting timeout value
+        for the URL <code>/examples</code> will be <code>60</code> instead
+        of <code>10</code>!</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyRequests" id="ProxyRequests">ProxyRequests</a> <a name="proxyrequests" id="proxyrequests">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables forward (standard) proxy requests</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyRequests On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyRequests Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This allows or prevents Apache httpd from functioning as a forward proxy
-    server. (Setting ProxyRequests to <code>Off</code> does not disable use of
-    the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.)</p>
+        <p>If you want to avoid worker sharing, sort your worker definitions
+        by URL length, starting with the longest worker URLs. If you want to maximize
+        worker sharing use the reverse sort order. See also the related warning about
+        ordering <code class="directive"><a href="#proxypass">ProxyPass</a></code> directives.</p>
 
-    <p>In a typical reverse proxy or gateway configuration, this
-    option should be set to
-    <code>Off</code>.</p>
+      </div> 
 
-    <p>In order to get the functionality of proxying HTTP or FTP sites, you
-    need also <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> or <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>
-    (or both) present in the server.</p>
+      <p>Explicitly configured workers come in two flavors:
+      <dfn>direct workers</dfn> and <dfn>(load) balancer workers</dfn>.
+      They support many important configuration attributes which are
+      described below in the <code class="directive"><a href="#proxypass">ProxyPass</a></code>
+      directive. The same attributes can also be set using
+      <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
 
-    <p>In order to get the functionality of (forward) proxying HTTPS sites, you
-    need <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> enabled in the server.</p>
+      <p>The set of options available for a direct worker
+      depends on the protocol, which is specified in the origin server URL.
+      Available protocols include <code>ajp</code>, <code>fcgi</code>,
+      <code>ftp</code>, <code>http</code> and <code>scgi</code>.</p>
 
-    <div class="warning"><h3>Warning</h3>
-      <p>Do not enable proxying with <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> until you have <a href="#access">secured your server</a>.  Open proxy servers are dangerous
-      both to your network and to the Internet at large.</p>
-    </div>
+      <p>Balancer workers are virtual workers that use direct workers known
+      as their members to actually handle the requests. Each balancer can
+      have multiple members. When it handles a request, it chooses a member
+      based on the configured load balancing algorithm.</p>
 
-<h3>See also</h3>
-<ul>
-<li><a href="#forwardreverse">Forward and Reverse Proxies/Gateways</a></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxySet" id="ProxySet">ProxySet</a> <a name="proxyset" id="proxyset">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set various Proxy balancer or member parameters</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxySet <var>url</var> <var>key=value [key=value ...]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>ProxySet is only available in Apache HTTP Server 2.2
-  and later.</td></tr>
-</table>
-    <p>This directive is used as an alternate method of setting any of the
-    parameters available to Proxy balancers and workers normally done via the
-    <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive. If used
-    within a <code>&lt;Proxy <var>balancer url|worker url</var>&gt;</code>
-    container directive, the <var>url</var> argument is not required. As a side
-    effect the respective balancer or worker gets created. This can be useful
-    when doing reverse proxying via a
-    <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> instead of a
-    <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive.</p>
+      <p>A balancer worker is created if its worker URL uses
+      <code>balancer</code> as the protocol scheme.
+      The balancer URL uniquely identifies the balancer worker.
+      Members are added to a balancer using
+      <code class="directive"><a href="#balancermember">BalancerMember</a></code>.</p>
 
-    <div class="example"><pre class="prettyprint lang-config">&lt;Proxy "balancer://hotcluster"&gt;
-    BalancerMember "http://www2.example.com:8080" loadfactor=1
-    BalancerMember "http://www3.example.com:8080" loadfactor=2
-    ProxySet lbmethod=bytraffic
-&lt;/Proxy&gt;</pre>
-</div>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="access" id="access">Controlling access to your proxy</a></h2>
+      <p>You can control who can access your proxy via the <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> control block as in
+      the following example:</p>
 
-    <pre class="prettyprint lang-config">&lt;Proxy "http://backend"&gt;
-    ProxySet keepalive=On
+      <pre class="prettyprint lang-config">&lt;Proxy "*"&gt;
+  Require ip 192.168.0
 &lt;/Proxy&gt;</pre>
 
 
-    <pre class="prettyprint lang-config">ProxySet "balancer://foo" lbmethod=bytraffic timeout=15</pre>
+      <p>For more information on access control directives, see
+      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
 
+      <p>Strictly limiting access is essential if you are using a
+      forward proxy (using the <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> directive).
+      Otherwise, your server can be used by any client to access
+      arbitrary hosts while hiding his or her true identity.  This is
+      dangerous both for your network and for the Internet at large.
+      When using a reverse proxy (using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive with
+      <code>ProxyRequests Off</code>), access control is less
+      critical because clients can only contact the hosts that you
+      have specifically configured.</p>
 
-    <pre class="prettyprint lang-config">ProxySet "ajp://backend:7001" timeout=15</pre>
+      <p><strong>See Also</strong> the <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a> environment variable.</p>
 
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="startup" id="startup">Slow Startup</a></h2>
+      <p>If you're using the <code class="directive"><a href="#proxyblock">ProxyBlock</a></code> directive, hostnames' IP addresses are looked up
+      and cached during startup for later match test. This may take a few
+      seconds (or more) depending on the speed with which the hostname lookups
+      occur.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="intranet" id="intranet">Intranet Proxy</a></h2>
+      <p>An Apache httpd proxy server situated in an intranet needs to forward
+      external requests through the company's firewall (for this, configure
+      the <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> directive
+      to forward the respective <var>scheme</var> to the firewall proxy).
+      However, when it has to
+      access resources within the intranet, it can bypass the firewall when
+      accessing hosts. The <code class="directive"><a href="#noproxy">NoProxy</a></code>
+      directive is useful for specifying which hosts belong to the intranet and
+      should be accessed directly.</p>
 
-   <div class="warning"><h3>Warning</h3>
-      <p>Keep in mind that the same parameter key can have a different meaning
-      depending whether it is applied to a balancer or a worker as shown by the two
-      examples above regarding timeout.</p>
-   </div>
+      <p>Users within an intranet tend to omit the local domain name from their
+      WWW requests, thus requesting "http://somehost/" instead of
+      <code>http://somehost.example.com/</code>. Some commercial proxy servers
+      let them get away with this and simply serve the request, implying a
+      configured local domain. When the <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> directive is used and the server is <a href="#proxyrequests">configured for proxy service</a>, Apache httpd can return
+      a redirect response and send the client to the correct, fully qualified,
+      server address. This is the preferred method since the user's bookmark
+      files will then contain fully qualified hosts.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="envsettings" id="envsettings">Protocol Adjustments</a></h2>
+      <p>For circumstances where <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> is sending
+      requests to an origin server that doesn't properly implement
+      keepalives or HTTP/1.1, there are two <a href="../env.html">environment variables</a> that can force the
+      request to use HTTP/1.0 with no keepalive. These are set via the
+      <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> directive.</p>
 
+      <p>These are the <code>force-proxy-request-1.0</code> and
+      <code>proxy-nokeepalive</code> notes.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxySourceAddress" id="ProxySourceAddress">ProxySourceAddress</a> <a name="proxysourceaddress" id="proxysourceaddress">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set local IP address for outgoing proxy connections</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxySourceAddress <var>address</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.3.9 and later</td></tr>
-</table>
-    <p>This directive allows to set a specific local address to bind to when connecting
-    to a backend server.</p>
+      <pre class="prettyprint lang-config">&lt;Location "/buggyappserver/"&gt;
+  ProxyPass "http://buggyappserver:7001/foo/"
+  SetEnv force-proxy-request-1.0 1
+  SetEnv proxy-nokeepalive 1
+&lt;/Location&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyStatus" id="ProxyStatus">ProxyStatus</a> <a name="proxystatus" id="proxystatus">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Show Proxy LoadBalancer status in mod_status</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyStatus Off|On|Full</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyStatus Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in version 2.2 and later</td></tr>
-</table>
-    <p>This directive determines whether or not proxy
-    loadbalancer status data is displayed via the <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>
-    server-status page.</p>
-    <div class="note"><h3>Note</h3>
-      <p><strong>Full</strong> is synonymous with <strong>On</strong></p>
-    </div>
 
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="request-bodies" id="request-bodies">Request Bodies</a></h2>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a> <a name="proxytimeout" id="proxytimeout">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Network timeout for proxied requests</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyTimeout <var>seconds</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Value of <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This directive allows a user to specifiy a timeout on proxy requests.
-    This is useful when you have a slow/buggy appserver which hangs, and you
-    would rather just return a timeout and fail gracefully instead of waiting
-    however long it takes the server to return.</p>
+    <p>Some request methods such as POST include a request body.
+    The HTTP protocol requires that requests which include a body
+    either use chunked transfer encoding or send a
+    <code>Content-Length</code> request header.  When passing these
+    requests on to the origin server, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
+    will always attempt to send the <code>Content-Length</code>.  But
+    if the body is large and the original request used chunked
+    encoding, then chunked encoding may also be used in the upstream
+    request.  You can control this selection using <a href="../env.html">environment variables</a>.  Setting
+    <code>proxy-sendcl</code> ensures maximum compatibility with
+    upstream servers by always sending the
+    <code>Content-Length</code>, while setting
+    <code>proxy-sendchunked</code> minimizes resource usage by using
+    chunked encoding.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyVia" id="ProxyVia">ProxyVia</a> <a name="proxyvia" id="proxyvia">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Information provided in the <code>Via</code> HTTP response
-header for proxied requests</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyVia On|Off|Full|Block</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyVia Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>This directive controls the use of the <code>Via:</code> HTTP
-    header by the proxy. Its intended use is to control the flow of
-    proxy requests along a chain of proxy servers.  See <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1), section
-    14.45 for an explanation of <code>Via:</code> header lines.</p>
+    <p>Under some circumstances, the server must spool request bodies
+    to disk to satisfy the requested handling of request bodies.  For
+    example, this spooling will occur if the original body was sent with
+    chunked encoding (and is large), but the administrator has
+    asked for backend requests to be sent with Content-Length or as HTTP/1.0.
+    This spooling can also occur if the request body already has a
+    Content-Length header, but the server is configured to filter incoming
+    request bodies.</p>
 
-    <ul>
-    <li>If set to <code>Off</code>, which is the default, no special processing
-    is performed. If a request or reply contains a <code>Via:</code> header,
-    it is passed through unchanged.</li>
+    <p><code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> only applies to
+    request bodies that the server will spool to disk</p>
 
-    <li>If set to <code>On</code>, each request and reply will get a
-    <code>Via:</code> header line added for the current host.</li>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="x-headers" id="x-headers">Reverse Proxy Request Headers</a></h2>
 
-    <li>If set to <code>Full</code>, each generated <code>Via:</code> header
-    line will additionally have the Apache httpd server version shown as a
-    <code>Via:</code> comment field.</li>
+    <p>When acting in a reverse-proxy mode (using the <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive, for example),
+    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> adds several request headers in
+    order to pass information to the origin server. These headers
+    are:</p>
 
-    <li>If set to <code>Block</code>, every proxy request will have all its
-    <code>Via:</code> header lines removed. No new <code>Via:</code> header will
-    be generated.</li>
-    </ul>
+    <dl>
+      <dt><code>X-Forwarded-For</code></dt>
+      <dd>The IP address of the client.</dd>
+      <dt><code>X-Forwarded-Host</code></dt>
+      <dd>The original host requested by the client in the <code>Host</code>
+       HTTP request header.</dd>
+      <dt><code>X-Forwarded-Server</code></dt>
+      <dd>The hostname of the proxy server.</dd>
+    </dl>
 
-</div>
+    <p>Be careful when using these headers on the origin server, since
+    they will contain more than one (comma-separated) value if the
+    original request already contained one of these headers. For
+    example, you can use <code>%{X-Forwarded-For}i</code> in the log
+    format string of the origin server to log the original clients IP
+    address, but you may get more than one address if the request
+    passes through several proxies.</p>
+
+    <p>See also the <code class="directive"><a href="#proxypreservehost">ProxyPreserveHost</a></code> and <code class="directive"><a href="#proxyvia">ProxyVia</a></code> directives, which control
+    other request headers.</p>
+
+    <p>Note:  If you need to specify custom request headers to be
+    added to the forwarded request, use the 
+    <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>
+    directive.</p>
+
+   </div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy.html" title="English">&nbsp;en&nbsp;</a> |
index f3da25edd47191b9952899f7bba1cf926b184168..ef187da79c72d890b19e40b68591fc0fffedc2df 100644 (file)
 <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="forwardreverse" id="forwardreverse">Mandataires directs et
-    mandataires/passerelles inverses</a></h2>
-      <p>Le serveur HTTP Apache peut être configuré dans les deux modes mandataire
-      <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nommé
-      mode <dfn>passerelle</dfn>).</p>
+<div class="directive-section"><h2><a name="balancergrowth" id="balancergrowth">Directive</a> <a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de membres supplémentaires pouvant être ajoutés
+après la configuration initiale</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerGrowth <var>#</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BalancerGrowth 5</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>BalancerGrowth est disponible depuis la version 2.3.13 du
+serveur HTTP Apache</td></tr>
+</table>
+    <p>Cette directive permet de définir le nombre de membres pouvant
+    être ajoutés au groupe de répartition de charge préconfiguré d'un
+    serveur virtuel. Elle n'est active que si le groupe a été
+    préconfiguré avec un membre au minimum.</p>
 
-      <p>Un <dfn>mandataire direct</dfn> standard est un serveur
-      intermédiaire qui s'intercale entre le client et le <em>serveur
-      demandé</em>. Pour obtenir un contenu hébergé par
-      le serveur demandé, le client envoie une requête au
-      mandataire en nommant le serveur demandé comme
-      cible, puis le mandataire extrait le contenu depuis le
-      serveur demandé et le renvoie enfin au client. Le client doit être
-      configuré de manière appropriée pour pouvoir utiliser le mandataire
-      direct afin d'accéder à d'autres sites.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="balancerinherit" id="balancerinherit">Directive</a> <a name="BalancerInherit" id="BalancerInherit">BalancerInherit</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Héritage des membres du groupes de répartition de
+    charge du mandataire définis au niveau du serveur principal</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerInherit On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BalancerInherit On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur
+    HTTP Apache.</td></tr>
+</table>
+        <p>Cette directive permet d'attribuer au serveur virtuel courant
+       l'héritage des membres de groupes de répartition de charge
+       définis au niveau du serveur
+       principal. Elle ne doit pas être activée si vous
+       utilisez la fonctionnalité de modifications dynamiques du
+       gestionnaire de répartition de charge (Balancer Manager) pour
+       éviter des problèmes et des comportements inattendus.</p>
+        <p>Les définitions au niveau du serveur principal constituent
+       les définitions par défaut au niveau des serveurs virtuels.</p>
+       
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="balancermember" id="balancermember">Directive</a> <a name="BalancerMember" id="BalancerMember">BalancerMember</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un membre à un groupe de répartition de
+charge</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>clé=valeur [clé=valeur ...]]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 du serveur HTTP Apache.</td></tr>
+</table>
+    <p>Cette directive permet d'ajouter un membre à un groupe de
+    répartition de charge. Elle peut se trouver dans un conteneur
+    <code>&lt;Proxy <var>balancer://</var>...&gt;</code>, et accepte
+    tous les paramètres de paires clé/valeur que supporte la directive
+    <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
+    <p>La directive <code class="directive">BalancerMember</code> accepte un paramètre
+    supplémentaire : <var>loadfactor</var>. Il s'agit du facteur de
+    charge du membre - un nombre entre 1 (valeur par défaut) et 100, qui
+    définit la charge à appliquer au membre en question.</p>
+    <p>L'argument <var>balancerurl</var> n'est requis que s'il ne se trouve pas
+    dèjà dans la directive de conteneur <code>&lt;Proxy
+    <var>balancer://</var>...&gt;</code>. Il correspond à l'URL d'un
+    répartiteur de charge défini par une directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
+    <p>La partie chemin de l'URL du répartiteur dans toute directive de
+    conteneur <code>&lt;Proxy <var>balancer://</var>...&gt;</code> est
+    ignorée.</p>
+    <p>En particulier, le slash de fin de l'URL d'un
+    <code class="directive">BalancerMember</code> doit être supprimé.</p>
 
-      <p>L'accès à Internet depuis des clients situés derrière un
-      pare-feu est une utilisation typique du mandataire direct. Le
-      mandataire direct peut aussi utiliser la mise en cache (fournie
-      par <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) pour réduire la charge du
-      réseau.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="balancerpersist" id="balancerpersist">Directive</a> <a name="BalancerPersist" id="BalancerPersist">BalancerPersist</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de conserver les changements effectués par le
+    gestionnaire de répartition de charge après un redémarrage du
+    serveur.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerPersist On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BalancerPersist Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>BalancerPersist n'est disponible qu'à partir de la
+    version 2.4.4 du serveur HTTP Apache.</td></tr>
+</table>
+        <p>Cette directive permet de conserver le contenu de l'espace
+       mémoire partagé associé aux répartiteurs de charge et à leurs
+       membres après un redémarrage du serveur. Ces modifications
+       locales ne sont ainsi pas perdues lors des transitions d'état
+       dues à un redémarrage.</p>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="noproxy" id="noproxy">Directive</a> <a name="NoProxy" id="NoProxy">NoProxy</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Serveurs, domaines ou réseaux auquels on se connectera
+directement</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>NoProxy <var>domaine</var> [<var>domaine</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Cette directive n'a d'utilité que pour les serveurs mandataires
+    Apache httpd au sein d'Intranets. La directive
+    <code class="directive">NoProxy</code> permet de spécifier une liste de
+    sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés
+    par des espaces. Une requête pour un serveur qui correspond à un ou
+    plusieurs critères sera toujours servie par ce serveur directement,
+    sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par
+    la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p>
 
-      <p>La fonctionnalité de mandataire direct est activée via la
-      directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>.
-      Comme les mandataires directs permettent aux clients d'accéder à
-      des sites quelconques via votre serveur et de dissimuler leur
-      véritable origine, il est indispensable de <a href="#access">sécuriser votre serveur</a> de façon à ce que seuls
-      les clients autorisés puissent accéder à votre serveur avant
-      d'activer la fonctionnalité de mandataire direct.</p>
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote  *  http://firewall.example.com:81
+NoProxy         .example.com 192.168.112.0/21</pre>
+</div>
 
-      <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>),
-      quant à lui, apparaît au client comme un serveur web standard.
-      Aucune configuration particulière du client n'est nécessaire. Le
-      client adresse ses demandes de contenus ordinaires dans l'espace
-      de nommage du mandataire inverse. Ce dernier décide alors où
-      envoyer ces requêtes, et renvoie le contenu au client comme s'il
-      l'hébergeait lui-même.</p>
+    <p>Le type des arguments <var>serveur</var> de la directive
+    <code class="directive">NoProxy</code> appartiennent à la liste suivante
+    :</p>
 
-      <p>L'accès d'utilisateurs depuis Internet vers un serveur situé
-      derrière un pare-feu est une utilisation typique du mandataire
-      inverse. On peut aussi utiliser les mandataires inverses pour
-      mettre en oeuvre une répartition de charge entre plusieurs
-      serveurs en arrière-plan, ou fournir un cache pour un serveur
-      d'arrière-plan plus lent. Les mandataires inverses peuvent aussi
-      tout simplement servir à rassembler plusieurs serveurs dans le
-      même espace de nommage d'URLs.</p>
+    <dl>
+    
+    <dt><var><a name="domain" id="domain">Domaine</a></var></dt>
+    <dd>
+    <p>Un <dfn>domaine</dfn> est ici un nom de domaine DNS partiellement
+    qualifié précédé d'un point. Il représente une liste de serveurs qui
+    appartiennent logiquement au même domaine ou à la même zonz DNS
+    (en d'autres termes, les nom des serveurs se terminent tous par
+    <var>domaine</var>).</p>
 
-      <p>La fonctionnalité de mandataire inverse est activée via la
-      directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou
-      le drapeau <code>[P]</code> de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Il n'est
-      <strong>pas</strong> nécessaire de définir <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> pour configurer
-      un mandataire inverse.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples simples</a></h2>
+    <div class="example"><h3>Exemple</h3><p><code>
+      .com .example.org.
+    </code></p></div>
 
-    <p>Les exemples ci-dessous illustrent de manière très basique la
-    mise en oeuvre de la fonctionnalité de mandataire et ne sont là que
-    pour vous aider à démarrer. Reportez-vous à la documentation de
-    chaque directive.</p>
+    <p>Pour faire la distinction entre <var>domaine</var>s et <var><a href="#hostname">nom d'hôte</a></var>s (des points de vue à la fois
+    syntaxique et
+    sémantique, un domaine DNS pouvant aussi avoir un enregistrement DNS
+    de type A !), les <var>domaine</var>s sont toujours spécifiés en les
+    préfixant par un point.</p>
 
-    <p>Si en outre, vous désirez activer la mise en cache, consultez la
-    documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
+    <div class="note"><h3>Note</h3>
+      <p>Les comparaisons de noms de domaines s'effectuent sans tenir
+      compte de la casse, et les parties droites des <var>Domaine</var>s
+      sont toujours censées correspondre à la racine de l'arborescence
+      DNS, si bien que les domaines <code>.ExEmple.com</code> et
+      <code>.example.com.</code> (notez le point à la fin du nom) sont
+      considérés comme identiques. Comme une comparaison de domaines ne
+      nécessite pas de recherche DNS, elle est beaucoup plus efficace
+      qu'une comparaison de sous-réseaux.</p>
+    </div></dd>
 
-    <div class="example"><h3>Mandataire inverse</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar
-ProxyPassReverse /foo http://foo.example.com/bar</pre>
-</div>
+    
+    <dt><var><a name="subnet" id="subnet">Sous-réseau</a></var></dt>
+    <dd>
+    <p>Un <dfn>Sous-réseau</dfn> est une adresse internet partiellement
+    qualifiée sous forme numérique (quatre nombres séparés par des
+    points), optionnellement suivie d'un slash et du masque de
+    sous-réseau spécifiant le nombre de bits significatifs dans le
+    <var>Sous-réseau</var>. Il représente un sous-réseau de serveurs qui
+    peuvent être atteints depuis la même interface réseau. En l'absence
+    de masque de sous-réseau explicite, il est sous-entendu que les
+    digits manquants (ou caractères 0) de fin spécifient le masque de
+    sous-réseau (Dans ce cas, le masque de sous-réseau ne peut être
+    qu'un multiple de 8). Voici quelques exemples :</p>
 
-    <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On
-ProxyVia On
+    <dl>
+    <dt><code>192.168</code> ou <code>192.168.0.0</code></dt>
+    <dd>le sous-réseau 192.168.0.0 avec un masque de sous-réseau
+    implicite de 16 bits significatifs (parfois exprimé sous la forme
+    <code>255.255.0.0</code>)</dd>
+    <dt><code>192.168.112.0/21</code></dt>
+    <dd>le sous-réseau <code>192.168.112.0/21</code> avec un masque de
+    sous-réseau implicite de 21 bits significatifs (parfois exprimé
+    sous la forme<code>255.255.248.0</code>)</dd>
+    </dl>
 
-&lt;Proxy *&gt;
-  Require host internal.example.com
-&lt;/Proxy&gt;</pre>
-</div>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="handler" id="handler">Accès via un gestionnaire</a></h2>
+    <p>Comme cas extrêmes, un <em>Sous-réseau</em> avec un masque de
+    sous-réseau de 32 bits significatifs est équivalent à une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-réseau</em> avec un masque de
+    sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est
+    identique à la constante <var>_Default_</var>, et peut correspondre
+    à toute adresse IP.</p></dd>
 
-    <p>Vous pouvez aussi forcer le traitement d'une requête en tant que
-    requête de mandataire inverse en créant un gestionnaire de transfert
-    approprié. Dans l'exemple suivant, toutes les requêtes pour
-    des scripts PHP seront transmises au serveur FastCGI
-    spécifié via un mandat inverse :
-    </p>
+    
+    <dt><var><a name="ipaddr" id="ipaddr">Adresse IP</a></var></dt>
+    <dd>
+    <p>Une <dfn>Adresse IP</dfn> est une adresse internet pleinement
+    qualifiée sous forme numérique (quatre nombres séparés par des
+    points). En général, cette adresse représente un serveur, mais elle
+    ne doit pas nécessairement correspondre à un nom de domaine DNS.</p>
+    <div class="example"><h3>Exemple</h3><p><code>
+      192.168.123.7
+    </code></p></div>
 
-    <div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
-    # Les sockets Unix nécessitent une version 2.4.7 ou supérieure du
-    # serveur HTTP Apache
-    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
-&lt;/FilesMatch&gt;</pre>
-</div>
-
-      <p>Cette fonctionnalité est disponible à partir de la version
-      2.4.10 du serveur HTTP Apache.</p>
+    <div class="note"><h3>Note</h3>
+      <p>Une <dfn>Adresse IP</dfn> ne nécessite pas de résolution DNS,
+      et peut ainsi s'avérer plus efficace quant aux performances
+      d'Apache.</p>
+    </div></dd>
 
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="workers" id="workers">Workers</a></h2>
-      <p>Le mandataire gère la configuration et les paramètres de
-      communication des serveurs originaux au sein d'objets nommés
-      <dfn>workers</dfn>. Deux types de worker sont fournis : le worker
-      par défaut du mandataire direct et le worker par défaut du
-      mandataire inverse. Il est aussi possible de définir explicitement
-      des workers supplémentaires.</p>
+    
+    <dt><var><a name="hostname" id="hostname">Nom de serveur</a></var></dt>
+    <dd>
+    <p>Un <dfn>Nom de serveur</dfn> est un nom de domaine DNS pleinement
+    qualifié qui peut être résolu en une ou plusieurs adresses IP par le
+    service de noms de domaines DNS. Il représente un hôte logique (par
+    opposition aux <var><a href="#domain">Domaine</a></var>s, voir
+    ci-dessus), et doit pouvoir être résolu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
+    d'hôtes avec différentes <var><a href="#ipaddr">adresses
+    IP</a></var>).</p>
 
-      <p>Les deux workers par défaut possèdent une configuration figée
-      et seront utilisés si aucun autre worker ne correspond à la
-      requête. Ils n'utilisent ni les jeux de connexions (connection
-      pooling), ni les
-      connexions HTTP persistantes (Keep-Alive). En effet, les
-      connexions TCP vers le serveur original sont fermées et ouvertes
-      pour chaque requête.</p>
+    <div class="example"><h3>Exemples</h3><p><code>
+      prep.ai.example.edu<br />
+      www.example.org
+    </code></p></div>
 
-      <p>Les workers définis explicitement sont identifiés par leur URL.
-      Ils sont en général définis via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> lorsqu'on les
-      utilise dans le cadre d'un mandataire inverse :</p>
+    <div class="note"><h3>Note</h3>
+      <p>Dans de nombreuses situations, il est plus efficace de
+      spécifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
+      <var>Nom de serveur</var> car cela évite d'avoir à effectuer une
+      recherche DNS. La résolution de nom dans Apache httpd peut prendre un
+      temps très long lorsque la connexion avec le serveur de noms
+      utilise une liaison PPP lente.</p>
+      <p>Les comparaisons de <var>Nom de serveur</var> s'effectuent sans tenir
+      compte de la casse, et les parties droites des <var>Noms de serveur</var>
+      sont toujours censées correspondre à la racine de l'arborescence
+      DNS, si bien que les domaines <code>WWW.ExEmple.com</code> et
+      <code>www.example.com.</code> (notez le point à la fin du nom) sont
+      considérés comme identiques.</p>
+     </div></dd>
+    </dl>
 
-      <div class="example"><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</pre>
+<h3>Voir aussi</h3>
+<ul>
+<li><a href="../dns-caveats.html">Problèmes liés au DNS</a></li>
+</ul>
 </div>
-      
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy">&lt;Proxy&gt;</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
+mandatées</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>&lt;Proxy <var>url-avec-jokers</var>&gt; ...&lt;/Proxy&gt;</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Les directives situées dans une section <code class="directive">&lt;Proxy&gt;</code> ne s'appliquent qu'au contenu
+    mandaté concerné. Les jokers de style shell sont autorisés.</p>
 
-      <p>Cette directive va créer un worker associé à l'URL du serveur
-      original <code>http://backend.example.com</code>, et utilisant les
-      valeurs de timeout données. Lorsqu'ils sont utilisés dans le cadre
-      d'un mandataire direct, les workers sont en général définis via la
-      directive <code class="directive"><a href="#proxyset">ProxySet</a></code>,</p>
+    <p>Par exemple, les lignes suivantes n'autoriseront à accéder à un
+    contenu via votre serveur mandataire que les hôtes appartenant à
+    <code>votre-reseau.example.com</code> :</p>
 
-      <div class="example"><pre class="prettyprint lang-config">ProxySet http://backend.example.com connectiontimeout=5 timeout=30</pre>
-</div>
-      
+    <pre class="prettyprint lang-config">&lt;Proxy *&gt;
+  Require host votre-reseau.example.com
+&lt;/Proxy&gt;</pre>
 
-      <p>ou encore via les directives <code class="directive"><a href="#proxy">Proxy</a></code> et <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p>
 
-      <pre class="prettyprint lang-config">&lt;Proxy http://backend.example.com&gt;
-  ProxySet connectiontimeout=5 timeout=30
+    <p>Dans l'exemple suivant, tous les fichiers du répertoire
+    <code>foo</code> de <code>example.com</code> seront traités par le
+    filtre <code>INCLUDES</code> lorsqu'ils seront envoyés par
+    l'intermédiaire du serveur mandataire :</p>
+
+    <pre class="prettyprint lang-config">&lt;Proxy http://example.com/foo/*&gt;
+  SetOutputFilter INCLUDES
 &lt;/Proxy&gt;</pre>
 
 
-      <p>L'utilisation de workers définis explicitement dans le mode
-      mandataire direct n'est pas très courante, car les mandataires
-      directs communiquent en général avec de nombreux serveurs
-      originaux. La création explicite de workers pour certains serveurs
-      originaux peut cependant s'avérer utile si ces serveurs sont
-      très souvent sollicités. A leur niveau, les workers explicitement
-      définis ne possèdent aucune notion de mandataire direct ou
-      inverse. Ils encapsulent un concept de communication commun avec
-      les serveurs originaux. Un worker créé via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour être utilisé dans le
-      cadre d'un mandataire inverse sera aussi utilisé dans le cadre
-      d'un mandataire directe chaque fois que l'URL vers le serveur
-      original correspondra à l'URL du worker, et vice versa.</p>
+    <div class="note"><h3>Différences avec la section de configuration Location</h3>
+      <p>Une URL d'arrière-plan sera concernée par le conteneur Proxy si
+      elle commence par la <var>url-avec-jokers</var>, même si le
+      dernier segment de chemin de la directive ne correspond qu'à un
+      préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, &lt;Proxy
+      http://example.com/foo&gt; correspondra entre autres aux URLs
+      http://example.com/foo, http://example.com/foo/bar, et
+      http://example.com/foobar. La correspondance de l'URL finale
+      diffère du comportement de la section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> qui, pour le cas de cette note,
+      traitera le segment de chemin final comme s'il se terminait par un
+      slash.</p>
+      <p>Pour un contrôle plus fin de la correspondance des URL, voir la
+      directive <code class="directive">&lt;ProxyMatch&gt;</code>.</p>
+    </div>
 
-      <p>L'URL qui identifie un worker correspond à l'URL de son serveur
-      original, y compris un éventuel chemin donné :</p>
 
-      <pre class="prettyprint lang-config">ProxyPass /examples http://backend.example.com/examples
-ProxyPass /docs http://backend.example.com/docs</pre>
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</a></code></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyaddheaders" id="proxyaddheaders">Directive</a> <a name="ProxyAddHeaders" id="ProxyAddHeaders">ProxyAddHeaders</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des informations à propos du mandataire aux
+en-têtes X-Forwarded-*</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyAddHeaders Off|On</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyAddHeaders On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.10</td></tr>
+</table>
+    <p>Cette directive permet de passer au serveur d'arrière-plan des
+    informations à propos du mandataire via les en-têtes HTTP
+    X-Forwarded-For, X-Forwarded-Host et X-Forwarded-Server.</p>
+    <div class="note"><h3>Utilité</h3>
+     <p>Cette option n'est utile que dans le cas du mandat HTTP traité
+     par <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>.</p>
+    </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxybadheader" id="proxybadheader">Directive</a> <a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la manière de traiter les lignes d'en-tête
+incorrectes d'une réponse</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyBadHeader IsError</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>La directive <code class="directive">ProxyBadHeader</code> permet de
+    déterminer le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> lorsqu'il
+    reçoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est
+    à dire ne contenant pas de caractère ':') en provenance du serveur
+    original. Les arguments disponibles sont :</p>
 
-      <p>Dans cet exemple, deux workers différents sont définis, chacun
-      d'eux utilisant des configurations et jeux de connexions
-      séparés.</p>
+    <dl>
+    <dt><code>IsError</code></dt>
+    <dd>Annule la requête et renvoie une réponse de code 502 (mauvaise
+    passerelle). C'est le comportement par défaut.</dd>
 
-      <div class="warning"><h3>Partage de workers</h3>
-        <p>Le partage de workers intervient lorsque les URLs des workers
-       s'entrecoupent, ce qui arrive lorsque l'URL d'un worker
-       correspond au début de l'URL d'un autre worker défini plus loin
-       dans le fichier de configuration. Dans l'exemple suivant,</p>
+    <dt><code>Ignore</code></dt>
+    <dd>Traite les lignes d'en-tête incorrectes comme si elles n'avaient
+    pas été envoyées.</dd>
 
-        <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60
-ProxyPass /examples http://backend.example.com/examples timeout=10</pre>
+    <dt><code>StartBody</code></dt>
+    <dd>A la réception de la première ligne d'en-tête incorrecte, les
+    autres en-têtes sont lus et ce qui reste est traité en tant que
+    corps. Ceci facilite la prise en compte des serveurs d'arrière-plan
+    bogués qui oublient d'insérer une ligne vide entre les
+    en-têtes et le corps.</dd>
+    </dl>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyblock" id="proxyblock">Directive</a> <a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Termes, serveurs ou domaines bloqués par le
+mandataire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>terme</var>|<var>serveur</var>|<var>domaine</var>
+[<var>terme</var>|<var>serveur</var>|<var>domaine</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>La directive <code class="directive">ProxyBlock</code> permet de
+    spécifier une liste de termes, serveurs et/ou domaines, séparés par
+    des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des
+    sites dont les noms contiennent des termes, noms de serveur ou
+    domaine correspondants seront <em>bloqués</em> par le serveur
+    mandataire. La module proxy va aussi tenter de déterminer les
+    adresses IP des éléments de la liste qui peuvent correspondre à des
+    noms d'hôtes au cours du démarrage, et les mettra en cache à des
+    fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du
+    serveur.</p>
 
-        <p>le second worker n'est pas vraiment créé. C'est le premier
-       worker qui est en fait utilisé. L'avantage de ceci réside dans
-       le fait qu'il n'existe qu'un seul jeu de connexions, ces
-       dernières étant donc réutilisées plus souvent. Notez que tous
-       les attributs de configuration définis explicitement pour le
-       deuxième worker seront ignorés, ce qui sera journalisé en tant
-       qu'avertissement. Ainsi, dans l'exemple ci-dessus, la valeur de
-       timeout retenue pour l'URL <code>/exemples</code> sera
-       <code>60</code>, et non <code>10</code> !</p>
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</pre>
+</div>
 
-        <p>Si vous voulez empêcher le partage de workers, classez vos
-       définitions de workers selon la longueur des URLs, de la plus
-       longue à la plus courte. Si au contraire vous voulez favoriser
-       ce partage, utilisez l'ordre de classement inverse. Voir aussi
-       l'avertissement à propos de l'ordre de classement des directives
-       <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
+    <p>Notez qu'<code>example</code> suffirait aussi pour atteindre
+    ces sites.</p>
 
-      </div> 
+    <p>Hosts conviendrait aussi s'il était référencé par adresse IP.</p>
 
-      <p>Les workers définis explicitement sont de deux sortes :
-      <dfn>workers directs</dfn> et <dfn>workers de répartition (de
-      charge)</dfn>. Ils supportent de nombreux attributs de
-      configuration importants décrits dans la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Ces mêmes attributs
-      peuvent aussi être définis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
+    <p>Notez aussi que</p>
 
-      <p>Le jeu d'options disponibles pour un worker direct dépend du
-      protocole spécifié dans l'URL du serveur original. Les protocoles
-      disponibles comprennent <code>ajp</code>, <code>fcgi</code>,
-      <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p>
+    <pre class="prettyprint lang-config">ProxyBlock *</pre>
 
-      <p>Les workers de répartition sont des workers virtuels qui
-      utilisent les workers directs, connus comme faisant partie de leurs
-      membres, pour le traitement effectif des requêtes. Chaque
-      répartiteur peut comporter plusieurs membres. Lorsqu'il traite une
-      requête, il choisit un de ses membres en fonction de l'algorithme
-      de répartition de charge défini.</p>
-
-      <p>Un worker de répartition est créé si son URL de worker comporte
-      <code>balancer</code> comme indicateur de protocole. L'URL du
-      répartiteur permet d'identifier de manière unique le worker de
-      répartition. La directive <code class="directive"><a href="#balancermember">BalancerMember</a></code> permet d'ajouter des
-      membres au répartiteur.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="access" id="access">Contrôler l'accès à votre
-    mandataire</a></h2>
-      <p>Vous pouvez restreindre l'accès à votre mandataire via le bloc
-      de contrôle <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> comme dans
-      l'exemple suivant :</p>
-
-      <pre class="prettyprint lang-config">&lt;Proxy *&gt;
-  Require ip 192.168.0
-&lt;/Proxy&gt;</pre>
-
-
-      <p>Pour plus de détails sur les directives de contrôle d'accès,
-      voir la documentation du module
-      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
-
-      <p>Restreindre l'accès de manière stricte est essentiel si vous
-      mettez en oeuvre un mandataire direct (en définissant la directive
-      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> à "on").
-      Dans le cas contraire, votre serveur pourrait être utilisé par
-      n'importe quel client pour accéder à des serveurs quelconques,
-      tout en masquant sa véritable identité. Ceci représente un danger
-      non seulement pour votre réseau, mais aussi pour l'Internet au
-      sens large. Dans le cas de la mise en oeuvre d'un mandataire
-      inverse (en utilisant la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> avec <code>ProxyRequests Off</code>), le contrôle
-      d'accès est moins critique car les clients ne peuvent contacter
-      que les serveurs que vous avez spécifiés.</p>
-
-      <p><strong>Voir aussi</strong> la variable d'environnement <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="startup" id="startup">Ralentissement au démarrage</a></h2>
-      <p>Si vous utilisez la directive <code class="directive"><a href="#proxyblock">ProxyBlock</a></code>, les noms d'hôtes sont résolus en adresses
-      IP puis ces dernières mises en cache au cours du démarrage
-      à des fins de tests de comparaisons ultérieurs. Ce processus peut
-      durer plusieurs secondes (ou d'avantage) en fonction de la vitesse
-      à laquelle s'effectue la résolution des noms d'hôtes.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="intranet" id="intranet">Mandataire en Intranet</a></h2>
-      <p>Un serveur mandataire Apache httpd situé à l'intérieur d'un Intranet
-      doit faire suivre les requêtes destinées à un serveur externe à
-      travers le pare-feu de l'entreprise (pour ce faire, définissez la
-      directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de
-      façon à ce qu'elle fasse suivre le <var>protocole</var> concerné
-      vers le mandataire du pare-feu). Cependant, lorsqu'il doit accéder
-      à des ressources situées dans l'Intranet, il peut se passer du
-      pare-feu pour accéder aux serveurs. A cet effet, la directive
-      <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de
-      spécifier quels hôtes appartiennent à l'Intranet et peuvent donc
-      être accédés directement.</p>
-
-      <p>Les utilisateurs d'un Intranet ont tendance à oublier le nom du
-      domaine local dans leurs requêtes WWW, et demandent par exemple
-      "http://un-serveur/" au lieu de
-      <code>http://un-serveur.example.com/</code>. Certains serveurs
-      mandataires commerciaux acceptent ce genre de requête et les
-      traitent simplement en utilisant un nom de domaine local
-      implicite. Lorsque la directive <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> est utilisée et si le
-      serveur est <a href="#proxyrequests">configuré comme
-      mandataire</a>, Apache httpd peut renvoyer une réponse de redirection et
-      ainsi fournir au client l'adresse de serveur correcte,
-      entièrement qualifiée. C'est la méthode à privilégier car le
-      fichier des marque-pages de l'utilisateur contiendra alors des
-      noms de serveurs entièrement qualifiés.</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="envsettings" id="envsettings">Ajustements relatifs au
-    protocole</a></h2>
-      <p>Pour les cas où <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> envoie des requêtes
-      vers un serveur qui n'implémente pas correctement les connexions
-      persistantes ou le protocole HTTP/1.1, il existe deux variables
-      d'environnement qui permettent de forcer les requêtes à utiliser
-      le protocole HTTP/1.0 avec connexions non persistantes. Elles
-      peuvent être définies via la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>.</p>
-
-      <p>Il s'agit des variables <code>force-proxy-request-1.0</code> et
-      <code>proxy-nokeepalive</code>.</p>
-
-      <pre class="prettyprint lang-config">&lt;Location /buggyappserver/&gt;
-  ProxyPass http://buggyappserver:7001/foo/
-  SetEnv force-proxy-request-1.0 1
-  SetEnv proxy-nokeepalive 1
-&lt;/Location&gt;</pre>
-
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="request-bodies" id="request-bodies">Corps de requêtes</a></h2>
-
-    <p>Certaines méthodes de requêtes comme POST comportent un corps de
-    requête. Le protocole HTTP stipule que les requêtes qui comportent
-    un corps doivent soit utiliser un codage de transmission
-    fractionnée (chunked transfer encoding), soit envoyer un en-tête de requête
-    <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de
-    requête vers le serveur demandé, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
-    s'efforce toujours d'envoyer l'en-tête <code>Content-Length</code>.
-    Par contre, si la taille du corps est importante, et si la requête
-    originale utilise un codage à fractionnement, ce dernier peut aussi
-    être utilisé dans la requête montante. Ce comportement peut être
-    contrôlé à l'aide de <a href="../env.html">variables
-    d'environnement</a>. Ainsi, si elle est définie, la variable
-    <code>proxy-sendcl</code> assure une compatibilité maximale avec les
-    serveurs demandés en imposant l'envoi de l'en-tête
-    <code>Content-Length</code>, alors que
-    <code>proxy-sendchunked</code> diminue la consommation de ressources
-    en imposant l'utilisation d'un codage à fractionnement.</p>
-
-    <p>Dans certaines circonstances, le serveur doit mettre en file
-    d'attente sur disque les corps de requêtes afin de satisfaire le
-    traitement demandé des corps de requêtes. Par exemple, cette mise en
-    file d'attente se produira si le corps original a été envoyé selon un
-    codage morcelé (et possède une taille importante), alors que
-    l'administrateur a demandé que les requêtes du serveur
-    d'arrière-plan soient envoyées avec l'en-tête Content-Length ou en
-    HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps
-    de la requête contient déjà un en-tête Content-Length, alors que le
-    serveur est configuré pour filtrer les corps des requêtes entrantes.</p>
-
-    <p>La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> ne s'applique qu'aux
-    corps de requêtes que le serveur met en file d'attente sur disque.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="x-headers" id="x-headers">En-têtes de requête du mandataire
-    inverse</a></h2>
-
-    <p>Lorsqu'il est configuré en mode mandataire inverse (en utilisant
-    par exemple la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>),
-    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> ajoute plusieurs en-têtes de requête
-    afin de transmettre des informations au serveur demandé. Ces
-    en-têtes sont les suivants :</p>
-
-    <dl>
-      <dt><code>X-Forwarded-For</code></dt>
-      <dd>L'adresse IP du client.</dd>
-      <dt><code>X-Forwarded-Host</code></dt>
-      <dd>L'hôte d'origine demandé par le client dans l'en-tête de
-      requête HTTP <code>Host</code>.</dd>
-      <dt><code>X-Forwarded-Server</code></dt>
-      <dd>Le nom d'hôte du serveur mandataire.</dd>
-    </dl>
-
-    <p>Ces en-têtes doivent être utilisés avec précautions sur le
-    serveur demandé, car ils contiendront plus d'une valeur (séparées
-    par des virgules) si la requête originale contenait déjà un de ces
-    en-têtes. Par exemple, vous pouvez utiliser
-    <code>%{X-Forwarded-For}i</code> dans la chaîne de format du journal
-    du serveur demandé pour enregistrer les adresses IP des clients
-    originaux, mais il est possible que vous obteniez plusieurs adresses
-    si la requête passe à travers plusieurs mandataires.</p>
-
-    <p>Voir aussi les directives <code class="directive"><a href="#proxypreservehost">ProxyPreserveHost</a></code> et <code class="directive"><a href="#proxyvia">ProxyVia</a></code> directives, qui permettent
-    de contrôler d'autres en-têtes de requête.</p>
 
-    <p>Note : Si vous devez ajouter des en-têtes particuliers à la
-    requête mandatée, utilisez la directive  <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>.</p>
+    <p>bloque les connexions vers tous les sites.</p>
 
-   </div>
+</div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="balancergrowth" id="balancergrowth">Directive</a> <a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a></h2>
+<div class="directive-section"><h2><a name="proxydomain" id="proxydomain">Directive</a> <a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de membres supplémentaires pouvant être ajoutés
-après la configuration initiale</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerGrowth <var>#</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BalancerGrowth 5</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de domaine par défaut pour les requêtes
+mandatées</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyDomain <var>Domaine</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>BalancerGrowth est disponible depuis la version 2.3.13 du
-serveur HTTP Apache</td></tr>
 </table>
-    <p>Cette directive permet de définir le nombre de membres pouvant
-    être ajoutés au groupe de répartition de charge préconfiguré d'un
-    serveur virtuel. Elle n'est active que si le groupe a été
-    préconfiguré avec un membre au minimum.</p>
+    <p>Cette directive n'a d'utilité que pour les serveurs mandataires
+    Apache httpd au sein d'un Intranet. La directive
+    <code class="directive">ProxyDomain</code> permet de spécifier le domaine
+    par défaut auquel le serveur mandataire apache appartient. Si le
+    serveur reçoit une requête pour un hôte sans nom de domaine, il va
+    générer une réponse de redirection vers le même hôte suffixé par le
+    <var>Domaine</var> spécifié.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">      ProxyRemote  *  http://firewall.example.com:81<br />
+      NoProxy         .example.com 192.168.112.0/21<br />
+      ProxyDomain     .example.com</pre>
+</div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="balancerinherit" id="balancerinherit">Directive</a> <a name="BalancerInherit" id="BalancerInherit">BalancerInherit</a></h2>
+<div class="directive-section"><h2><a name="proxyerroroverride" id="proxyerroroverride">Directive</a> <a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Héritage des membres du groupes de répartition de
-    charge du mandataire définis au niveau du serveur principal</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerInherit On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BalancerInherit On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Outrepasser les pages d'erreur pour les contenus
+mandatés</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyErrorOverride Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur
-    HTTP Apache.</td></tr>
 </table>
-        <p>Cette directive permet d'attribuer au serveur virtuel courant
-       l'héritage des membres de groupes de répartition de charge
-       définis au niveau du serveur
-       principal. Elle ne doit pas être activée si vous
-       utilisez la fonctionnalité de modifications dynamiques du
-       gestionnaire de répartition de charge (Balancer Manager) pour
-       éviter des problèmes et des comportements inattendus.</p>
-        <p>Les définitions au niveau du serveur principal constituent
-       les définitions par défaut au niveau des serveurs virtuels.</p>
-       
-    
+    <p>Cette directive est utile pour les configurations de mandataires
+    inverses, lorsque vous souhaitez que les pages d'erreur envoyées
+    aux utilisateurs finaux présentent un aspect homogène. Elle permet
+    aussi l'inclusion de fichiers (via les SSI de
+    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>) pour obtenir le code d'erreur et agir
+    en conséquence (le comportement par défaut afficherait la page
+    d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI
+    qui sera affiché si cette directive est à "on").</p>
+
+    <p>Cette directive n'affecte pas le traitement des réponses
+    informatives (1xx), de type succès normal (2xx), ou de redirection
+    (3xx).</p>
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="balancermember" id="balancermember">Directive</a> <a name="BalancerMember" id="BalancerMember">BalancerMember</a></h2>
+<div class="directive-section"><h2><a name="proxyiobuffersize" id="proxyiobuffersize">Directive</a> <a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute un membre à un groupe de répartition de
-charge</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerMember [<var>balancerurl</var>] <var>url</var> [<var>clé=valeur [clé=valeur ...]]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la taille du tampon interne de transfert de
+données</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyIOBufferSize <var>octets</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyIOBufferSize 8192</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 du serveur HTTP Apache.</td></tr>
 </table>
-    <p>Cette directive permet d'ajouter un membre à un groupe de
-    répartition de charge. Elle peut se trouver dans un conteneur
-    <code>&lt;Proxy <var>balancer://</var>...&gt;</code>, et accepte
-    tous les paramètres de paires clé/valeur que supporte la directive
-    <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
-    <p>La directive <code class="directive">BalancerMember</code> accepte un paramètre
-    supplémentaire : <var>loadfactor</var>. Il s'agit du facteur de
-    charge du membre - un nombre entre 1 (valeur par défaut) et 100, qui
-    définit la charge à appliquer au membre en question.</p>
-    <p>L'argument <var>balancerurl</var> n'est requis que s'il ne se trouve pas
-    dèjà dans la directive de conteneur <code>&lt;Proxy
-    <var>balancer://</var>...&gt;</code>. Il correspond à l'URL d'un
-    répartiteur de charge défini par une directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
-    <p>La partie chemin de l'URL du répartiteur dans toute directive de
-    conteneur <code>&lt;Proxy <var>balancer://</var>...&gt;</code> est
-    ignorée.</p>
-    <p>En particulier, le slash de fin de l'URL d'un
-    <code class="directive">BalancerMember</code> doit être supprimé.</p>
+    <p>La directive <code class="directive">ProxyIOBufferSize</code> permet
+    d'ajuster la taille du tampon interne utilisé comme bloc-note pour
+    les transferts de données entre entrée et sortie. La taille minimale
+    est de <code>512</code> octets.</p>
+
+    <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette
+    valeur.</p>
+
+    <p>Si elle est utilisée avec AJP, cette directive permet de définir
+    la taille maximale du paquet AJP en octets. Si la valeur spécifiée
+    est supérieure à 65536, elle est corrigée et prend la valeur 65536.
+    Si vous ne conservez pas
+    la valeur par défaut, vous devez aussi modifier l'attribut
+    <code>packetSize</code> de votre connecteur AJP du côté de Tomcat !
+    L'attribut <code>packetSize</code> n'est disponible que dans Tomcat
+    <code>5.5.20+</code> et <code>6.0.2+</code>.</p>
+    <p>Il n'est normalement pas nécessaire de modifier la taille
+    maximale du paquet. Des problèmes ont cependant été rapportés avec
+    la valeur par défaut lors de l'envoi de certificats ou de chaînes de
+    certificats.</p>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="balancerpersist" id="balancerpersist">Directive</a> <a name="BalancerPersist" id="BalancerPersist">BalancerPersist</a></h2>
+<div class="directive-section"><h2><a name="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch">&lt;ProxyMatch&gt;</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Tente de conserver les changements effectués par le
-    gestionnaire de répartition de charge après un redémarrage du
-    serveur.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>BalancerPersist On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>BalancerPersist Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
+mandatées correspondant à une expression rationnelle</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>BalancerPersist n'est disponible qu'à partir de la
-    version 2.4.4 du serveur HTTP Apache.</td></tr>
 </table>
-        <p>Cette directive permet de conserver le contenu de l'espace
-       mémoire partagé associé aux répartiteurs de charge et à leurs
-       membres après un redémarrage du serveur. Ces modifications
-       locales ne sont ainsi pas perdues lors des transitions d'état
-       dues à un redémarrage.</p>
-    
+    <p>La directive <code class="directive">&lt;ProxyMatch&gt;</code> est
+    identique à la directive <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code>, à l'exception qu'elle définit
+    les URLs auxquelles elle s'applique en utilisant une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p>
+
+    <p>A partir de la version 2.4.8, les groupes nommés et les
+    références arrières sont extraits et enregistrés dans
+    l'environnement avec leur nom en majuscules et préfixé par "MATCH_". Ceci permet
+    de référencer des URLs dans des <a href="../expr.html">expressions</a>
+    ou au sein de modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour
+    éviter toute confusion, les références arrières numérotées (non
+    nommées) sont ignorées. Vous devez utiliser à la place des groupes
+    nommés.</p>
+
+<pre class="prettyprint lang-config">&lt;ProxyMatch ^http://(?&lt;sitename&gt;[^/]+)&gt;
+    Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
+&lt;/ProxyMatch&gt;</pre>
+
+
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code></li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="noproxy" id="noproxy">Directive</a> <a name="NoProxy" id="NoProxy">NoProxy</a></h2>
+<div class="directive-section"><h2><a name="proxymaxforwards" id="proxymaxforwards">Directive</a> <a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Serveurs, domaines ou réseaux auquels on se connectera
-directement</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>NoProxy <var>domaine</var> [<var>domaine</var>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de mandataires à travers lesquelles une
+requête peut être redirigée</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyMaxForwards <var>nombre</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyMaxForwards -1</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Comportement par défaut
+modifié dans 2.2.7</td></tr>
 </table>
-    <p>Cette directive n'a d'utilité que pour les serveurs mandataires
-    Apache httpd au sein d'Intranets. La directive
-    <code class="directive">NoProxy</code> permet de spécifier une liste de
-    sous-réseaux, d'adresses IP, de serveurs et/ou de domaines séparés
-    par des espaces. Une requête pour un serveur qui correspond à un ou
-    plusieurs critères sera toujours servie par ce serveur directement,
-    sans être redirigée vers le(s) serveur(s) mandataire(s) défini(s) par
-    la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>.</p>
+    <p>La directive <code class="directive">ProxyMaxForwards</code> permet de
+    spécifier le nombre maximum de mandataires à travers lesquels une
+    requête peut passer dans le cas où la la requête ne contient pas
+    d'en-tête <code>Max-Forwards</code>. Ceci permet de se prémunir
+    contre les boucles infinies de mandataires ou contre les attaques de
+    type déni de service.</p>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote  *  http://firewall.example.com:81
-NoProxy         .example.com 192.168.112.0/21</pre>
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyMaxForwards 15</pre>
 </div>
 
-    <p>Le type des arguments <var>serveur</var> de la directive
-    <code class="directive">NoProxy</code> appartiennent à la liste suivante
-    :</p>
+    <p>Notez que la définition de la directive
+    <code class="directive">ProxyMaxForwards</code> constitue une violation du
+    protocole HTTP/1.1 (RFC2616), qui interdit à un mandataire de
+    définir <code>Max-Forwards</code> si le client ne l'a pas fait
+    lui-même. Les versions précédentes d'Apache httpd la définissaient
+    systématiquement. Une valeur négative de
+    <code class="directive">ProxyMaxForwards</code>, y compris la valeur par
+    défaut -1, implique un comportement compatible avec le protocole,
+    mais vous expose aux bouclages infinis.</p>
 
-    <dl>
-    
-    <dt><var><a name="domain" id="domain">Domaine</a></var></dt>
-    <dd>
-    <p>Un <dfn>domaine</dfn> est ici un nom de domaine DNS partiellement
-    qualifié précédé d'un point. Il représente une liste de serveurs qui
-    appartiennent logiquement au même domaine ou à la même zonz DNS
-    (en d'autres termes, les nom des serveurs se terminent tous par
-    <var>domaine</var>).</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypass" id="proxypass">Directive</a> <a name="ProxyPass" id="ProxyPass">ProxyPass</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Référencer des serveurs distants depuis
+l'espace d'URLs du serveur local</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPass [<var>chemin</var>] !|<var>url</var> [<var>clé=valeur</var>
+  <var>[clé=valeur</var> ...]] [nocanon] [interpolate] [noquery]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les sockets de style Unix (Unix Domain Socket - UDS)
+sont supportés à partir de la version 2.4.7 du serveur HTTP Apache</td></tr>
+</table>
+    <p>Cette directive permet de référencer des serveurs distants depuis
+    l'espace d'URLs du serveur local ; le serveur
+    local n'agit pas en tant que mandataire au sens conventionnel, mais
+    plutôt comme miroir du serveur distant. Le serveur local est
+    souvent nommé <dfn>mandataire inverse</dfn> ou
+    <dfn>passerelle</dfn>. L'argument <var>chemin</var> est le nom d'un
+    chemin virtuel local ; <var>url</var> est une URL partielle pour le
+    serveur distant et ne doit pas contenir de chaîne d'arguments.</p>
 
-    <div class="example"><h3>Exemple</h3><p><code>
-      .com .example.org.
-    </code></p></div>
+    <div class="note"><strong>Note : </strong>Cette directive ne peut pas être
+    utilisée dans un contexte de niveau répertoire.</div>
 
-    <p>Pour faire la distinction entre <var>domaine</var>s et <var><a href="#hostname">nom d'hôte</a></var>s (des points de vue à la fois
-    syntaxique et
-    sémantique, un domaine DNS pouvant aussi avoir un enregistrement DNS
-    de type A !), les <var>domaine</var>s sont toujours spécifiés en les
-    préfixant par un point.</p>
+    <div class="warning">En général, la directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> doit être définie à
+    <strong>off</strong> lorsqu'on utilise la directive
+    <code class="directive">ProxyPass</code>.</div>
 
-    <div class="note"><h3>Note</h3>
-      <p>Les comparaisons de noms de domaines s'effectuent sans tenir
-      compte de la casse, et les parties droites des <var>Domaine</var>s
-      sont toujours censées correspondre à la racine de l'arborescence
-      DNS, si bien que les domaines <code>.ExEmple.com</code> et
-      <code>.example.com.</code> (notez le point à la fin du nom) sont
-      considérés comme identiques. Comme une comparaison de domaines ne
-      nécessite pas de recherche DNS, elle est beaucoup plus efficace
-      qu'une comparaison de sous-réseaux.</p>
-    </div></dd>
+    <p>Les sockets de style Unix sont supportés à partir de la version
+    2.4.7 du serveur HTTP Apache ; pour utiliser cette fonctionnalité,
+    il suffit d'utiliser une URL cible préfixée par
+    <code>unix:/path/lis.sock|</code>. Par exemple, pour mandater HTTP
+    et cibler l'UDS /home/www/socket, vous devez utiliser
+    <code>unix:/home/www.socket|http://localhost/whatever/</code>.</p>
 
-    
-    <dt><var><a name="subnet" id="subnet">Sous-réseau</a></var></dt>
-    <dd>
-    <p>Un <dfn>Sous-réseau</dfn> est une adresse internet partiellement
-    qualifiée sous forme numérique (quatre nombres séparés par des
-    points), optionnellement suivie d'un slash et du masque de
-    sous-réseau spécifiant le nombre de bits significatifs dans le
-    <var>Sous-réseau</var>. Il représente un sous-réseau de serveurs qui
-    peuvent être atteints depuis la même interface réseau. En l'absence
-    de masque de sous-réseau explicite, il est sous-entendu que les
-    digits manquants (ou caractères 0) de fin spécifient le masque de
-    sous-réseau (Dans ce cas, le masque de sous-réseau ne peut être
-    qu'un multiple de 8). Voici quelques exemples :</p>
+    <div class="note"><strong>Note :</strong>Le chemin associé à l'URL
+    <code>unix:</code> tient compte de la directive
+    <code class="directive">DefaultRuntimeDir</code>.</div>
 
-    <dl>
-    <dt><code>192.168</code> ou <code>192.168.0.0</code></dt>
-    <dd>le sous-réseau 192.168.0.0 avec un masque de sous-réseau
-    implicite de 16 bits significatifs (parfois exprimé sous la forme
-    <code>255.255.0.0</code>)</dd>
-    <dt><code>192.168.112.0/21</code></dt>
-    <dd>le sous-réseau <code>192.168.112.0/21</code> avec un masque de
-    sous-réseau implicite de 21 bits significatifs (parfois exprimé
-    sous la forme<code>255.255.248.0</code>)</dd>
-    </dl>
+    <p>Supposons que le serveur local a pour adresse
+    <code>http://example.com/</code> ; alors la ligne</p>
 
-    <p>Comme cas extrêmes, un <em>Sous-réseau</em> avec un masque de
-    sous-réseau de 32 bits significatifs est équivalent à une <var><a href="#ipaddr">adresse IP</a></var>, alors qu'un <em>Sous-réseau</em> avec un masque de
-    sous-réseau de 0 bit significatif (c'est à dire 0.0.0.0/0) est
-    identique à la constante <var>_Default_</var>, et peut correspondre
-    à toute adresse IP.</p></dd>
+    <pre class="prettyprint lang-config">&lt;Location /mirror/foo/&gt;
+    ProxyPass http://backend.example.com/
+&lt;/Location&gt;</pre>
 
-    
-    <dt><var><a name="ipaddr" id="ipaddr">Adresse IP</a></var></dt>
-    <dd>
-    <p>Une <dfn>Adresse IP</dfn> est une adresse internet pleinement
-    qualifiée sous forme numérique (quatre nombres séparés par des
-    points). En général, cette adresse représente un serveur, mais elle
-    ne doit pas nécessairement correspondre à un nom de domaine DNS.</p>
-    <div class="example"><h3>Exemple</h3><p><code>
-      192.168.123.7
-    </code></p></div>
 
-    <div class="note"><h3>Note</h3>
-      <p>Une <dfn>Adresse IP</dfn> ne nécessite pas de résolution DNS,
-      et peut ainsi s'avérer plus efficace quant aux performances
-      d'Apache.</p>
-    </div></dd>
+    <p>va convertir en interne toute requête pour
+    <code>http://example.com/miroir/foo/bar</code> en une requête
+    mandatée pour <code>http://backend.example.com/bar</code>.</p>
 
-    
-    <dt><var><a name="hostname" id="hostname">Nom de serveur</a></var></dt>
-    <dd>
-    <p>Un <dfn>Nom de serveur</dfn> est un nom de domaine DNS pleinement
-    qualifié qui peut être résolu en une ou plusieurs adresses IP par le
-    service de noms de domaines DNS. Il représente un hôte logique (par
-    opposition aux <var><a href="#domain">Domaine</a></var>s, voir
-    ci-dessus), et doit pouvoir être résolu en une ou plusieurs <var><a href="#ipaddr">adresses IP</a></var> (ou souvent en une liste
-    d'hôtes avec différentes <var><a href="#ipaddr">adresses
-    IP</a></var>).</p>
+    <p>La syntaxe alternative suivante est valide, bien qu'elle puisse
+    induire une dégradation des performances lorsqu'elle est
+    présente en très grand nombre. Elle possède l'avantage de
+    permettre un contrôle dynamique via l'interface <a href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> :</p>
 
-    <div class="example"><h3>Exemples</h3><p><code>
-      prep.ai.example.edu<br />
-      www.example.org
-    </code></p></div>
-
-    <div class="note"><h3>Note</h3>
-      <p>Dans de nombreuses situations, il est plus efficace de
-      spécifier une <var><a href="#ipaddr">adresse IP</a></var> qu'un
-      <var>Nom de serveur</var> car cela évite d'avoir à effectuer une
-      recherche DNS. La résolution de nom dans Apache httpd peut prendre un
-      temps très long lorsque la connexion avec le serveur de noms
-      utilise une liaison PPP lente.</p>
-      <p>Les comparaisons de <var>Nom de serveur</var> s'effectuent sans tenir
-      compte de la casse, et les parties droites des <var>Noms de serveur</var>
-      sont toujours censées correspondre à la racine de l'arborescence
-      DNS, si bien que les domaines <code>WWW.ExEmple.com</code> et
-      <code>www.example.com.</code> (notez le point à la fin du nom) sont
-      considérés comme identiques.</p>
-     </div></dd>
-    </dl>
-
-<h3>Voir aussi</h3>
-<ul>
-<li><a href="../dns-caveats.html">Problèmes liés au DNS</a></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxy" id="proxy">Directive</a> <a name="Proxy" id="Proxy">&lt;Proxy&gt;</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
-mandatées</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>&lt;Proxy <var>url-avec-jokers</var>&gt; ...&lt;/Proxy&gt;</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Les directives situées dans une section <code class="directive">&lt;Proxy&gt;</code> ne s'appliquent qu'au contenu
-    mandaté concerné. Les jokers de style shell sont autorisés.</p>
-
-    <p>Par exemple, les lignes suivantes n'autoriseront à accéder à un
-    contenu via votre serveur mandataire que les hôtes appartenant à
-    <code>votre-reseau.example.com</code> :</p>
-
-    <pre class="prettyprint lang-config">&lt;Proxy *&gt;
-  Require host votre-reseau.example.com
-&lt;/Proxy&gt;</pre>
-
-
-    <p>Dans l'exemple suivant, tous les fichiers du répertoire
-    <code>foo</code> de <code>example.com</code> seront traités par le
-    filtre <code>INCLUDES</code> lorsqu'ils seront envoyés par
-    l'intermédiaire du serveur mandataire :</p>
-
-    <pre class="prettyprint lang-config">&lt;Proxy http://example.com/foo/*&gt;
-  SetOutputFilter INCLUDES
-&lt;/Proxy&gt;</pre>
-
-
-    <div class="note"><h3>Différences avec la section de configuration Location</h3>
-      <p>Une URL d'arrière-plan sera concernée par le conteneur Proxy si
-      elle commence par la <var>url-avec-jokers</var>, même si le
-      dernier segment de chemin de la directive ne correspond qu'à un
-      préfixe de segment dee chemin de l'URL d'arrière-plan. Par exemple, &lt;Proxy
-      http://example.com/foo&gt; correspondra entre autres aux URLs
-      http://example.com/foo, http://example.com/foo/bar, et
-      http://example.com/foobar. La correspondance de l'URL finale
-      diffère du comportement de la section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> qui, pour le cas de cette note,
-      traitera le segment de chemin final comme s'il se terminait par un
-      slash.</p>
-      <p>Pour un contrôle plus fin de la correspondance des URL, voir la
-      directive <code class="directive">&lt;ProxyMatch&gt;</code>.</p>
-    </div>
+    <pre class="prettyprint lang-config">ProxyPass /miroir/foo/ http://backend.example.com/</pre>
 
 
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyaddheaders" id="proxyaddheaders">Directive</a> <a name="ProxyAddHeaders" id="ProxyAddHeaders">ProxyAddHeaders</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajoute des informations à propos du mandataire aux
-en-têtes X-Forwarded-*</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyAddHeaders Off|On</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyAddHeaders On</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.10</td></tr>
-</table>
-    <p>Cette directive permet de passer au serveur d'arrière-plan des
-    informations à propos du mandataire via les en-têtes HTTP
-    X-Forwarded-For, X-Forwarded-Host et X-Forwarded-Server.</p>
-    <div class="note"><h3>Utilité</h3>
-     <p>Cette option n'est utile que dans le cas du mandat HTTP traité
-     par <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>.</p>
+    <div class="warning">
+    <p>Si le premier argument se termine par un slash
+    <strong>/</strong>, il doit en être de même pour le second argument
+    et vice versa. Dans le cas contraire, il risque de manquer des
+    slashes nécessaires dans la requête résultante vers le serveur
+    d'arrière-plan et les résulats ne seront pas ceux attendus.
+    </p>
     </div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxybadheader" id="proxybadheader">Directive</a> <a name="ProxyBadHeader" id="ProxyBadHeader">ProxyBadHeader</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la manière de traiter les lignes d'en-tête
-incorrectes d'une réponse</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBadHeader IsError|Ignore|StartBody</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyBadHeader IsError</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyBadHeader</code> permet de
-    déterminer le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> lorsqu'il
-    reçoit des lignes d'en-tête de réponse dont la syntaxe n'est pas valide (c'est
-    à dire ne contenant pas de caractère ':') en provenance du serveur
-    original. Les arguments disponibles sont :</p>
-
-    <dl>
-    <dt><code>IsError</code></dt>
-    <dd>Annule la requête et renvoie une réponse de code 502 (mauvaise
-    passerelle). C'est le comportement par défaut.</dd>
-
-    <dt><code>Ignore</code></dt>
-    <dd>Traite les lignes d'en-tête incorrectes comme si elles n'avaient
-    pas été envoyées.</dd>
+    <p>Le drapeau <code>!</code> permet de soustraire un sous-répertoire
+    du mandat inverse, comme dans l'exemple suivant :</p>
 
-    <dt><code>StartBody</code></dt>
-    <dd>A la réception de la première ligne d'en-tête incorrecte, les
-    autres en-têtes sont lus et ce qui reste est traité en tant que
-    corps. Ceci facilite la prise en compte des serveurs d'arrière-plan
-    bogués qui oublient d'insérer une ligne vide entre les
-    en-têtes et le corps.</dd>
-    </dl>
+    <pre class="prettyprint lang-config">&lt;Location /mirror/foo/&gt;
+    ProxyPass http://backend.example.com/
+&lt;/Location&gt;
+&lt;Location /mirror/foo/i&gt;
+    ProxyPass !
+&lt;/Location&gt;</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyblock" id="proxyblock">Directive</a> <a name="ProxyBlock" id="ProxyBlock">ProxyBlock</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Termes, serveurs ou domaines bloqués par le
-mandataire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>terme</var>|<var>serveur</var>|<var>domaine</var>
-[<var>terme</var>|<var>serveur</var>|<var>domaine</var>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyBlock</code> permet de
-    spécifier une liste de termes, serveurs et/ou domaines, séparés par
-    des espaces. Les requêtes de documents HTTP, HTTPS, FTP vers des
-    sites dont les noms contiennent des termes, noms de serveur ou
-    domaine correspondants seront <em>bloqués</em> par le serveur
-    mandataire. La module proxy va aussi tenter de déterminer les
-    adresses IP des éléments de la liste qui peuvent correspondre à des
-    noms d'hôtes au cours du démarrage, et les mettra en cache à des
-    fins de comparaisons ultérieures. Ceci peut ralentir le démarrage du
-    serveur.</p>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</pre>
-</div>
+    <pre class="prettyprint lang-config">ProxyPass /mirror/foo/i !
+ProxyPass /mirror/foo http://backend.example.com</pre>
 
-    <p>Notez qu'<code>example</code> suffirait aussi pour atteindre
-    ces sites.</p>
 
-    <p>Hosts conviendrait aussi s'il était référencé par adresse IP.</p>
+    <p>va mandater toutes les requêtes pour <code>/miroir/foo</code>
+    vers <code>backend.example.com</code>, <em>sauf</em> les requêtes
+    pour <code>/miroir/foo/i</code>.</p>
 
-    <p>Notez aussi que</p>
+    <div class="warning"><h3>Ordre de classement des directives ProxyPass</h3>
+      <p>Les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> et <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> sont évaluées dans
+      l'ordre de leur apparition dans le fichier de configuration. La
+      première règle qui correspond s'applique. Vous devez donc en
+      général classer les règles <code class="directive"><a href="#proxypass">ProxyPass</a></code> qui entrent en conflit de
+      l'URL la plus longue à la plus courte. Dans le cas contraire, les
+      règles situées après une règle dont l'URL correspond au début de
+      leur propre URL seront ignorées. Notez que tout ceci est en
+      relation avec le partage de workers. Par contre, on ne peut placer
+      qu'une seule directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> dans une section
+      <code class="directive"><a href="../mod/core.html#location">Location</a></code>, et c'est la section
+      la plus spécifique qui l'emportera.</p>
 
-    <pre class="prettyprint lang-config">ProxyBlock *</pre>
+      <p>Pour les mêmes raisons, les exclusions doivent se situer
+      <em>avant</em> les directives <code class="directive">ProxyPass</code>
+      générales.</p>
 
+    </div> 
 
-    <p>bloque les connexions vers tous les sites.</p>
+    <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte
+    les groupements de connexions vers un serveur d'arrière-plan. Les
+    connexions créées à la demande peuvent être enregistrées dans un
+    groupement pour une utilisation ultérieure. La taille du groupe
+    ainsi que d'autres caractéristiques peuvent être définies via la
+    directive <code class="directive">ProxyPass</code> au moyen de paramètres
+    <code>clé=valeur</code> dont la description fait l'objet du tableau
+    ci-dessous.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxydomain" id="proxydomain">Directive</a> <a name="ProxyDomain" id="ProxyDomain">ProxyDomain</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de domaine par défaut pour les requêtes
-mandatées</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyDomain <var>Domaine</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive n'a d'utilité que pour les serveurs mandataires
-    Apache httpd au sein d'un Intranet. La directive
-    <code class="directive">ProxyDomain</code> permet de spécifier le domaine
-    par défaut auquel le serveur mandataire apache appartient. Si le
-    serveur reçoit une requête pour un hôte sans nom de domaine, il va
-    générer une réponse de redirection vers le même hôte suffixé par le
-    <var>Domaine</var> spécifié.</p>
+    <p>Par défaut, mod_proxy permet et met en réserve le nombre maximum
+    de connexions pouvant être utilisées simultanément par le processus
+    enfant concerné du serveur web. Le paramètre <code>max</code> permet
+    de réduire cette valeur par défaut. Le paramètre <code>ttl</code>,
+    quant à lui, permet de définir une durée de vie optionnelle ; les
+    connexions qui n'ont pas été utilisées pendant au moins
+    <code>ttl</code> secondes seront fermées. <code>ttl</code> permet
+    aussi d'empêcher l'utilisation d'une connexion susceptible d'être
+    fermée suite à une fin de vie de connexion persistante sur le
+    serveur d'arrière-plan.</p>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">      ProxyRemote  *  http://firewall.example.com:81<br />
-      NoProxy         .example.com 192.168.112.0/21<br />
-      ProxyDomain     .example.com</pre>
-</div>
+    <p>Le groupement de connexions est maintenu au niveau de chaque
+    processus enfant du serveur web, et <code>max</code>, ainsi que les
+    autres paramètres, ne font
+    l'objet d'aucune coordination entre les différents processus
+    enfants, sauf si un seul processus enfant est autorisé par la
+    configuration ou la conception du module multi-processus (MPM).</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyerroroverride" id="proxyerroroverride">Directive</a> <a name="ProxyErrorOverride" id="ProxyErrorOverride">ProxyErrorOverride</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Outrepasser les pages d'erreur pour les contenus
-mandatés</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyErrorOverride On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyErrorOverride Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive est utile pour les configurations de mandataires
-    inverses, lorsque vous souhaitez que les pages d'erreur envoyées
-    aux utilisateurs finaux présentent un aspect homogène. Elle permet
-    aussi l'inclusion de fichiers (via les SSI de
-    <code class="module"><a href="../mod/mod_include.html">mod_include</a></code>) pour obtenir le code d'erreur et agir
-    en conséquence (le comportement par défaut afficherait la page
-    d'erreur du serveur mandaté, alors que c'est le message d'erreur SSI
-    qui sera affiché si cette directive est à "on").</p>
-
-    <p>Cette directive n'affecte pas le traitement des réponses
-    informatives (1xx), de type succès normal (2xx), ou de redirection
-    (3xx).</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyiobuffersize" id="proxyiobuffersize">Directive</a> <a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Détermine la taille du tampon interne de transfert de
-données</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyIOBufferSize <var>octets</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyIOBufferSize 8192</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyIOBufferSize</code> permet
-    d'ajuster la taille du tampon interne utilisé comme bloc-note pour
-    les transferts de données entre entrée et sortie. La taille minimale
-    est de <code>512</code> octets.</p>
-
-    <p>Dans la plupart des cas, il n'y a aucune raison de modifier cette
-    valeur.</p>
-
-    <p>Si elle est utilisée avec AJP, cette directive permet de définir
-    la taille maximale du paquet AJP en octets. Si la valeur spécifiée
-    est supérieure à 65536, elle est corrigée et prend la valeur 65536.
-    Si vous ne conservez pas
-    la valeur par défaut, vous devez aussi modifier l'attribut
-    <code>packetSize</code> de votre connecteur AJP du côté de Tomcat !
-    L'attribut <code>packetSize</code> n'est disponible que dans Tomcat
-    <code>5.5.20+</code> et <code>6.0.2+</code>.</p>
-    <p>Il n'est normalement pas nécessaire de modifier la taille
-    maximale du paquet. Des problèmes ont cependant été rapportés avec
-    la valeur par défaut lors de l'envoi de certificats ou de chaînes de
-    certificats.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch">&lt;ProxyMatch&gt;</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Conteneur de directives s'appliquant à des ressources
-mandatées correspondant à une expression rationnelle</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>&lt;ProxyMatch <var>regex</var>&gt; ...&lt;/ProxyMatch&gt;</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>La directive <code class="directive">&lt;ProxyMatch&gt;</code> est
-    identique à la directive <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code>, à l'exception qu'elle définit
-    les URLs auxquelles elle s'applique en utilisant une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression rationnelle</a>.</p>
-
-    <p>A partir de la version 2.4.8, les groupes nommés et les
-    références arrières sont extraits et enregistrés dans
-    l'environnement avec leur nom en majuscules et préfixé par "MATCH_". Ceci permet
-    de référencer des URLs dans des <a href="../expr.html">expressions</a>
-    ou au sein de modules comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Pour
-    éviter toute confusion, les références arrières numérotées (non
-    nommées) sont ignorées. Vous devez utiliser à la place des groupes
-    nommés.</p>
-
-<pre class="prettyprint lang-config">&lt;ProxyMatch ^http://(?&lt;sitename&gt;[^/]+)&gt;
-    Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
-&lt;/ProxyMatch&gt;</pre>
-
-
-<h3>Voir aussi</h3>
-<ul>
-<li><code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxymaxforwards" id="proxymaxforwards">Directive</a> <a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de mandataires à travers lesquelles une
-requête peut être redirigée</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyMaxForwards <var>nombre</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyMaxForwards -1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Comportement par défaut
-modifié dans 2.2.7</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyMaxForwards</code> permet de
-    spécifier le nombre maximum de mandataires à travers lesquels une
-    requête peut passer dans le cas où la la requête ne contient pas
-    d'en-tête <code>Max-Forwards</code>. Ceci permet de se prémunir
-    contre les boucles infinies de mandataires ou contre les attaques de
-    type déni de service.</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyMaxForwards 15</pre>
-</div>
-
-    <p>Notez que la définition de la directive
-    <code class="directive">ProxyMaxForwards</code> constitue une violation du
-    protocole HTTP/1.1 (RFC2616), qui interdit à un mandataire de
-    définir <code>Max-Forwards</code> si le client ne l'a pas fait
-    lui-même. Les versions précédentes d'Apache httpd la définissaient
-    systématiquement. Une valeur négative de
-    <code class="directive">ProxyMaxForwards</code>, y compris la valeur par
-    défaut -1, implique un comportement compatible avec le protocole,
-    mais vous expose aux bouclages infinis.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypass" id="proxypass">Directive</a> <a name="ProxyPass" id="ProxyPass">ProxyPass</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Référencer des serveurs distants depuis
-l'espace d'URLs du serveur local</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPass [<var>chemin</var>] !|<var>url</var> [<var>clé=valeur</var>
-  <var>[clé=valeur</var> ...]] [nocanon] [interpolate] [noquery]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Les sockets de style Unix (Unix Domain Socket - UDS)
-sont supportés à partir de la version 2.4.7 du serveur HTTP Apache</td></tr>
-</table>
-    <p>Cette directive permet de référencer des serveurs distants depuis
-    l'espace d'URLs du serveur local ; le serveur
-    local n'agit pas en tant que mandataire au sens conventionnel, mais
-    plutôt comme miroir du serveur distant. Le serveur local est
-    souvent nommé <dfn>mandataire inverse</dfn> ou
-    <dfn>passerelle</dfn>. L'argument <var>chemin</var> est le nom d'un
-    chemin virtuel local ; <var>url</var> est une URL partielle pour le
-    serveur distant et ne doit pas contenir de chaîne d'arguments.</p>
-
-    <div class="note"><strong>Note : </strong>Cette directive ne peut pas être
-    utilisée dans un contexte de niveau répertoire.</div>
-
-    <div class="warning">En général, la directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> doit être définie à
-    <strong>off</strong> lorsqu'on utilise la directive
-    <code class="directive">ProxyPass</code>.</div>
-
-    <p>Les sockets de style Unix sont supportés à partir de la version
-    2.4.7 du serveur HTTP Apache ; pour utiliser cette fonctionnalité,
-    il suffit d'utiliser une URL cible préfixée par
-    <code>unix:/path/lis.sock|</code>. Par exemple, pour mandater HTTP
-    et cibler l'UDS /home/www/socket, vous devez utiliser
-    <code>unix:/home/www.socket|http://localhost/whatever/</code>.</p>
-
-    <div class="note"><strong>Note :</strong>Le chemin associé à l'URL
-    <code>unix:</code> tient compte de la directive
-    <code class="directive">DefaultRuntimeDir</code>.</div>
-
-    <p>Supposons que le serveur local a pour adresse
-    <code>http://example.com/</code> ; alors la ligne</p>
-
-    <pre class="prettyprint lang-config">&lt;Location /mirror/foo/&gt;
-    ProxyPass http://backend.example.com/
-&lt;/Location&gt;</pre>
-
-
-    <p>va convertir en interne toute requête pour
-    <code>http://example.com/miroir/foo/bar</code> en une requête
-    mandatée pour <code>http://backend.example.com/bar</code>.</p>
-
-    <p>La syntaxe alternative suivante est valide, bien qu'elle puisse
-    induire une dégradation des performances lorsqu'elle est
-    présente en très grand nombre. Elle possède l'avantage de
-    permettre un contrôle dynamique via l'interface <a href="mod_proxy_balancer.html#balancer_manager">Balancer Manager</a> :</p>
-
-    <pre class="prettyprint lang-config">ProxyPass /miroir/foo/ http://backend.example.com/</pre>
-
-
-    <div class="warning">
-    <p>Si le premier argument se termine par un slash
-    <strong>/</strong>, il doit en être de même pour le second argument
-    et vice versa. Dans le cas contraire, il risque de manquer des
-    slashes nécessaires dans la requête résultante vers le serveur
-    d'arrière-plan et les résulats ne seront pas ceux attendus.
-    </p>
-    </div>
-
-    <p>Le drapeau <code>!</code> permet de soustraire un sous-répertoire
-    du mandat inverse, comme dans l'exemple suivant :</p>
-
-    <pre class="prettyprint lang-config">&lt;Location /mirror/foo/&gt;
-    ProxyPass http://backend.example.com/
-&lt;/Location&gt;
-&lt;Location /mirror/foo/i&gt;
-    ProxyPass !
-&lt;/Location&gt;</pre>
-
-
-    <pre class="prettyprint lang-config">ProxyPass /mirror/foo/i !
-ProxyPass /mirror/foo http://backend.example.com</pre>
-
-
-    <p>va mandater toutes les requêtes pour <code>/miroir/foo</code>
-    vers <code>backend.example.com</code>, <em>sauf</em> les requêtes
-    pour <code>/miroir/foo/i</code>.</p>
-
-    <div class="warning"><h3>Ordre de classement des directives ProxyPass</h3>
-      <p>Les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> et <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> sont évaluées dans
-      l'ordre de leur apparition dans le fichier de configuration. La
-      première règle qui correspond s'applique. Vous devez donc en
-      général classer les règles <code class="directive"><a href="#proxypass">ProxyPass</a></code> qui entrent en conflit de
-      l'URL la plus longue à la plus courte. Dans le cas contraire, les
-      règles situées après une règle dont l'URL correspond au début de
-      leur propre URL seront ignorées. Notez que tout ceci est en
-      relation avec le partage de workers. Par contre, on ne peut placer
-      qu'une seule directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> dans une section
-      <code class="directive"><a href="../mod/core.html#location">Location</a></code>, et c'est la section
-      la plus spécifique qui l'emportera.</p>
-
-      <p>Pour les mêmes raisons, les exclusions doivent se situer
-      <em>avant</em> les directives <code class="directive">ProxyPass</code>
-      générales.</p>
-
-    </div> 
-
-    <p>Depuis la version 2.1 du serveur HTTP Apache, mod_proxy supporte
-    les groupements de connexions vers un serveur d'arrière-plan. Les
-    connexions créées à la demande peuvent être enregistrées dans un
-    groupement pour une utilisation ultérieure. La taille du groupe
-    ainsi que d'autres caractéristiques peuvent être définies via la
-    directive <code class="directive">ProxyPass</code> au moyen de paramètres
-    <code>clé=valeur</code> dont la description fait l'objet du tableau
-    ci-dessous.</p>
-
-    <p>Par défaut, mod_proxy permet et met en réserve le nombre maximum
-    de connexions pouvant être utilisées simultanément par le processus
-    enfant concerné du serveur web. Le paramètre <code>max</code> permet
-    de réduire cette valeur par défaut. Le paramètre <code>ttl</code>,
-    quant à lui, permet de définir une durée de vie optionnelle ; les
-    connexions qui n'ont pas été utilisées pendant au moins
-    <code>ttl</code> secondes seront fermées. <code>ttl</code> permet
-    aussi d'empêcher l'utilisation d'une connexion susceptible d'être
-    fermée suite à une fin de vie de connexion persistante sur le
-    serveur d'arrière-plan.</p>
-
-    <p>Le groupement de connexions est maintenu au niveau de chaque
-    processus enfant du serveur web, et <code>max</code>, ainsi que les
-    autres paramètres, ne font
-    l'objet d'aucune coordination entre les différents processus
-    enfants, sauf si un seul processus enfant est autorisé par la
-    configuration ou la conception du module multi-processus (MPM).</p>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300</pre>
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300</pre>
 </div>
 
     <table class="bordered"><tr><th>Paramètres de BalancerMember</th></tr></table>
@@ -1543,651 +1164,1030 @@ ProxyPass /mirror/foo http://backend.example.com</pre>
        Disponible depuis la version 2.4.2 du serveur HTTP Apache.
     </td></tr>
 
-    </table>
-    <p>Exemple de configuration d'un répartiteur de charge</p>
-    <pre class="prettyprint lang-config">ProxyPass /special-area http://special.example.com smax=5 max=10
-ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
-&lt;Proxy balancer://mycluster&gt;
-    BalancerMember ajp://1.2.3.4:8009
-    BalancerMember ajp://1.2.3.5:8009 loadfactor=20
-    # Less powerful server, don't send as many requests there,
-    BalancerMember ajp://1.2.3.6:8009 loadfactor=5
-&lt;/Proxy&gt;</pre>
+    </table>
+    <p>Exemple de configuration d'un répartiteur de charge</p>
+    <pre class="prettyprint lang-config">ProxyPass /special-area http://special.example.com smax=5 max=10
+ProxyPass / balancer://mycluster/ stickysession=JSESSIONID|jsessionid nofailover=On
+&lt;Proxy balancer://mycluster&gt;
+    BalancerMember ajp://1.2.3.4:8009
+    BalancerMember ajp://1.2.3.5:8009 loadfactor=20
+    # Less powerful server, don't send as many requests there,
+    BalancerMember ajp://1.2.3.6:8009 loadfactor=5
+&lt;/Proxy&gt;</pre>
+
+
+    <p>Configuration d'un serveur cible de réserve qui ne sera utilisé que si
+    aucun autre serveur cible n'est disponible</p>
+    <pre class="prettyprint lang-config">ProxyPass / balancer://hotcluster/ 
+&lt;Proxy balancer://hotcluster&gt;
+    BalancerMember ajp://1.2.3.4:8009 loadfactor=1
+    BalancerMember ajp://1.2.3.5:8009 loadfactor=2
+    # The server below is on hot standby
+    BalancerMember ajp://1.2.3.6:8009 status=+H
+    ProxySet lbmethod=bytraffic
+&lt;/Proxy&gt;</pre>
+
+
+    <p>Normalement, mod_proxy va mettre sous leur forme canonique les
+    URLs traitées par ProxyPass. Mais ceci peut être incompatible avec
+    certains serveurs d'arrière-plan, et en particulier avec ceux qui
+    utilisent <var>PATH_INFO</var>. Le mot-clé optionnel
+    <var>nocanon</var> modifie ce comportement et permet de transmettre
+    le chemin d'URL sous sa forme brute au serveur d'arrière-plan. Notez
+    que ceci peut affecter la sécurité de votre serveur d'arrière-plan,
+    car la protection limitée contre les attaques à base d'URL que
+    fournit le mandataire est alors supprimée.</p>
+
+    <p>Par défaut, mod_proxy inclut la chaîne de paramètres lors de la
+    génération de la variable d'environnement
+    <var>SCRIPT_FILENAME</var>. Le mot-clé optionnel <var>noquery</var>
+    (disponible à partir de la version 2.4.1) permet d'exclure cette
+    chaîne.</p>
+
+    <p>Lorsque la directive ProxyPass est utilisée à l'intérieur d'une
+    section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>, le premier argument est omis et le répertoire
+    local est obtenu à partir de la section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. Il en sera de même dans une
+    section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> ; cependant, ProxyPass
+    n'interprète pas les expressions rationnelles, et il sera ici
+    nécessaire d'utiliser la directive
+    <code class="directive">ProxyPassMatch</code> à la place.</p>
+
+    <p>Cette directive ne peut pas être placée dans une section
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
+    <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>.</p>
+
+    <p>Si vous avez besoin d'un configuration de mandataire inverse plus
+    souple, reportez-vous à la documentaion de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> et son drapeau
+    <code>[P]</code>.</p>
+
+    <p>Le mot-clé optionnel <var>interpolate</var>, en combinaison avec la directive
+    <code class="directive">ProxyPassInterpolateEnv</code>, permet à ProxyPass
+    d'interpoler les variables d'environnement à l'aide de la syntaxe
+    <var>${VARNAME}</var>. Notez que de nombreuses variables
+    d'environnement standard dérivées de CGI n'existeront pas lorsque
+    l'interpolation se produit ; vous devrez alors encore avoir avoir
+    recours à <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour des règles
+    complexes. Notez aussi que l'interpolation n'est pas supportée dans
+    la partie protocole d'une URL. La détermination dynamique du
+    protocole peut être effectuée à l'aide de
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> comme dans l'exemple suivant :</p>
+
+    <pre class="prettyprint lang-config">RewriteEngine On
+
+RewriteCond %{HTTPS} =off
+RewriteRule . - [E=protocol:http]
+RewriteCond %{HTTPS} =on
+RewriteRule . - [E=protocol:https]
+
+RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
+ProxyPassReverse  /mirror/foo/ http://backend.example.com/
+ProxyPassReverse  /mirror/foo/ https://backend.example.com/</pre>
+
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypassinherit" id="proxypassinherit">Directive</a> <a name="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Héritage des directives ProxyPass définies au niveau du
+serveur principal</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInherit On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPassInherit On</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur
+HTTP Apache.</td></tr>
+</table>
+        <p>Cette directive permet à un serveur virtuel d'hériter des
+       directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> définies
+       au niveau du serveur principal. Si vous utilisez la fonctionnalité de
+       modifications dynamiques du Balancer Manager, cette directive peut
+       causer des problèmes et des comportements inattendus et doit donc
+       être désactivée.</p>
+        <p>Les valeurs définies au niveau du serveur principal
+       constituent les valeurs par défaut pour tous les serveurs virtuels.</p>
+        <p>La désactivation de ProxyPassInherit désactive aussi la
+       directive <code class="directive"><a href="#balancerinherit">BalancerInherit</a></code>.</p>
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypassinterpolateenv" id="proxypassinterpolateenv">Directive</a> <a name="ProxyPassInterpolateEnv" id="ProxyPassInterpolateEnv">ProxyPassInterpolateEnv</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'interpolation des variables d'environnement dans
+les configurations de mandataires inverses</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInterpolateEnv On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPassInterpolateEnv Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.9 d'Apache</td></tr>
+</table>
+    <p>Cette directive, ainsi que l'argument <var>interpolate</var> des
+    directives <code class="directive">ProxyPass</code>,
+    <code class="directive">ProxyPassReverse</code>,
+    <code class="directive">ProxyPassReverseCookieDomain</code> et
+    <code class="directive">ProxyPassReverseCookiePath</code>, permet de
+    configurer dynamiquement un mandataire inverse à l'aide de
+    variables d'environnement, ces dernières pouvant être définies par un
+    autre module comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Elle affecte les
+    directives <code class="directive">ProxyPass</code>,
+    <code class="directive">ProxyPassReverse</code>,
+    <code class="directive">ProxyPassReverseCookieDomain</code>, et
+    <code class="directive">ProxyPassReverseCookiePath</code>, en leur indiquant
+    de remplacer la chaîne <code>${nom_var}</code> dans les directives
+    de configuration par la valeur de la variable d'environnement
+    <code>nom_var</code> (si l'option <var>interpolate</var> est
+    spécifiée).</p>
+    <p>Conservez cette directive à off (pour les performances du
+    serveur), sauf si vous en avez réellement besoin.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypassmatch" id="proxypassmatch">Directive</a> <a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre des serveurs distants dans l'espace d'URL
+du serveur local en utilisant des expressions rationnelles</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassMatch [<var>regex</var>] !|<var>url</var>
+[<var>clé=valeur</var>
+       <var>[clé=valeur</var> ...]]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Cette directive est identique à la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>, mais fait usage des
+    expressions rationnelles, au lieu d'une simple comparaison de
+    préfixes. L'expression rationnelle spécifiée est comparée à
+    l'<var>url</var>, et si elle correspond, le serveur va substituer
+    toute correspondance entre parenthèses dans la chaîne donnée et
+    l'utiliser comme nouvelle <var>url</var>.</p>
+
+    <div class="note"><strong>Note : </strong>Cette directive ne peut pas être
+    utilisée dans un contexte de niveau répertoire.</div>
+
+    <p>Supposons que le serveur local a pour adresse
+    <code>http://example.com/</code> ; alors</p>
+
+    <pre class="prettyprint lang-config">ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com/$1</pre>
+
+
+    <p>va provoquer la conversion interne de la requête locale
+    <code>http://example.com/foo/bar.gif</code> en une requête mandatée
+    pour <code>http://backend.example.com/foo/bar.gif</code>.</p>
+
+    <div class="note"><h3>Note</h3>
+      <p>L'argument URL doit pouvoir être interprété en tant qu'URL
+      <em>avant</em> les substitutions d'expressions rationnelles (et
+      doit aussi l'être après). Ceci limite les correspondances que vous
+      pouvez utiliser. Par exemple, si l'on avait utilisé</p>
+      <pre class="prettyprint lang-config">ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1</pre>
+
+      <p>dans l'exemple précédent, nous aurions provoqué une erreur de
+      syntaxe au démarrage du serveur. C'est une bogue (PR 46665 dans
+      ASF bugzilla), et il est possible de la contourner en reformulant
+      la correspondance :</p>
+      <pre class="prettyprint lang-config">ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1</pre>
+
+    </div>
+
+    <p>Le drapeau <code>!</code> vous permet de ne pas mandater un
+    sous-répertoire donné.</p>
+
+    <p>Dans une section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>, le premier argument est
+    omis et l'expression rationnelle est obtenue à partir de la directive
+    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>.</p>
+
+    <p>Si vous avez besoin d'une configuration du mandataire inverse
+    plus flexible, voyez la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> avec le drapeau
+    <code>[P]</code>.</p>
+
+    <div class="note">
+       <h3>Substitution par défaut</h3>
+       <p>Lorsque le paramètre URL n'utilise pas de références arrières
+       dans l'expression rationnelle, l'URL originale sera ajoutée au
+       paramètre URL.
+       </p>
+       </div>
+
+    <div class="warning">
+      <h3>Avertissement à propos de la sécurité</h3>
+      <p>Lors de la construction de l'URL cible de la règle, il convient
+      de prendre en compte l'impact en matière de sécurité qu'aura le
+      fait de permettre au client d'influencer le jeu d'URLs pour
+      lesquelles votre serveur agira en tant que mandataire.
+      Assurez-vous que la partie protocole://nom-serveur de l'URL soit
+      fixe, ou ne permette pas au client de l'influencer induement.</p>
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypassreverse" id="proxypassreverse">Directive</a> <a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste l'URL dans les en-têtes de la réponse HTTP envoyée
+par un serveur mandaté en inverse</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverse [<var>chemin</var>] <var>url</var>
+[<var>interpolate</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Cette directive permet de faire en sorte qu'Apache httpd ajuste l'URL
+    dans les en-têtes <code>Location</code>,
+    <code>Content-Location</code> et <code>URI</code> des réponses de
+    redirection HTTP. Ceci est essentiel lorsqu'Apache httpd est utilisé en
+    tant que mandataire inverse (ou passerelle), afin d'éviter de
+    court-circuiter le mandataire inverse suite aux redirections HTTP
+    sur le serveur d'arrière-plan qui restent derrière le mandataire
+    inverse.</p>
+
+    <p>Seuls les en-têtes de réponse HTTP spécialement mentionnés
+    ci-dessus seront réécrits. Apache httpd ne réécrira ni les autres en-têtes
+    de réponse, ni par défaut les références d'URLs dans les pages HTML. Cela
+    signifie que dans le cas où un contenu mandaté contient des
+    références à des URLs absolues, elles court-circuiteront le
+    mandataire. Pour réécrire un contenu HTML afin qu'il corresponde au
+    mandataire, vous devez charger et activer le module
+    <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code>.
+    </p>
+
+    <p><var>chemin</var> est le nom d'un chemin virtuel local.
+    <var>url</var> est une URL partielle pour le serveur distant - ils
+    sont utilisés de la même façon qu'avec la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
+
+    <p>Supposons par exemple que le serveur local a pour adresse
+    <code>http://example.com/</code> ; alors</p>
+
+    <pre class="prettyprint lang-config">ProxyPass         /mirror/foo/ http://backend.example.com/
+ProxyPassReverse  /mirror/foo/ http://backend.example.com/
+ProxyPassReverseCookieDomain  backend.example.com  public.example.com
+ProxyPassReverseCookiePath  /  /mirror/foo/</pre>
+
+
+    <p>ne va pas seulement provoquer la conversion interne d'une requête
+    locale pour <code>http://example.com/miroir/foo/bar</code> en une
+    requête mandatée pour <code>http://backend.example.com/bar</code>
+    (la fonctionnalité fournie par <code>ProxyPass</code>). Il va
+    aussi s'occuper des redirections que le serveur
+    <code>backend.example.com</code> envoie : lorsque
+    <code>http://backend.example.com/bar</code> est redirigé par
+    celui-ci vers <code>http://backend.example.com/quux</code>, Apache
+    httpd corrige ceci en <code>http://example.com/miroir/foo/quux</code>
+    avant de faire suivre la redirection HTTP au client. Notez que le
+    nom d'hôte utilisé pour construire l'URL est choisi en respectant la
+    définition de la directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</p>
+
+    <p>Notez que la directive <code class="directive">ProxyPassReverse</code>
+    peut aussi être utilisée en conjonction avec la fonctionnalité
+    pass-through (<code>RewriteRule ...  [P]</code>) du module
+    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, car elle ne dépend pas d'une directive
+    <code class="directive"><a href="#proxypass">ProxyPass</a></code>
+    correspondante.</p>
+
+    <p>Le mot-clé optionnel <var>interpolate</var>, en
+    combinaison avec la directive
+    <code class="directive">ProxyPassInterpolateEnv</code>, permet
+    l'interpolation des variables d'environnement spécifiées en
+    utilisant le format <var>${VARNAME}</var> Notez que l'interpolation
+    n'est pas supportée dans la partie protocole d'une URL.
+    </p>
+
+    <p>Lorsque cette directive est utilisée dans une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>, le premier
+    argument est omis et le répertoire local est obtenu à partir de
+    l'argument de la directive <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. Il en est de même à l'intérieur
+    d'une section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>, mais le résultat ne sera
+    probablement pas celui attendu car ProxyPassReverse va interpréter
+    l'expression rationnelle littéralement comme un chemin ; si besoin
+    est dans ce cas, définissez la directive ProxyPassReverse en dehors
+    de la section, ou dans une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> séparée.</p>
+
+    <p>Cette directive ne peut pas être placée dans une section
+    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
+    <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a> <a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la chaîne correspondant au domaine dans les en-têtes
+Set-Cookie en provenance d'un serveur mandaté</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookieDomain <var>domaine-interne</var>
+<var>domaine-public</var> [<var>interpolate</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+<p>L'utilisation de cette directive est similaire à celle de la
+directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>,
+mais au lieu de réécrire des en-têtes qui contiennent des URLs, elle
+réécrit la chaîne correspondant au domaine dans les en-têtes
+<code>Set-Cookie</code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a> <a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la chaîne correspondant au chemin dans les en-têtes
+Set-Cookie en provenance d'un serveur mandaté</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookiePath <var>chemin-interne</var>
+<var>chemin-public</var> [<var>interpolate</var>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+<p>
+Cette directive s'avère utile en conjonction avec la directive
+<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code> dans les
+situations où les chemins d'URL d'arrière-plan correspondent à des
+chemins publics sur le mandataire inverse. Cette directive permet de
+réécrire la chaîne <code>path</code> dans les en-têtes
+<code>Set-Cookie</code>. Si le début du chemin du cookie correspond à
+<var>chemin-interne</var>, le chemin du cookie sera remplacé par
+<var>chemin-public</var>.
+</p><p>
+Dans l'exemple fourni avec la directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, la directive :
+</p>
+    <pre class="prettyprint lang-config">ProxyPassReverseCookiePath  /  /mirror/foo/</pre>
+
+<p>
+va réécrire un cookie possédant un chemin d'arrière-plan <code>/</code>
+(ou <code>/example</code> ou en fait tout chemin)
+en <code>/mirror/foo/</code>..
+</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxypreservehost" id="proxypreservehost">Directive</a> <a name="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise l'en-tête de requête entrante Host pour la requête
+du mandataire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPreserveHost On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPreserveHost Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Utilisable
+dans un contexte de répertoire depuis la version 2.3.3.</td></tr>
+</table>
+    <p>Lorsqu'elle est activée, cette directive va transmettre l'en-tête
+    Host: de la requête entrante vers le serveur mandaté, au lieu du nom
+    d'hôte spécifié par la directive <code class="directive">ProxyPass</code>.</p>
+
+    <p>Cette directive est habituellement définie à <code>Off</code>.
+    Elle est principalement utile dans les configurations particulières
+    comme l'hébergement virtuel mandaté en masse à base de nom, où
+    l'en-tête Host d'origine doit être évalué par le serveur
+    d'arrière-plan.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a> <a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon réseau pour les connexions mandatées HTTP
+et FTP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyReceiveBufferSize <var>octets</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyReceiveBufferSize 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>La directive <code class="directive">ProxyReceiveBufferSize</code> permet
+    de spécifier une taille de tampon réseau explicite (TCP/IP) pour les
+    connexions mandatées HTTP et FTP, afin d'améliorer le débit de
+    données. Elle doit être supérieure à <code>512</code> ou définie à
+    <code>0</code> pour indiquer que la taille de tampon par défaut du
+    système doit être utilisée.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyReceiveBufferSize 2048</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyremote" id="proxyremote">Directive</a> <a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mandataire distant à utiliser pour traiter certaines
+requêtes</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemote <var>comparaison</var> <var>serveur-distant</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Cette directive permet de définir des mandataires distants pour
+    ce mandataire. <var>comparaison</var> est soit le nom d'un protocole
+    que supporte le serveur distant, soit une URL partielle pour
+    laquelle le serveur distant devra être utilisé, soit <code>*</code>
+    pour indiquer que le serveur distant doit être utilisé pour toutes
+    les requêtes. <var>serveur-distant</var> est une URL partielle
+    correspondant au serveur distant. Syntaxe : </p>
+
+    <div class="example"><p><code>
+      <dfn>serveur-distant</dfn> =
+          <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>]
+    </code></p></div>
+
+    <p><var>protocole</var> est effectivement le protocole à utiliser
+    pour communiquer avec le serveur distant ; ce module ne supporte que
+    <code>http</code> et <code>https</code>. Lorsqu'on utilise
+    <code>https</code>, les requêtes sont redirigées par le mandataire
+    distant en utilisant la méthode HTTP CONNECT.</p>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
+ProxyRemote * http://cleverproxy.localdomain
+ProxyRemote ftp http://ftpproxy.mydomain:8080</pre>
+</div>
+
+    <p>Dans la dernière ligne de l'exemple, le mandataire va faire
+    suivre les requêtes FTP, encapsulées dans une autre requête mandatée
+    HTTP, vers un autre mandataire capable de les traiter.</p>
+
+    <p>Cette directive supporte aussi les configurations de mandataire
+    inverse - un serveur web d'arrière-plan peut être intégré dans
+    l'espace d'URL d'un serveur virtuel, même si ce serveur est caché
+    par un autre mandataire direct.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyremotematch" id="proxyremotematch">Directive</a> <a name="ProxyRemoteMatch" id="ProxyRemoteMatch">ProxyRemoteMatch</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le mandataire distant à utiliser pour traiter les requêtes
+correspondant à une expression rationnelle</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemoteMatch <var>regex</var> <var>serveur-distant</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>La directive <code class="directive">ProxyRemoteMatch</code> est
+    identique à la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>, à l'exception du
+    premier argument qui est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
+    rationnelle</a> à mettre en correspondance avec l'URL de la
+    requête.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyrequests" id="proxyrequests">Directive</a> <a name="ProxyRequests" id="ProxyRequests">ProxyRequests</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la fonctionnalité (standard) de mandataire
+direct</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRequests On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyRequests Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Cette directive permet d'activer/désactiver la fonctionnalité de
+    serveur mandataire direct d'Apache httpd. Définir ProxyRequests à
+    <code>Off</code> n'interdit pas l'utilisation de la directive
+    <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 
+    <p>Pour une configuration typique de mandataire inverse ou
+    passerelle, cette directive doit être définie à
+    <code>Off</code>.</p>
 
-    <p>Configuration d'un serveur cible de réserve qui ne sera utilisé que si
-    aucun autre serveur cible n'est disponible</p>
-    <pre class="prettyprint lang-config">ProxyPass / balancer://hotcluster/ 
-&lt;Proxy balancer://hotcluster&gt;
-    BalancerMember ajp://1.2.3.4:8009 loadfactor=1
-    BalancerMember ajp://1.2.3.5:8009 loadfactor=2
-    # The server below is on hot standby
-    BalancerMember ajp://1.2.3.6:8009 status=+H
-    ProxySet lbmethod=bytraffic
-&lt;/Proxy&gt;</pre>
+    <p>Afin d'activer la fonctionnalité de mandataire pour des sites
+    HTTP et/ou FTP, les modules <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> et/ou
+    <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> doivent également être chargés dans le
+    serveur.</p>
 
+    <p>Pour activer la fonctionnalité de mandataire sur les sites chiffrés en HTTPS, le module
+    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit également être chargé dans le serveur.</p>
 
-    <p>Normalement, mod_proxy va mettre sous leur forme canonique les
-    URLs traitées par ProxyPass. Mais ceci peut être incompatible avec
-    certains serveurs d'arrière-plan, et en particulier avec ceux qui
-    utilisent <var>PATH_INFO</var>. Le mot-clé optionnel
-    <var>nocanon</var> modifie ce comportement et permet de transmettre
-    le chemin d'URL sous sa forme brute au serveur d'arrière-plan. Notez
-    que ceci peut affecter la sécurité de votre serveur d'arrière-plan,
-    car la protection limitée contre les attaques à base d'URL que
-    fournit le mandataire est alors supprimée.</p>
+    <div class="warning"><h3>Avertissement</h3>
+      <p>N'activez pas la fonctionnalité de mandataire avec la directive
+      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant
+      d'avoir <a href="#access">sécurisé votre serveur</a>. Les serveurs
+      mandataires ouverts sont dangereux non seulement pour votre
+      réseau, mais aussi pour l'Internet au sens large.</p>
+    </div>
 
-    <p>Par défaut, mod_proxy inclut la chaîne de paramètres lors de la
-    génération de la variable d'environnement
-    <var>SCRIPT_FILENAME</var>. Le mot-clé optionnel <var>noquery</var>
-    (disponible à partir de la version 2.4.1) permet d'exclure cette
-    chaîne.</p>
+<h3>Voir aussi</h3>
+<ul>
+<li><a href="#forwardreverse">Mandataires/Passerelles directs et
+inverses</a></li>
+</ul>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyset" id="proxyset">Directive</a> <a name="ProxySet" id="ProxySet">ProxySet</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit différents paramètres relatifs à la répartition de
+charge des mandataires et aux membres des groupes de répartition de
+charge</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySet <var>url</var> <var>clé=valeur [clé=valeur ...]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>ProxySet n'est disponible que depuis la version 2.2
+du serveur HTTP Apache.</td></tr>
+</table>
+    <p>Cette directive propose une méthode alternative pour définir tout
+    paramètre relatif aux répartiteurs de charge et serveurs cibles de
+    mandataires normalement définis via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Si elle se trouve dans un
+    conteneur <code>&lt;Proxy <var>url de répartiteur|url de
+    serveur cible</var>&gt;</code>, l'argument <var>url</var> n'est pas
+    nécessaire. Comme effet de bord, le répartiteur ou serveur cible respectif
+    est créé. Ceci peut s'avérer utile pour la mise en oeuvre d'un
+    mandataire inverse via une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> au lieu de <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 
-    <p>Lorsque la directive ProxyPass est utilisée à l'intérieur d'une
-    section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>, le premier argument est omis et le répertoire
-    local est obtenu à partir de la section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. Il en sera de même dans une
-    section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> ; cependant, ProxyPass
-    n'interprète pas les expressions rationnelles, et il sera ici
-    nécessaire d'utiliser la directive
-    <code class="directive">ProxyPassMatch</code> à la place.</p>
+    <div class="example"><pre class="prettyprint lang-config">&lt;Proxy balancer://hotcluster&gt;
+    BalancerMember http://www2.example.com:8080 loadfactor=1
+    BalancerMember http://www3.example.com:8080 loadfactor=2
+    ProxySet lbmethod=bytraffic
+&lt;/Proxy&gt;</pre>
+</div>
 
-    <p>Cette directive ne peut pas être placée dans une section
-    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
-    <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>.</p>
+    <pre class="prettyprint lang-config">&lt;Proxy http://backend&gt;
+    ProxySet keepalive=On
+&lt;/Proxy&gt;</pre>
 
-    <p>Si vous avez besoin d'un configuration de mandataire inverse plus
-    souple, reportez-vous à la documentaion de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> et son drapeau
-    <code>[P]</code>.</p>
 
-    <p>Le mot-clé optionnel <var>interpolate</var>, en combinaison avec la directive
-    <code class="directive">ProxyPassInterpolateEnv</code>, permet à ProxyPass
-    d'interpoler les variables d'environnement à l'aide de la syntaxe
-    <var>${VARNAME}</var>. Notez que de nombreuses variables
-    d'environnement standard dérivées de CGI n'existeront pas lorsque
-    l'interpolation se produit ; vous devrez alors encore avoir avoir
-    recours à <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> pour des règles
-    complexes. Notez aussi que l'interpolation n'est pas supportée dans
-    la partie protocole d'une URL. La détermination dynamique du
-    protocole peut être effectuée à l'aide de
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> comme dans l'exemple suivant :</p>
+    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</pre>
 
-    <pre class="prettyprint lang-config">RewriteEngine On
 
-RewriteCond %{HTTPS} =off
-RewriteRule . - [E=protocol:http]
-RewriteCond %{HTTPS} =on
-RewriteRule . - [E=protocol:https]
+    <pre class="prettyprint lang-config">ProxySet ajp://backend:7001 timeout=15</pre>
 
-RewriteRule ^/mirror/foo/(.*) %{ENV:protocol}://backend.example.com/$1 [P]
-ProxyPassReverse  /mirror/foo/ http://backend.example.com/
-ProxyPassReverse  /mirror/foo/ https://backend.example.com/</pre>
 
+   <div class="warning"><h3>Avertissement</h3>
+      <p>Gardez à l'esprit qu'une même clé de paramètre peut avoir
+      différentes significations selon qu'elle s'applique à un
+      répartiteur ou à un serveur cible, et ceci est illustré par les deux
+      exemples précédents où il est question d'un timeout.</p>
+   </div>
 
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypassinherit" id="proxypassinherit">Directive</a> <a name="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a></h2>
+<div class="directive-section"><h2><a name="proxysourceaddress" id="proxysourceaddress">Directive</a> <a name="ProxySourceAddress" id="ProxySourceAddress">ProxySourceAddress</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Héritage des directives ProxyPass définies au niveau du
-serveur principal</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInherit On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPassInherit On</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit l'adresse IP locale pour les connexions mandatées
+sortantes</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySourceAddress <var>adresse</var></code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur
-HTTP Apache.</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.9</td></tr>
 </table>
-        <p>Cette directive permet à un serveur virtuel d'hériter des
-       directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> définies
-       au niveau du serveur principal. Si vous utilisez la fonctionnalité de
-       modifications dynamiques du Balancer Manager, cette directive peut
-       causer des problèmes et des comportements inattendus et doit donc
-       être désactivée.</p>
-        <p>Les valeurs définies au niveau du serveur principal
-       constituent les valeurs par défaut pour tous les serveurs virtuels.</p>
-        <p>La désactivation de ProxyPassInherit désactive aussi la
-       directive <code class="directive"><a href="#balancerinherit">BalancerInherit</a></code>.</p>
-    
+    <p>Cette directive permet de définir une adresse IP locale
+    spécifique à laquelle faire référence lors d'une connexion à un
+    serveur d'arrière-plan.</p>
+
+
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypassinterpolateenv" id="proxypassinterpolateenv">Directive</a> <a name="ProxyPassInterpolateEnv" id="ProxyPassInterpolateEnv">ProxyPassInterpolateEnv</a></h2>
+<div class="directive-section"><h2><a name="proxystatus" id="proxystatus">Directive</a> <a name="ProxyStatus" id="ProxyStatus">ProxyStatus</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'interpolation des variables d'environnement dans
-les configurations de mandataires inverses</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassInterpolateEnv On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPassInterpolateEnv Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Affiche l'état du répartiteur de charge du mandataire dans
+mod_status</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyStatus Off|On|Full</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyStatus Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.9 d'Apache</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 d'Apache</td></tr>
 </table>
-    <p>Cette directive, ainsi que l'argument <var>interpolate</var> des
-    directives <code class="directive">ProxyPass</code>,
-    <code class="directive">ProxyPassReverse</code>,
-    <code class="directive">ProxyPassReverseCookieDomain</code> et
-    <code class="directive">ProxyPassReverseCookiePath</code>, permet de
-    configurer dynamiquement un mandataire inverse à l'aide de
-    variables d'environnement, ces dernières pouvant être définies par un
-    autre module comme <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>. Elle affecte les
-    directives <code class="directive">ProxyPass</code>,
-    <code class="directive">ProxyPassReverse</code>,
-    <code class="directive">ProxyPassReverseCookieDomain</code>, et
-    <code class="directive">ProxyPassReverseCookiePath</code>, en leur indiquant
-    de remplacer la chaîne <code>${nom_var}</code> dans les directives
-    de configuration par la valeur de la variable d'environnement
-    <code>nom_var</code> (si l'option <var>interpolate</var> est
-    spécifiée).</p>
-    <p>Conservez cette directive à off (pour les performances du
-    serveur), sauf si vous en avez réellement besoin.</p>
+    <p>Cette directive permet de spécifier si les données d'état du
+    répartiteur de charge du mandataire doivent être affichées via la
+    page d'état du serveur du module <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.</p>
+    <div class="note"><h3>Note</h3>
+      <p>L'argument <strong>Full</strong> produit le même effet que
+      l'argument <strong>On</strong>.</p>
+    </div>
+
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypassmatch" id="proxypassmatch">Directive</a> <a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a></h2>
+<div class="directive-section"><h2><a name="proxytimeout" id="proxytimeout">Directive</a> <a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fait correspondre des serveurs distants dans l'espace d'URL
-du serveur local en utilisant des expressions rationnelles</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassMatch [<var>regex</var>] !|<var>url</var>
-[<var>clé=valeur</var>
-       <var>[clé=valeur</var> ...]]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Délai d'attente réseau pour les requêtes
+mandatées</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyTimeout <var>secondes</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Valeur de la directive <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
 </table>
-    <p>Cette directive est identique à la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>, mais fait usage des
-    expressions rationnelles, au lieu d'une simple comparaison de
-    préfixes. L'expression rationnelle spécifiée est comparée à
-    l'<var>url</var>, et si elle correspond, le serveur va substituer
-    toute correspondance entre parenthèses dans la chaîne donnée et
-    l'utiliser comme nouvelle <var>url</var>.</p>
+    <p>Cette directive permet à l'utilisateur de spécifier un délai pour
+    les requêtes mandatées. Ceci s'avère utile dans le cas d'un serveur
+    d'applications lent et bogué qui a tendance à se bloquer, et si vous
+    préférez simplement renvoyer une erreur timeout et abandonner la
+    connexion en douceur plutôt que d'attendre jusqu'à ce que le serveur
+    veuille bien répondre.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyvia" id="proxyvia">Directive</a> <a name="ProxyVia" id="ProxyVia">ProxyVia</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Information fournie dans l'en-tête de réponse HTTP
+<code>Via</code> pour les requêtes mandatées</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyVia On|Off|Full|Block</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyVia Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
+</table>
+    <p>Cette directive permet de contrôler l'utilisation de l'en-tête
+    HTTP <code>Via:</code> par le mandataire. Le but recherché est de
+    contrôler le flux des requêtes mandatées tout au long d'une chaîne
+    de serveurs mandataires. Voir <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1),
+    section 14.45 pour une description des lignes d'en-tête
+    <code>Via:</code>.</p>
 
-    <div class="note"><strong>Note : </strong>Cette directive ne peut pas être
-    utilisée dans un contexte de niveau répertoire.</div>
+    <ul>
+    <li>Si elle est définie à <code>Off</code>, valeur par défaut, cette
+    directive n'effectue aucun traitement particulier. Si une requête ou
+    une réponse contient un en-tête <code>Via:</code>, il est transmis
+    sans modification.</li>
 
-    <p>Supposons que le serveur local a pour adresse
-    <code>http://example.com/</code> ; alors</p>
+    <li>Si elle est définie à <code>On</code>, chaque requête ou réponse
+    se verra ajouter une ligne d'en-tête <code>Via:</code> pour le
+    serveur courant.</li>
 
-    <pre class="prettyprint lang-config">ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com/$1</pre>
+    <li>Si elle est définie à <code>Full</code>, chaque ligne d'en-tête
+    <code>Via:</code> se verra ajouter la version du serveur Apache
+    httpd sous la forme d'un champ de commentaire <code>Via:</code>.</li>
 
+    <li>Si elle est définie à <code>Block</code>, chaque requête
+    mandatée verra ses lignes d'en-tête <code>Via:</code> supprimées.
+    Aucun nouvel en-tête <code>Via:</code> ne sera généré.</li>
+    </ul>
 
-    <p>va provoquer la conversion interne de la requête locale
-    <code>http://example.com/foo/bar.gif</code> en une requête mandatée
-    pour <code>http://backend.example.com/foo/bar.gif</code>.</p>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="forwardreverse" id="forwardreverse">Mandataires directs et
+    mandataires/passerelles inverses</a></h2>
+      <p>Le serveur HTTP Apache peut être configuré dans les deux modes mandataire
+      <dfn>direct</dfn> et mandataire <dfn>inverse</dfn> (aussi nommé
+      mode <dfn>passerelle</dfn>).</p>
 
-    <div class="note"><h3>Note</h3>
-      <p>L'argument URL doit pouvoir être interprété en tant qu'URL
-      <em>avant</em> les substitutions d'expressions rationnelles (et
-      doit aussi l'être après). Ceci limite les correspondances que vous
-      pouvez utiliser. Par exemple, si l'on avait utilisé</p>
-      <pre class="prettyprint lang-config">ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com:8000$1</pre>
+      <p>Un <dfn>mandataire direct</dfn> standard est un serveur
+      intermédiaire qui s'intercale entre le client et le <em>serveur
+      demandé</em>. Pour obtenir un contenu hébergé par
+      le serveur demandé, le client envoie une requête au
+      mandataire en nommant le serveur demandé comme
+      cible, puis le mandataire extrait le contenu depuis le
+      serveur demandé et le renvoie enfin au client. Le client doit être
+      configuré de manière appropriée pour pouvoir utiliser le mandataire
+      direct afin d'accéder à d'autres sites.</p>
 
-      <p>dans l'exemple précédent, nous aurions provoqué une erreur de
-      syntaxe au démarrage du serveur. C'est une bogue (PR 46665 dans
-      ASF bugzilla), et il est possible de la contourner en reformulant
-      la correspondance :</p>
-      <pre class="prettyprint lang-config">ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com:8000/$1</pre>
+      <p>L'accès à Internet depuis des clients situés derrière un
+      pare-feu est une utilisation typique du mandataire direct. Le
+      mandataire direct peut aussi utiliser la mise en cache (fournie
+      par <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>) pour réduire la charge du
+      réseau.</p>
 
-    </div>
+      <p>La fonctionnalité de mandataire direct est activée via la
+      directive <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code>.
+      Comme les mandataires directs permettent aux clients d'accéder à
+      des sites quelconques via votre serveur et de dissimuler leur
+      véritable origine, il est indispensable de <a href="#access">sécuriser votre serveur</a> de façon à ce que seuls
+      les clients autorisés puissent accéder à votre serveur avant
+      d'activer la fonctionnalité de mandataire direct.</p>
 
-    <p>Le drapeau <code>!</code> vous permet de ne pas mandater un
-    sous-répertoire donné.</p>
+      <p>Un <dfn>mandataire inverse</dfn> (ou <dfn>passerelle</dfn>),
+      quant à lui, apparaît au client comme un serveur web standard.
+      Aucune configuration particulière du client n'est nécessaire. Le
+      client adresse ses demandes de contenus ordinaires dans l'espace
+      de nommage du mandataire inverse. Ce dernier décide alors où
+      envoyer ces requêtes, et renvoie le contenu au client comme s'il
+      l'hébergeait lui-même.</p>
 
-    <p>Dans une section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>, le premier argument est
-    omis et l'expression rationnelle est obtenue à partir de la directive
-    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>.</p>
+      <p>L'accès d'utilisateurs depuis Internet vers un serveur situé
+      derrière un pare-feu est une utilisation typique du mandataire
+      inverse. On peut aussi utiliser les mandataires inverses pour
+      mettre en oeuvre une répartition de charge entre plusieurs
+      serveurs en arrière-plan, ou fournir un cache pour un serveur
+      d'arrière-plan plus lent. Les mandataires inverses peuvent aussi
+      tout simplement servir à rassembler plusieurs serveurs dans le
+      même espace de nommage d'URLs.</p>
 
-    <p>Si vous avez besoin d'une configuration du mandataire inverse
-    plus flexible, voyez la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> avec le drapeau
-    <code>[P]</code>.</p>
+      <p>La fonctionnalité de mandataire inverse est activée via la
+      directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou
+      le drapeau <code>[P]</code> de la directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code>. Il n'est
+      <strong>pas</strong> nécessaire de définir <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> pour configurer
+      un mandataire inverse.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples simples</a></h2>
 
-    <div class="note">
-       <h3>Substitution par défaut</h3>
-       <p>Lorsque le paramètre URL n'utilise pas de références arrières
-       dans l'expression rationnelle, l'URL originale sera ajoutée au
-       paramètre URL.
-       </p>
-       </div>
+    <p>Les exemples ci-dessous illustrent de manière très basique la
+    mise en oeuvre de la fonctionnalité de mandataire et ne sont là que
+    pour vous aider à démarrer. Reportez-vous à la documentation de
+    chaque directive.</p>
 
-    <div class="warning">
-      <h3>Avertissement à propos de la sécurité</h3>
-      <p>Lors de la construction de l'URL cible de la règle, il convient
-      de prendre en compte l'impact en matière de sécurité qu'aura le
-      fait de permettre au client d'influencer le jeu d'URLs pour
-      lesquelles votre serveur agira en tant que mandataire.
-      Assurez-vous que la partie protocole://nom-serveur de l'URL soit
-      fixe, ou ne permette pas au client de l'influencer induement.</p>
-    </div>
+    <p>Si en outre, vous désirez activer la mise en cache, consultez la
+    documentation de <code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code>.</p>
 
+    <div class="example"><h3>Mandataire inverse</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar
+ProxyPassReverse /foo http://foo.example.com/bar</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypassreverse" id="proxypassreverse">Directive</a> <a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste l'URL dans les en-têtes de la réponse HTTP envoyée
-par un serveur mandaté en inverse</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverse [<var>chemin</var>] <var>url</var>
-[<var>interpolate</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive permet de faire en sorte qu'Apache httpd ajuste l'URL
-    dans les en-têtes <code>Location</code>,
-    <code>Content-Location</code> et <code>URI</code> des réponses de
-    redirection HTTP. Ceci est essentiel lorsqu'Apache httpd est utilisé en
-    tant que mandataire inverse (ou passerelle), afin d'éviter de
-    court-circuiter le mandataire inverse suite aux redirections HTTP
-    sur le serveur d'arrière-plan qui restent derrière le mandataire
-    inverse.</p>
-
-    <p>Seuls les en-têtes de réponse HTTP spécialement mentionnés
-    ci-dessus seront réécrits. Apache httpd ne réécrira ni les autres en-têtes
-    de réponse, ni par défaut les références d'URLs dans les pages HTML. Cela
-    signifie que dans le cas où un contenu mandaté contient des
-    références à des URLs absolues, elles court-circuiteront le
-    mandataire. Pour réécrire un contenu HTML afin qu'il corresponde au
-    mandataire, vous devez charger et activer le module
-    <code class="module"><a href="../mod/mod_proxy_html.html">mod_proxy_html</a></code>.
-    </p>
-
-    <p><var>chemin</var> est le nom d'un chemin virtuel local.
-    <var>url</var> est une URL partielle pour le serveur distant - ils
-    sont utilisés de la même façon qu'avec la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 
-    <p>Supposons par exemple que le serveur local a pour adresse
-    <code>http://example.com/</code> ; alors</p>
-
-    <pre class="prettyprint lang-config">ProxyPass         /mirror/foo/ http://backend.example.com/
-ProxyPassReverse  /mirror/foo/ http://backend.example.com/
-ProxyPassReverseCookieDomain  backend.example.com  public.example.com
-ProxyPassReverseCookiePath  /  /mirror/foo/</pre>
-
-
-    <p>ne va pas seulement provoquer la conversion interne d'une requête
-    locale pour <code>http://example.com/miroir/foo/bar</code> en une
-    requête mandatée pour <code>http://backend.example.com/bar</code>
-    (la fonctionnalité fournie par <code>ProxyPass</code>). Il va
-    aussi s'occuper des redirections que le serveur
-    <code>backend.example.com</code> envoie : lorsque
-    <code>http://backend.example.com/bar</code> est redirigé par
-    celui-ci vers <code>http://backend.example.com/quux</code>, Apache
-    httpd corrige ceci en <code>http://example.com/miroir/foo/quux</code>
-    avant de faire suivre la redirection HTTP au client. Notez que le
-    nom d'hôte utilisé pour construire l'URL est choisi en respectant la
-    définition de la directive <code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code>.</p>
+    <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On
+ProxyVia On
 
-    <p>Notez que la directive <code class="directive">ProxyPassReverse</code>
-    peut aussi être utilisée en conjonction avec la fonctionnalité
-    pass-through (<code>RewriteRule ...  [P]</code>) du module
-    <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, car elle ne dépend pas d'une directive
-    <code class="directive"><a href="#proxypass">ProxyPass</a></code>
-    correspondante.</p>
+&lt;Proxy *&gt;
+  Require host internal.example.com
+&lt;/Proxy&gt;</pre>
+</div>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="handler" id="handler">Accès via un gestionnaire</a></h2>
 
-    <p>Le mot-clé optionnel <var>interpolate</var>, en
-    combinaison avec la directive
-    <code class="directive">ProxyPassInterpolateEnv</code>, permet
-    l'interpolation des variables d'environnement spécifiées en
-    utilisant le format <var>${VARNAME}</var> Notez que l'interpolation
-    n'est pas supportée dans la partie protocole d'une URL.
+    <p>Vous pouvez aussi forcer le traitement d'une requête en tant que
+    requête de mandataire inverse en créant un gestionnaire de transfert
+    approprié. Dans l'exemple suivant, toutes les requêtes pour
+    des scripts PHP seront transmises au serveur FastCGI
+    spécifié via un mandat inverse :
     </p>
 
-    <p>Lorsque cette directive est utilisée dans une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>, le premier
-    argument est omis et le répertoire local est obtenu à partir de
-    l'argument de la directive <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code>. Il en est de même à l'intérieur
-    d'une section <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code>, mais le résultat ne sera
-    probablement pas celui attendu car ProxyPassReverse va interpréter
-    l'expression rationnelle littéralement comme un chemin ; si besoin
-    est dans ce cas, définissez la directive ProxyPassReverse en dehors
-    de la section, ou dans une section <code class="directive"><a href="../mod/core.html#location">&lt;Location&gt;</a></code> séparée.</p>
+    <div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
+    # Les sockets Unix nécessitent une version 2.4.7 ou supérieure du
+    # serveur HTTP Apache
+    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
+&lt;/FilesMatch&gt;</pre>
+</div>
 
-    <p>Cette directive ne peut pas être placée dans une section
-    <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code> ou
-    <code class="directive"><a href="../mod/core.html#files">&lt;Files&gt;</a></code>.</p>
+      <p>Cette fonctionnalité est disponible à partir de la version
+      2.4.10 du serveur HTTP Apache.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a> <a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la chaîne correspondant au domaine dans les en-têtes
-Set-Cookie en provenance d'un serveur mandaté</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookieDomain <var>domaine-interne</var>
-<var>domaine-public</var> [<var>interpolate</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-<p>L'utilisation de cette directive est similaire à celle de la
-directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>,
-mais au lieu de réécrire des en-têtes qui contiennent des URLs, elle
-réécrit la chaîne correspondant au domaine dans les en-têtes
-<code>Set-Cookie</code>.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="workers" id="workers">Workers</a></h2>
+      <p>Le mandataire gère la configuration et les paramètres de
+      communication des serveurs originaux au sein d'objets nommés
+      <dfn>workers</dfn>. Deux types de worker sont fournis : le worker
+      par défaut du mandataire direct et le worker par défaut du
+      mandataire inverse. Il est aussi possible de définir explicitement
+      des workers supplémentaires.</p>
+
+      <p>Les deux workers par défaut possèdent une configuration figée
+      et seront utilisés si aucun autre worker ne correspond à la
+      requête. Ils n'utilisent ni les jeux de connexions (connection
+      pooling), ni les
+      connexions HTTP persistantes (Keep-Alive). En effet, les
+      connexions TCP vers le serveur original sont fermées et ouvertes
+      pour chaque requête.</p>
+
+      <p>Les workers définis explicitement sont identifiés par leur URL.
+      Ils sont en général définis via les directives <code class="directive"><a href="#proxypass">ProxyPass</a></code> ou <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code> lorsqu'on les
+      utilise dans le cadre d'un mandataire inverse :</p>
 
+      <div class="example"><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a> <a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ajuste la chaîne correspondant au chemin dans les en-têtes
-Set-Cookie en provenance d'un serveur mandaté</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPassReverseCookiePath <var>chemin-interne</var>
-<var>chemin-public</var> [<var>interpolate</var>]</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-<p>
-Cette directive s'avère utile en conjonction avec la directive
-<code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code> dans les
-situations où les chemins d'URL d'arrière-plan correspondent à des
-chemins publics sur le mandataire inverse. Cette directive permet de
-réécrire la chaîne <code>path</code> dans les en-têtes
-<code>Set-Cookie</code>. Si le début du chemin du cookie correspond à
-<var>chemin-interne</var>, le chemin du cookie sera remplacé par
-<var>chemin-public</var>.
-</p><p>
-Dans l'exemple fourni avec la directive <code class="directive"><a href="#proxypassreverse">ProxyPassReverse</a></code>, la directive :
-</p>
-    <pre class="prettyprint lang-config">ProxyPassReverseCookiePath  /  /mirror/foo/</pre>
+      
 
-<p>
-va réécrire un cookie possédant un chemin d'arrière-plan <code>/</code>
-(ou <code>/example</code> ou en fait tout chemin)
-en <code>/mirror/foo/</code>..
-</p>
+      <p>Cette directive va créer un worker associé à l'URL du serveur
+      original <code>http://backend.example.com</code>, et utilisant les
+      valeurs de timeout données. Lorsqu'ils sont utilisés dans le cadre
+      d'un mandataire direct, les workers sont en général définis via la
+      directive <code class="directive"><a href="#proxyset">ProxySet</a></code>,</p>
 
+      <div class="example"><pre class="prettyprint lang-config">ProxySet http://backend.example.com connectiontimeout=5 timeout=30</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxypreservehost" id="proxypreservehost">Directive</a> <a name="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Utilise l'en-tête de requête entrante Host pour la requête
-du mandataire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyPreserveHost On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyPreserveHost Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Utilisable
-dans un contexte de répertoire depuis la version 2.3.3.</td></tr>
-</table>
-    <p>Lorsqu'elle est activée, cette directive va transmettre l'en-tête
-    Host: de la requête entrante vers le serveur mandaté, au lieu du nom
-    d'hôte spécifié par la directive <code class="directive">ProxyPass</code>.</p>
+      
 
-    <p>Cette directive est habituellement définie à <code>Off</code>.
-    Elle est principalement utile dans les configurations particulières
-    comme l'hébergement virtuel mandaté en masse à base de nom, où
-    l'en-tête Host d'origine doit être évalué par le serveur
-    d'arrière-plan.</p>
+      <p>ou encore via les directives <code class="directive"><a href="#proxy">Proxy</a></code> et <code class="directive"><a href="#proxyset">ProxySet</a></code> :</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a> <a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Taille du tampon réseau pour les connexions mandatées HTTP
-et FTP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyReceiveBufferSize <var>octets</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyReceiveBufferSize 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyReceiveBufferSize</code> permet
-    de spécifier une taille de tampon réseau explicite (TCP/IP) pour les
-    connexions mandatées HTTP et FTP, afin d'améliorer le débit de
-    données. Elle doit être supérieure à <code>512</code> ou définie à
-    <code>0</code> pour indiquer que la taille de tampon par défaut du
-    système doit être utilisée.</p>
+      <pre class="prettyprint lang-config">&lt;Proxy http://backend.example.com&gt;
+  ProxySet connectiontimeout=5 timeout=30
+&lt;/Proxy&gt;</pre>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyReceiveBufferSize 2048</pre>
-</div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyremote" id="proxyremote">Directive</a> <a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Mandataire distant à utiliser pour traiter certaines
-requêtes</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemote <var>comparaison</var> <var>serveur-distant</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive permet de définir des mandataires distants pour
-    ce mandataire. <var>comparaison</var> est soit le nom d'un protocole
-    que supporte le serveur distant, soit une URL partielle pour
-    laquelle le serveur distant devra être utilisé, soit <code>*</code>
-    pour indiquer que le serveur distant doit être utilisé pour toutes
-    les requêtes. <var>serveur-distant</var> est une URL partielle
-    correspondant au serveur distant. Syntaxe : </p>
+      <p>L'utilisation de workers définis explicitement dans le mode
+      mandataire direct n'est pas très courante, car les mandataires
+      directs communiquent en général avec de nombreux serveurs
+      originaux. La création explicite de workers pour certains serveurs
+      originaux peut cependant s'avérer utile si ces serveurs sont
+      très souvent sollicités. A leur niveau, les workers explicitement
+      définis ne possèdent aucune notion de mandataire direct ou
+      inverse. Ils encapsulent un concept de communication commun avec
+      les serveurs originaux. Un worker créé via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> pour être utilisé dans le
+      cadre d'un mandataire inverse sera aussi utilisé dans le cadre
+      d'un mandataire directe chaque fois que l'URL vers le serveur
+      original correspondra à l'URL du worker, et vice versa.</p>
 
-    <div class="example"><p><code>
-      <dfn>serveur-distant</dfn> =
-          <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>]
-    </code></p></div>
+      <p>L'URL qui identifie un worker correspond à l'URL de son serveur
+      original, y compris un éventuel chemin donné :</p>
 
-    <p><var>protocole</var> est effectivement le protocole à utiliser
-    pour communiquer avec le serveur distant ; ce module ne supporte que
-    <code>http</code> et <code>https</code>. Lorsqu'on utilise
-    <code>https</code>, les requêtes sont redirigées par le mandataire
-    distant en utilisant la méthode HTTP CONNECT.</p>
+      <pre class="prettyprint lang-config">ProxyPass /examples http://backend.example.com/examples
+ProxyPass /docs http://backend.example.com/docs</pre>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyRemote http://goodguys.example.com/ http://mirrorguys.example.com:8000
-ProxyRemote * http://cleverproxy.localdomain
-ProxyRemote ftp http://ftpproxy.mydomain:8080</pre>
-</div>
 
-    <p>Dans la dernière ligne de l'exemple, le mandataire va faire
-    suivre les requêtes FTP, encapsulées dans une autre requête mandatée
-    HTTP, vers un autre mandataire capable de les traiter.</p>
+      <p>Dans cet exemple, deux workers différents sont définis, chacun
+      d'eux utilisant des configurations et jeux de connexions
+      séparés.</p>
 
-    <p>Cette directive supporte aussi les configurations de mandataire
-    inverse - un serveur web d'arrière-plan peut être intégré dans
-    l'espace d'URL d'un serveur virtuel, même si ce serveur est caché
-    par un autre mandataire direct.</p>
+      <div class="warning"><h3>Partage de workers</h3>
+        <p>Le partage de workers intervient lorsque les URLs des workers
+       s'entrecoupent, ce qui arrive lorsque l'URL d'un worker
+       correspond au début de l'URL d'un autre worker défini plus loin
+       dans le fichier de configuration. Dans l'exemple suivant,</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyremotematch" id="proxyremotematch">Directive</a> <a name="ProxyRemoteMatch" id="ProxyRemoteMatch">ProxyRemoteMatch</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le mandataire distant à utiliser pour traiter les requêtes
-correspondant à une expression rationnelle</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRemoteMatch <var>regex</var> <var>serveur-distant</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyRemoteMatch</code> est
-    identique à la directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code>, à l'exception du
-    premier argument qui est une <a class="glossarylink" href="../glossary.html#regex" title="voir glossaire">expression
-    rationnelle</a> à mettre en correspondance avec l'URL de la
-    requête.</p>
+        <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60
+ProxyPass /examples http://backend.example.com/examples timeout=10</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyrequests" id="proxyrequests">Directive</a> <a name="ProxyRequests" id="ProxyRequests">ProxyRequests</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active la fonctionnalité (standard) de mandataire
-direct</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyRequests On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyRequests Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive permet d'activer/désactiver la fonctionnalité de
-    serveur mandataire direct d'Apache httpd. Définir ProxyRequests à
-    <code>Off</code> n'interdit pas l'utilisation de la directive
-    <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 
-    <p>Pour une configuration typique de mandataire inverse ou
-    passerelle, cette directive doit être définie à
-    <code>Off</code>.</p>
+        <p>le second worker n'est pas vraiment créé. C'est le premier
+       worker qui est en fait utilisé. L'avantage de ceci réside dans
+       le fait qu'il n'existe qu'un seul jeu de connexions, ces
+       dernières étant donc réutilisées plus souvent. Notez que tous
+       les attributs de configuration définis explicitement pour le
+       deuxième worker seront ignorés, ce qui sera journalisé en tant
+       qu'avertissement. Ainsi, dans l'exemple ci-dessus, la valeur de
+       timeout retenue pour l'URL <code>/exemples</code> sera
+       <code>60</code>, et non <code>10</code> !</p>
 
-    <p>Afin d'activer la fonctionnalité de mandataire pour des sites
-    HTTP et/ou FTP, les modules <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> et/ou
-    <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> doivent également être chargés dans le
-    serveur.</p>
+        <p>Si vous voulez empêcher le partage de workers, classez vos
+       définitions de workers selon la longueur des URLs, de la plus
+       longue à la plus courte. Si au contraire vous voulez favoriser
+       ce partage, utilisez l'ordre de classement inverse. Voir aussi
+       l'avertissement à propos de l'ordre de classement des directives
+       <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
 
-    <p>Pour activer la fonctionnalité de mandataire sur les sites chiffrés en HTTPS, le module
-    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> doit également être chargé dans le serveur.</p>
+      </div> 
 
-    <div class="warning"><h3>Avertissement</h3>
-      <p>N'activez pas la fonctionnalité de mandataire avec la directive
-      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> avant
-      d'avoir <a href="#access">sécurisé votre serveur</a>. Les serveurs
-      mandataires ouverts sont dangereux non seulement pour votre
-      réseau, mais aussi pour l'Internet au sens large.</p>
-    </div>
+      <p>Les workers définis explicitement sont de deux sortes :
+      <dfn>workers directs</dfn> et <dfn>workers de répartition (de
+      charge)</dfn>. Ils supportent de nombreux attributs de
+      configuration importants décrits dans la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Ces mêmes attributs
+      peuvent aussi être définis via la directive <code class="directive"><a href="#proxyset">ProxySet</a></code>.</p>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><a href="#forwardreverse">Mandataires/Passerelles directs et
-inverses</a></li>
-</ul>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyset" id="proxyset">Directive</a> <a name="ProxySet" id="ProxySet">ProxySet</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit différents paramètres relatifs à la répartition de
-charge des mandataires et aux membres des groupes de répartition de
-charge</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySet <var>url</var> <var>clé=valeur [clé=valeur ...]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>ProxySet n'est disponible que depuis la version 2.2
-du serveur HTTP Apache.</td></tr>
-</table>
-    <p>Cette directive propose une méthode alternative pour définir tout
-    paramètre relatif aux répartiteurs de charge et serveurs cibles de
-    mandataires normalement définis via la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>. Si elle se trouve dans un
-    conteneur <code>&lt;Proxy <var>url de répartiteur|url de
-    serveur cible</var>&gt;</code>, l'argument <var>url</var> n'est pas
-    nécessaire. Comme effet de bord, le répartiteur ou serveur cible respectif
-    est créé. Ceci peut s'avérer utile pour la mise en oeuvre d'un
-    mandataire inverse via une directive <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> au lieu de <code class="directive"><a href="#proxypass">ProxyPass</a></code>.</p>
+      <p>Le jeu d'options disponibles pour un worker direct dépend du
+      protocole spécifié dans l'URL du serveur original. Les protocoles
+      disponibles comprennent <code>ajp</code>, <code>fcgi</code>,
+      <code>ftp</code>, <code>http</code> et <code>scgi</code>.</p>
+
+      <p>Les workers de répartition sont des workers virtuels qui
+      utilisent les workers directs, connus comme faisant partie de leurs
+      membres, pour le traitement effectif des requêtes. Chaque
+      répartiteur peut comporter plusieurs membres. Lorsqu'il traite une
+      requête, il choisit un de ses membres en fonction de l'algorithme
+      de répartition de charge défini.</p>
 
-    <div class="example"><pre class="prettyprint lang-config">&lt;Proxy balancer://hotcluster&gt;
-    BalancerMember http://www2.example.com:8080 loadfactor=1
-    BalancerMember http://www3.example.com:8080 loadfactor=2
-    ProxySet lbmethod=bytraffic
-&lt;/Proxy&gt;</pre>
-</div>
+      <p>Un worker de répartition est créé si son URL de worker comporte
+      <code>balancer</code> comme indicateur de protocole. L'URL du
+      répartiteur permet d'identifier de manière unique le worker de
+      répartition. La directive <code class="directive"><a href="#balancermember">BalancerMember</a></code> permet d'ajouter des
+      membres au répartiteur.</p>
 
-    <pre class="prettyprint lang-config">&lt;Proxy http://backend&gt;
-    ProxySet keepalive=On
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="access" id="access">Contrôler l'accès à votre
+    mandataire</a></h2>
+      <p>Vous pouvez restreindre l'accès à votre mandataire via le bloc
+      de contrôle <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> comme dans
+      l'exemple suivant :</p>
+
+      <pre class="prettyprint lang-config">&lt;Proxy *&gt;
+  Require ip 192.168.0
 &lt;/Proxy&gt;</pre>
 
 
-    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</pre>
+      <p>Pour plus de détails sur les directives de contrôle d'accès,
+      voir la documentation du module
+      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>.</p>
 
+      <p>Restreindre l'accès de manière stricte est essentiel si vous
+      mettez en oeuvre un mandataire direct (en définissant la directive
+      <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> à "on").
+      Dans le cas contraire, votre serveur pourrait être utilisé par
+      n'importe quel client pour accéder à des serveurs quelconques,
+      tout en masquant sa véritable identité. Ceci représente un danger
+      non seulement pour votre réseau, mais aussi pour l'Internet au
+      sens large. Dans le cas de la mise en oeuvre d'un mandataire
+      inverse (en utilisant la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code> avec <code>ProxyRequests Off</code>), le contrôle
+      d'accès est moins critique car les clients ne peuvent contacter
+      que les serveurs que vous avez spécifiés.</p>
 
-    <pre class="prettyprint lang-config">ProxySet ajp://backend:7001 timeout=15</pre>
+      <p><strong>Voir aussi</strong> la variable d'environnement <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a>.</p>
 
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="startup" id="startup">Ralentissement au démarrage</a></h2>
+      <p>Si vous utilisez la directive <code class="directive"><a href="#proxyblock">ProxyBlock</a></code>, les noms d'hôtes sont résolus en adresses
+      IP puis ces dernières mises en cache au cours du démarrage
+      à des fins de tests de comparaisons ultérieurs. Ce processus peut
+      durer plusieurs secondes (ou d'avantage) en fonction de la vitesse
+      à laquelle s'effectue la résolution des noms d'hôtes.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="intranet" id="intranet">Mandataire en Intranet</a></h2>
+      <p>Un serveur mandataire Apache httpd situé à l'intérieur d'un Intranet
+      doit faire suivre les requêtes destinées à un serveur externe à
+      travers le pare-feu de l'entreprise (pour ce faire, définissez la
+      directive <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> de
+      façon à ce qu'elle fasse suivre le <var>protocole</var> concerné
+      vers le mandataire du pare-feu). Cependant, lorsqu'il doit accéder
+      à des ressources situées dans l'Intranet, il peut se passer du
+      pare-feu pour accéder aux serveurs. A cet effet, la directive
+      <code class="directive"><a href="#noproxy">NoProxy</a></code> permet de
+      spécifier quels hôtes appartiennent à l'Intranet et peuvent donc
+      être accédés directement.</p>
 
-   <div class="warning"><h3>Avertissement</h3>
-      <p>Gardez à l'esprit qu'une même clé de paramètre peut avoir
-      différentes significations selon qu'elle s'applique à un
-      répartiteur ou à un serveur cible, et ceci est illustré par les deux
-      exemples précédents où il est question d'un timeout.</p>
-   </div>
+      <p>Les utilisateurs d'un Intranet ont tendance à oublier le nom du
+      domaine local dans leurs requêtes WWW, et demandent par exemple
+      "http://un-serveur/" au lieu de
+      <code>http://un-serveur.example.com/</code>. Certains serveurs
+      mandataires commerciaux acceptent ce genre de requête et les
+      traitent simplement en utilisant un nom de domaine local
+      implicite. Lorsque la directive <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> est utilisée et si le
+      serveur est <a href="#proxyrequests">configuré comme
+      mandataire</a>, Apache httpd peut renvoyer une réponse de redirection et
+      ainsi fournir au client l'adresse de serveur correcte,
+      entièrement qualifiée. C'est la méthode à privilégier car le
+      fichier des marque-pages de l'utilisateur contiendra alors des
+      noms de serveurs entièrement qualifiés.</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="envsettings" id="envsettings">Ajustements relatifs au
+    protocole</a></h2>
+      <p>Pour les cas où <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> envoie des requêtes
+      vers un serveur qui n'implémente pas correctement les connexions
+      persistantes ou le protocole HTTP/1.1, il existe deux variables
+      d'environnement qui permettent de forcer les requêtes à utiliser
+      le protocole HTTP/1.0 avec connexions non persistantes. Elles
+      peuvent être définies via la directive <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code>.</p>
 
+      <p>Il s'agit des variables <code>force-proxy-request-1.0</code> et
+      <code>proxy-nokeepalive</code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxysourceaddress" id="proxysourceaddress">Directive</a> <a name="ProxySourceAddress" id="ProxySourceAddress">ProxySourceAddress</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit l'adresse IP locale pour les connexions mandatées
-sortantes</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxySourceAddress <var>adresse</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.9</td></tr>
-</table>
-    <p>Cette directive permet de définir une adresse IP locale
-    spécifique à laquelle faire référence lors d'une connexion à un
-    serveur d'arrière-plan.</p>
+      <pre class="prettyprint lang-config">&lt;Location /buggyappserver/&gt;
+  ProxyPass http://buggyappserver:7001/foo/
+  SetEnv force-proxy-request-1.0 1
+  SetEnv proxy-nokeepalive 1
+&lt;/Location&gt;</pre>
 
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxystatus" id="proxystatus">Directive</a> <a name="ProxyStatus" id="ProxyStatus">ProxyStatus</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Affiche l'état du répartiteur de charge du mandataire dans
-mod_status</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyStatus Off|On|Full</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyStatus Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2 d'Apache</td></tr>
-</table>
-    <p>Cette directive permet de spécifier si les données d'état du
-    répartiteur de charge du mandataire doivent être affichées via la
-    page d'état du serveur du module <code class="module"><a href="../mod/mod_status.html">mod_status</a></code>.</p>
-    <div class="note"><h3>Note</h3>
-      <p>L'argument <strong>Full</strong> produit le même effet que
-      l'argument <strong>On</strong>.</p>
-    </div>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="request-bodies" id="request-bodies">Corps de requêtes</a></h2>
 
+    <p>Certaines méthodes de requêtes comme POST comportent un corps de
+    requête. Le protocole HTTP stipule que les requêtes qui comportent
+    un corps doivent soit utiliser un codage de transmission
+    fractionnée (chunked transfer encoding), soit envoyer un en-tête de requête
+    <code>Content-Length</code>. Lorsqu'il fait suivre ce genre de
+    requête vers le serveur demandé, <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
+    s'efforce toujours d'envoyer l'en-tête <code>Content-Length</code>.
+    Par contre, si la taille du corps est importante, et si la requête
+    originale utilise un codage à fractionnement, ce dernier peut aussi
+    être utilisé dans la requête montante. Ce comportement peut être
+    contrôlé à l'aide de <a href="../env.html">variables
+    d'environnement</a>. Ainsi, si elle est définie, la variable
+    <code>proxy-sendcl</code> assure une compatibilité maximale avec les
+    serveurs demandés en imposant l'envoi de l'en-tête
+    <code>Content-Length</code>, alors que
+    <code>proxy-sendchunked</code> diminue la consommation de ressources
+    en imposant l'utilisation d'un codage à fractionnement.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxytimeout" id="proxytimeout">Directive</a> <a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Délai d'attente réseau pour les requêtes
-mandatées</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyTimeout <var>secondes</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Valeur de la directive <code class="directive"><a href="../mod/core.html#timeout">Timeout</a></code></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive permet à l'utilisateur de spécifier un délai pour
-    les requêtes mandatées. Ceci s'avère utile dans le cas d'un serveur
-    d'applications lent et bogué qui a tendance à se bloquer, et si vous
-    préférez simplement renvoyer une erreur timeout et abandonner la
-    connexion en douceur plutôt que d'attendre jusqu'à ce que le serveur
-    veuille bien répondre.</p>
+    <p>Dans certaines circonstances, le serveur doit mettre en file
+    d'attente sur disque les corps de requêtes afin de satisfaire le
+    traitement demandé des corps de requêtes. Par exemple, cette mise en
+    file d'attente se produira si le corps original a été envoyé selon un
+    codage morcelé (et possède une taille importante), alors que
+    l'administrateur a demandé que les requêtes du serveur
+    d'arrière-plan soient envoyées avec l'en-tête Content-Length ou en
+    HTTP/1.0. Cette mise en file d'attente se produira aussi si le corps
+    de la requête contient déjà un en-tête Content-Length, alors que le
+    serveur est configuré pour filtrer les corps des requêtes entrantes.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyvia" id="proxyvia">Directive</a> <a name="ProxyVia" id="ProxyVia">ProxyVia</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Information fournie dans l'en-tête de réponse HTTP
-<code>Via</code> pour les requêtes mandatées</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyVia On|Off|Full|Block</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyVia Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy</td></tr>
-</table>
-    <p>Cette directive permet de contrôler l'utilisation de l'en-tête
-    HTTP <code>Via:</code> par le mandataire. Le but recherché est de
-    contrôler le flux des requêtes mandatées tout au long d'une chaîne
-    de serveurs mandataires. Voir <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616</a> (HTTP/1.1),
-    section 14.45 pour une description des lignes d'en-tête
-    <code>Via:</code>.</p>
+    <p>La directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code> ne s'applique qu'aux
+    corps de requêtes que le serveur met en file d'attente sur disque.</p>
 
-    <ul>
-    <li>Si elle est définie à <code>Off</code>, valeur par défaut, cette
-    directive n'effectue aucun traitement particulier. Si une requête ou
-    une réponse contient un en-tête <code>Via:</code>, il est transmis
-    sans modification.</li>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="x-headers" id="x-headers">En-têtes de requête du mandataire
+    inverse</a></h2>
 
-    <li>Si elle est définie à <code>On</code>, chaque requête ou réponse
-    se verra ajouter une ligne d'en-tête <code>Via:</code> pour le
-    serveur courant.</li>
+    <p>Lorsqu'il est configuré en mode mandataire inverse (en utilisant
+    par exemple la directive <code class="directive"><a href="#proxypass">ProxyPass</a></code>),
+    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> ajoute plusieurs en-têtes de requête
+    afin de transmettre des informations au serveur demandé. Ces
+    en-têtes sont les suivants :</p>
 
-    <li>Si elle est définie à <code>Full</code>, chaque ligne d'en-tête
-    <code>Via:</code> se verra ajouter la version du serveur Apache
-    httpd sous la forme d'un champ de commentaire <code>Via:</code>.</li>
+    <dl>
+      <dt><code>X-Forwarded-For</code></dt>
+      <dd>L'adresse IP du client.</dd>
+      <dt><code>X-Forwarded-Host</code></dt>
+      <dd>L'hôte d'origine demandé par le client dans l'en-tête de
+      requête HTTP <code>Host</code>.</dd>
+      <dt><code>X-Forwarded-Server</code></dt>
+      <dd>Le nom d'hôte du serveur mandataire.</dd>
+    </dl>
 
-    <li>Si elle est définie à <code>Block</code>, chaque requête
-    mandatée verra ses lignes d'en-tête <code>Via:</code> supprimées.
-    Aucun nouvel en-tête <code>Via:</code> ne sera généré.</li>
-    </ul>
+    <p>Ces en-têtes doivent être utilisés avec précautions sur le
+    serveur demandé, car ils contiendront plus d'une valeur (séparées
+    par des virgules) si la requête originale contenait déjà un de ces
+    en-têtes. Par exemple, vous pouvez utiliser
+    <code>%{X-Forwarded-For}i</code> dans la chaîne de format du journal
+    du serveur demandé pour enregistrer les adresses IP des clients
+    originaux, mais il est possible que vous obteniez plusieurs adresses
+    si la requête passe à travers plusieurs mandataires.</p>
 
-</div>
+    <p>Voir aussi les directives <code class="directive"><a href="#proxypreservehost">ProxyPreserveHost</a></code> et <code class="directive"><a href="#proxyvia">ProxyVia</a></code> directives, qui permettent
+    de contrôler d'autres en-têtes de requête.</p>
+
+    <p>Note : Si vous devez ajouter des en-têtes particuliers à la
+    requête mandatée, utilisez la directive  <code class="directive"><a href="../mod/mod_headers.html#requestheader">RequestHeader</a></code>.</p>
+
+   </div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 7a1563c54373cf83fd9091a3fe153ea8298db331..b2cbacad31bcd4b530c18843254dd65e3ec259df 100644 (file)
 <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="forwardreverse" id="forwardreverse">フォワードプロキシとリバースプロキシ</a></h2>
-      <p>Apache は<dfn>フォワード</dfn>プロキシとしても、
-      <dfn>リバース</dfn>プロキシとしても設定することができます。</p>
-
-      <p>通常の<dfn>フォワードプロキシ</dfn>はクライアントと
-      <em>オリジンサーバ</em> <span class="transnote">(<em>訳注:</em> コンテンツ生成元のサーバ)</span>
-      の間に位置する中間サーバです。
-      オリジンサーバからコンテンツを取得する過程では、クライアントは
-      行き先としてオリジンサーバを指定しつつプロキシにリクエストを送り、
-      プロキシはオリジンサーバからコンテンツ取得のリクエストを送り、
-      コンテンツが取得できればそれをクライアントに返します。
-      クライアントが他のサイトにフォワードプロクシ経由でアクセスするには、
-      特別にそれ用の設定をしなければなりません。</p>
-
-      <p>フォワードプロキシの一般的な使用方法は、ファイアウォールによって
-      制限されている内部のクライアントにインターネットへのアクセスを
-      提供するものです。フォワードプロキシはネットワークの使用量を
-      減らすために (<code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> で提供されている) 
-      キャッシュ機能を用いることもできます。</p>
-
-      <p>フォワードプロキシは <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> ディレクティブで
-      有効になります。フォワードプロキシでは、クライアントは本当の身元を
-      隠して任意のサイトにアクセスできるようになるため、フォワードプロキシを
-      有効にする前に、承認されたクライアントのみがプロキシにアクセスできるように
-      <a href="#access">サーバを安全にする</a>ことが重要です。</p>
-
-      <p>一方<dfn>リバースプロキシ</dfn>は、クライアントには普通の
-      ウェブサーバのように見えます。クライアント側に特別な設定は必要ありません。
-      クライアントはリバースプロキシの名前空間に対して通常のコンテンツへの
-      リクエストを行ないます。プロキシはリクエストをどこに送れば良いかを判定し、
-      あたかも自分自身がオリジンサーバであったかのようにクライアントに
-      コンテンツを返します。</p>
-
-      <p>リバースプロキシのよくある利用方法は、インターネットユーザに
-      ファイアウォールの中にあるサーバにアクセスを与えるというものです。
-      リバースプロキシは複数のバックエンドサーバへ負荷分散をするために
-      使ったり、遅いバックエンドエンドサーバのためにキャッシュ機能を提供したり
-      するために使えます。また、リバースプロキシは複数のサーバを
-      同じ URL 空間にまとめるために使うこともできます。</p>
-
-      <p>リバースプロキシは <code class="directive"><a href="#proxypass">ProxyPass</a></code> ディレクティブや
-      <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ディレクティブの
-      <code>[P]</code> フラグを使うことで有効になります。リバースプロキシの
-      設定のために <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> を設定する必要は
-      <em>ありません</em>。</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">基本の例</a></h2>
-
-    <p>以下の例は手始めの簡単な例です。個々のディレクティブの意味は
-    それぞれの説明をお読みください。</p>
-
-    <p>またキャッシュ機能を有効にしたい場合は、<code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> 
-    の説明を読んでください。</p>
-
-    <div class="example"><h3>フォワードプロキシ</h3><p><code>
-    ProxyRequests On<br />
-    ProxyVia On<br />
-    <br />
-    &lt;Proxy *&gt;<br />
-    <span class="indent">
-      Order deny,allow<br />
-      Deny from all<br />
-      Allow from internal.example.com<br />
-    </span>
-    &lt;/Proxy&gt;
-    </code></p></div>
-
-    <div class="example"><h3>リバースプロキシ</h3><p><code>
-    ProxyRequests Off<br />
-    <br />
-    &lt;Proxy *&gt;<br />
-    <span class="indent">
-      Order deny,allow<br />
-      Allow from all<br />
-    </span>
-    &lt;/Proxy&gt;<br />
-    <br />
-    ProxyPass /foo http://foo.example.com/bar<br />
-    ProxyPassReverse /foo http://foo.example.com/bar
-    </code></p></div>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="access" id="access">プロキシへのアクセス制御</a></h2>
-      <p>プロキシのアクセスは以下のように <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> コンテナの中に
-      ディレクティブを書くことで制御できます:</p>
-
-      <div class="example"><p><code>
-        &lt;Proxy *&gt;<br />
-        <span class="indent">
-          Order Deny,Allow<br />
-          Deny from all<br />
-          Allow from 192.168.0<br />
-        </span>
-        &lt;/Proxy&gt;
-      </code></p></div>
-
-      <p>アクセス制御のためのディレクティブのより詳しい情報は
-      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> をお読みください。</p>
-
-      <p>(<code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> ディレクティブを
-      使って) フォワードプロキシを設定している場合は、厳しくアクセス
-      制限を行なうことが非常に大切です。そうしないと、任意のクライアントが
-      身元を明かすことなく任意のホストにアクセスするためにサーバを使うことが
-      できてしまいます。これはあなた自身のネットワークにとっても、インターネット
-      全体にとっても危険なことです。(<code>ProxyRequests Off</code> にして
-      <code class="directive"><a href="#proxypass">ProxyPass</a></code> ディレクティブを使って)
-      リバースプロキシを使っている場合には、クライアントはあなたが明示的に
-      設定したホストにしかアクセスできないため、フォワードプロキシのとき
-      ほどアクセス制御に力を注がなくても大丈夫です。</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="startup" id="startup">遅い起動</a></h2>
-      <p><code class="directive"><a href="#proxyblock">ProxyBlock</a></code> ディレクティブを使っている場合、
-      後のテストのために起動時にホストの
-      IP アドレスが調べられてキャッシュされます。ホスト名のルックアップの
-      速さによっては、数秒 (かそれ以上) かかるかもしれません。</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="intranet" id="intranet">イントラネットプロキシ</a></h2>
-      <p>イントラネットにある Apache プロキシサーバは外部へのリクエストを
-      会社のファイアウォールを通して送らなければなりません。(このためには
-      個々の <var>scheme</var> についてそれぞれ、ファイアウォールの
-      プロキシにフォワードされるように
-      <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> ディレクティブを
-      設定してください)。しかしイントラネット内のリソースにアクセスするときは、
-      ファイアウォールを通さないでもアクセスできます。
-      どのホストがイントラネットに属し、直接アクセスすべきかを指定するには、
-      <code class="directive"><a href="#noproxy">NoProxy</a></code> ディレクティブが
-      役に立ちます。</p>
-
-      <p>イントラネット内のユーザは WWW のリクエストでローカルドメインを
-      省略することがよくあります。<code>http://somehost.example.com/</code> 
-      というリクエストの代わりに "http://somehost/" をリクエストしたりします。
-      このようなリクエストを受け付け、サーバに設定されているローカルドメインが
-      暗黙のうちに使われていると解釈して、単純にリクエストを処理するものも
-      商用プロキシサーバの中にはあります。
-      サーバが <a href="#proxyrequests">プロキシのサービス用に設定されていて</a>
-      <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> ディレクティブが
-      使用された場合には、Apache はクライアントにリダイレクト応答を送って、
-      正しい、完全な (<span class="transnote">(<em>訳注:</em> fully qualified)</span>) 
-      サーバのアドレスに送ることができます。このように
-      リダイレクトすると、ユーザのブックマークが正しい完全なホスト名を含む
-      ことにもなるため、より好ましい方法と言えるでしょう。</p>
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="envsettings" id="envsettings">プロトコルの調整</a></h2>
-      <p>Keepalive や HTTP/1.1 を適切に実装していないアプリケーションサーバに対して
-      <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> がリクエストを送信する場合、
-      HTTP/1.0 を使って keepalive を無しにしてリクエストを送るようにする
-      環境変数が二つあります。これらは <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> ディレクティブで設定します。</p>
-
-      <p><code>force-proxy-request-1.0</code> と <code>proxy-nokeepalive</code>
-      がその環境変数です。</p>
-
-      <div class="example"><p><code>
-        &lt;Location /buggyappserver/&gt;<br />
-        <span class="indent">
-          ProxyPass http://buggyappserver:7001/foo/<br />
-          SetEnv force-proxy-request-1.0 1<br />
-          SetEnv proxy-nokeepalive 1<br />
-        </span>
-        &lt;/Location&gt;
-      </code></p></div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="request-bodies" id="request-bodies">リクエストボディ</a></h2>
-
-    <p>POST メソッドなどのリクエストには、リクエストボディがあります。
-    HTTP プロトコル仕様によると、ボディのあるリクエストは chunked 
-    転送を使うか、<code>Content-Length</code>
-    ヘッダを送信しなければなりません。
-    このようなリクエストをオリジンサーバに送信する場合、
-    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> は常に <code>Content-Length</code>
-    を送ろうと試みます。しかし。ボディが大きく、オリジナルのリクエストで
-    chunked 転送が使われている場合、上流へのリクエストに
-    chunked 転送も使われます。
-    この挙動は <a href="../env.html">環境変数</a>で制御できます。
-    <code>proxy-sendcl</code> を設定すると、可能な限り常に 
-    <code>Content-Length</code> を付与して、
-    上流サーバに送信するようになります。
-    逆に <code>proxy-sendchunked</code> を設定すると、リソース消費を抑え、
-    chnked エンコードを使って送信するようになります。</p>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="BalancerGrowth" id="BalancerGrowth">BalancerGrowth</a> <a name="balancergrowth" id="balancergrowth">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Number of additional Balancers that can be added Post-configuration</td></tr>
@@ -1240,6 +1051,195 @@ URL を調整する</td></tr>
     </ul>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="forwardreverse" id="forwardreverse">フォワードプロキシとリバースプロキシ</a></h2>
+      <p>Apache は<dfn>フォワード</dfn>プロキシとしても、
+      <dfn>リバース</dfn>プロキシとしても設定することができます。</p>
+
+      <p>通常の<dfn>フォワードプロキシ</dfn>はクライアントと
+      <em>オリジンサーバ</em> <span class="transnote">(<em>訳注:</em> コンテンツ生成元のサーバ)</span>
+      の間に位置する中間サーバです。
+      オリジンサーバからコンテンツを取得する過程では、クライアントは
+      行き先としてオリジンサーバを指定しつつプロキシにリクエストを送り、
+      プロキシはオリジンサーバからコンテンツ取得のリクエストを送り、
+      コンテンツが取得できればそれをクライアントに返します。
+      クライアントが他のサイトにフォワードプロクシ経由でアクセスするには、
+      特別にそれ用の設定をしなければなりません。</p>
+
+      <p>フォワードプロキシの一般的な使用方法は、ファイアウォールによって
+      制限されている内部のクライアントにインターネットへのアクセスを
+      提供するものです。フォワードプロキシはネットワークの使用量を
+      減らすために (<code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> で提供されている) 
+      キャッシュ機能を用いることもできます。</p>
+
+      <p>フォワードプロキシは <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> ディレクティブで
+      有効になります。フォワードプロキシでは、クライアントは本当の身元を
+      隠して任意のサイトにアクセスできるようになるため、フォワードプロキシを
+      有効にする前に、承認されたクライアントのみがプロキシにアクセスできるように
+      <a href="#access">サーバを安全にする</a>ことが重要です。</p>
+
+      <p>一方<dfn>リバースプロキシ</dfn>は、クライアントには普通の
+      ウェブサーバのように見えます。クライアント側に特別な設定は必要ありません。
+      クライアントはリバースプロキシの名前空間に対して通常のコンテンツへの
+      リクエストを行ないます。プロキシはリクエストをどこに送れば良いかを判定し、
+      あたかも自分自身がオリジンサーバであったかのようにクライアントに
+      コンテンツを返します。</p>
+
+      <p>リバースプロキシのよくある利用方法は、インターネットユーザに
+      ファイアウォールの中にあるサーバにアクセスを与えるというものです。
+      リバースプロキシは複数のバックエンドサーバへ負荷分散をするために
+      使ったり、遅いバックエンドエンドサーバのためにキャッシュ機能を提供したり
+      するために使えます。また、リバースプロキシは複数のサーバを
+      同じ URL 空間にまとめるために使うこともできます。</p>
+
+      <p>リバースプロキシは <code class="directive"><a href="#proxypass">ProxyPass</a></code> ディレクティブや
+      <code class="directive"><a href="../mod/mod_rewrite.html#rewriterule">RewriteRule</a></code> ディレクティブの
+      <code>[P]</code> フラグを使うことで有効になります。リバースプロキシの
+      設定のために <code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> を設定する必要は
+      <em>ありません</em>。</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">基本の例</a></h2>
+
+    <p>以下の例は手始めの簡単な例です。個々のディレクティブの意味は
+    それぞれの説明をお読みください。</p>
+
+    <p>またキャッシュ機能を有効にしたい場合は、<code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code> 
+    の説明を読んでください。</p>
+
+    <div class="example"><h3>フォワードプロキシ</h3><p><code>
+    ProxyRequests On<br />
+    ProxyVia On<br />
+    <br />
+    &lt;Proxy *&gt;<br />
+    <span class="indent">
+      Order deny,allow<br />
+      Deny from all<br />
+      Allow from internal.example.com<br />
+    </span>
+    &lt;/Proxy&gt;
+    </code></p></div>
+
+    <div class="example"><h3>リバースプロキシ</h3><p><code>
+    ProxyRequests Off<br />
+    <br />
+    &lt;Proxy *&gt;<br />
+    <span class="indent">
+      Order deny,allow<br />
+      Allow from all<br />
+    </span>
+    &lt;/Proxy&gt;<br />
+    <br />
+    ProxyPass /foo http://foo.example.com/bar<br />
+    ProxyPassReverse /foo http://foo.example.com/bar
+    </code></p></div>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="access" id="access">プロキシへのアクセス制御</a></h2>
+      <p>プロキシのアクセスは以下のように <code class="directive"><a href="#proxy">&lt;Proxy&gt;</a></code> コンテナの中に
+      ディレクティブを書くことで制御できます:</p>
+
+      <div class="example"><p><code>
+        &lt;Proxy *&gt;<br />
+        <span class="indent">
+          Order Deny,Allow<br />
+          Deny from all<br />
+          Allow from 192.168.0<br />
+        </span>
+        &lt;/Proxy&gt;
+      </code></p></div>
+
+      <p>アクセス制御のためのディレクティブのより詳しい情報は
+      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code> をお読みください。</p>
+
+      <p>(<code class="directive"><a href="#proxyrequests">ProxyRequests</a></code> ディレクティブを
+      使って) フォワードプロキシを設定している場合は、厳しくアクセス
+      制限を行なうことが非常に大切です。そうしないと、任意のクライアントが
+      身元を明かすことなく任意のホストにアクセスするためにサーバを使うことが
+      できてしまいます。これはあなた自身のネットワークにとっても、インターネット
+      全体にとっても危険なことです。(<code>ProxyRequests Off</code> にして
+      <code class="directive"><a href="#proxypass">ProxyPass</a></code> ディレクティブを使って)
+      リバースプロキシを使っている場合には、クライアントはあなたが明示的に
+      設定したホストにしかアクセスできないため、フォワードプロキシのとき
+      ほどアクセス制御に力を注がなくても大丈夫です。</p>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="startup" id="startup">遅い起動</a></h2>
+      <p><code class="directive"><a href="#proxyblock">ProxyBlock</a></code> ディレクティブを使っている場合、
+      後のテストのために起動時にホストの
+      IP アドレスが調べられてキャッシュされます。ホスト名のルックアップの
+      速さによっては、数秒 (かそれ以上) かかるかもしれません。</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="intranet" id="intranet">イントラネットプロキシ</a></h2>
+      <p>イントラネットにある Apache プロキシサーバは外部へのリクエストを
+      会社のファイアウォールを通して送らなければなりません。(このためには
+      個々の <var>scheme</var> についてそれぞれ、ファイアウォールの
+      プロキシにフォワードされるように
+      <code class="directive"><a href="#proxyremote">ProxyRemote</a></code> ディレクティブを
+      設定してください)。しかしイントラネット内のリソースにアクセスするときは、
+      ファイアウォールを通さないでもアクセスできます。
+      どのホストがイントラネットに属し、直接アクセスすべきかを指定するには、
+      <code class="directive"><a href="#noproxy">NoProxy</a></code> ディレクティブが
+      役に立ちます。</p>
+
+      <p>イントラネット内のユーザは WWW のリクエストでローカルドメインを
+      省略することがよくあります。<code>http://somehost.example.com/</code> 
+      というリクエストの代わりに "http://somehost/" をリクエストしたりします。
+      このようなリクエストを受け付け、サーバに設定されているローカルドメインが
+      暗黙のうちに使われていると解釈して、単純にリクエストを処理するものも
+      商用プロキシサーバの中にはあります。
+      サーバが <a href="#proxyrequests">プロキシのサービス用に設定されていて</a>
+      <code class="directive"><a href="#proxydomain">ProxyDomain</a></code> ディレクティブが
+      使用された場合には、Apache はクライアントにリダイレクト応答を送って、
+      正しい、完全な (<span class="transnote">(<em>訳注:</em> fully qualified)</span>) 
+      サーバのアドレスに送ることができます。このように
+      リダイレクトすると、ユーザのブックマークが正しい完全なホスト名を含む
+      ことにもなるため、より好ましい方法と言えるでしょう。</p>
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="envsettings" id="envsettings">プロトコルの調整</a></h2>
+      <p>Keepalive や HTTP/1.1 を適切に実装していないアプリケーションサーバに対して
+      <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> がリクエストを送信する場合、
+      HTTP/1.0 を使って keepalive を無しにしてリクエストを送るようにする
+      環境変数が二つあります。これらは <code class="directive"><a href="../mod/mod_env.html#setenv">SetEnv</a></code> ディレクティブで設定します。</p>
+
+      <p><code>force-proxy-request-1.0</code> と <code>proxy-nokeepalive</code>
+      がその環境変数です。</p>
+
+      <div class="example"><p><code>
+        &lt;Location /buggyappserver/&gt;<br />
+        <span class="indent">
+          ProxyPass http://buggyappserver:7001/foo/<br />
+          SetEnv force-proxy-request-1.0 1<br />
+          SetEnv proxy-nokeepalive 1<br />
+        </span>
+        &lt;/Location&gt;
+      </code></p></div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="request-bodies" id="request-bodies">リクエストボディ</a></h2>
+
+    <p>POST メソッドなどのリクエストには、リクエストボディがあります。
+    HTTP プロトコル仕様によると、ボディのあるリクエストは chunked 
+    転送を使うか、<code>Content-Length</code>
+    ヘッダを送信しなければなりません。
+    このようなリクエストをオリジンサーバに送信する場合、
+    <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> は常に <code>Content-Length</code>
+    を送ろうと試みます。しかし。ボディが大きく、オリジナルのリクエストで
+    chunked 転送が使われている場合、上流へのリクエストに
+    chunked 転送も使われます。
+    この挙動は <a href="../env.html">環境変数</a>で制御できます。
+    <code>proxy-sendcl</code> を設定すると、可能な限り常に 
+    <code>Content-Length</code> を付与して、
+    上流サーバに送信するようになります。
+    逆に <code>proxy-sendchunked</code> を設定すると、リソース消費を抑え、
+    chnked エンコードを使って送信するようになります。</p>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_proxy.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index c78488e4c890c43497af077542f187d410e1a24e..7174cc7fa5a3bd77f31836c16a4a56c8d8498293 100644 (file)
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="notes" id="notes">Request notes</a></h2>
-    <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> creates the following request notes for
-        logging using the <code>%{VARNAME}n</code> format in
-        <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> or
-        <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code>:
-    </p>
-    <dl>
-        <dt>proxy-source-port</dt>
-        <dd>The local port used for the connection to the backend server.</dd>
-    </dl>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AllowCONNECT" id="AllowCONNECT">AllowCONNECT</a> <a name="allowconnect" id="allowconnect">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ports that are allowed to <code>CONNECT</code> through the
@@ -103,6 +90,19 @@ Port ranges available since Apache 2.3.7.</td></tr>
     allow connections to the listed ports only.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="notes" id="notes">Request notes</a></h2>
+    <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> creates the following request notes for
+        logging using the <code>%{VARNAME}n</code> format in
+        <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> or
+        <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code>:
+    </p>
+    <dl>
+        <dt>proxy-source-port</dt>
+        <dd>The local port used for the connection to the backend server.</dd>
+    </dl>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_connect.html" title="English">&nbsp;en&nbsp;</a> |
index 6f1ef5205498ca937d72036169f3463d2bdfc845..974b628de36820c8d0b055ccf1e9104f7b3f00e4 100644 (file)
@@ -69,19 +69,6 @@ des requ
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="notes" id="notes">Informations sur les requêtes</a></h2>
-    <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> enregistre les informations
-    suivantes pour journalisation via le format <code>%{NOMVAR}n</code>
-    dans les directives <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> ou <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code> :
-    </p>
-    <dl>
-        <dt>proxy-source-port</dt>
-        <dd>Le port local utilisé pour la connexion vers le serveur
-       d'arrière-plan.</dd>
-    </dl>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="allowconnect" id="allowconnect">Directive</a> <a name="AllowCONNECT" id="AllowCONNECT">AllowCONNECT</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ports autorisés à se <code>CONNECT</code>er à travers le
@@ -109,6 +96,19 @@ d'Apache 2.3.5. Plages de ports disponibles depuis Apache 2.3.7.</td></tr>
     vers les ports spécifiés.</p>
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="notes" id="notes">Informations sur les requêtes</a></h2>
+    <p><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> enregistre les informations
+    suivantes pour journalisation via le format <code>%{NOMVAR}n</code>
+    dans les directives <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> ou <code class="directive"><a href="../mod/core.html#errorlogformat">ErrorLogFormat</a></code> :
+    </p>
+    <dl>
+        <dt>proxy-source-port</dt>
+        <dd>Le port local utilisé pour la connexion vers le serveur
+       d'arrière-plan.</dd>
+    </dl>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_connect.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index afdb340c044173e69d97a2bc9c1f874b969acb2b..8b8d00c872c0e676d3869b6fd7d8fe88598b7a33 100644 (file)
@@ -63,7 +63,6 @@
 <li><code class="directive"><a href="../mod/mod_proxy.html#allowconnect">AllowCONNECT</a></code></li>
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="AllowCONNECT" id="AllowCONNECT">AllowCONNECT</a> <a name="allowconnect" id="allowconnect">ディレクティブ</a></h2>
 <table class="directive">
@@ -80,6 +79,7 @@ Port ranges available since Apache 2.3.7.</td></tr>
 </table><p>このディレクティブの解説文書は
             まだ翻訳されていません。英語版をご覧ください。
             </p></div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_proxy_connect.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 6eb52c1f75cc3046ddfda52baa80a64fb556168e..3d7975e69d0d1cf0155506b7b3af0f3c06e96f0d 100644 (file)
@@ -87,7 +87,6 @@
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ProxyExpressDBMFile" id="ProxyExpressDBMFile">ProxyExpressDBMFile</a> <a name="proxyexpressdbmfile" id="proxyexpressdbmfile">Directive</a></h2>
 <table class="directive">
     controls whether the module will be active.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_express.html" title="English">&nbsp;en&nbsp;</a> |
index de0ec83819473be212ee94b22b4c81e4a25b7842..ee6fc7d979041c6bad72e845446659af548e6794 100644 (file)
@@ -93,7 +93,6 @@ dynamique inverse de masse</td></tr>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="proxyexpressdbmfile" id="proxyexpressdbmfile">Directive</a> <a name="ProxyExpressDBMFile" id="ProxyExpressDBMFile">ProxyExpressDBMFile</a></h2>
 <table class="directive">
@@ -177,6 +176,7 @@ dynamique inverse de masse</td></tr>
   d'activer/désactiver le module.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_express.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 07711274a72ae0aa09cd7430d0fdcd268fb019a5..ca0d91576f2efe30d3f122fb174ce7c0667830e1 100644 (file)
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a> <a name="proxyftpdircharset" id="proxyftpdircharset">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define the character set for proxied FTP listings</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyFtpDirCharset <var>character set</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.2.7 and later. Moved from <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> in Apache 2.3.5.</td></tr>
+</table>
+    <p>The <code class="directive">ProxyFtpDirCharset</code> directive defines the
+    character set to be set for FTP directory listings in HTML generated by
+    <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyFtpEscapeWildcards" id="ProxyFtpEscapeWildcards">ProxyFtpEscapeWildcards</a> <a name="proxyftpescapewildcards" id="proxyftpescapewildcards">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Whether wildcards in requested filenames are escaped when sent to the FTP server</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyFtpEscapeWildcards [on|off]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3.3 and later</td></tr>
+</table>
+  <p>The <code class="directive">ProxyFtpEscapeWildcards</code> directive
+    controls whether wildcard characters ("*?[{~") in requested
+    filenames are escaped with backslash before sending them to the
+    FTP server.  That is the default behavior, but many FTP servers
+    don't know about the escaping and try to serve the literal filenames
+    they were sent, including the backslashes in the names.  </p>
+    <p>Set to "off" to allow downloading files with wildcards
+    in their names from FTP servers that don't understand wildcard
+    escaping.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ProxyFtpListOnWildcard" id="ProxyFtpListOnWildcard">ProxyFtpListOnWildcard</a> <a name="proxyftplistonwildcard" id="proxyftplistonwildcard">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Whether wildcards in requested filenames trigger a file listing</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyFtpListOnWildcard [on|off]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3.3 and later</td></tr>
+</table>
+  <p>The <code class="directive">ProxyFtpListOnWildcard</code> directive
+    controls whether wildcard characters ("*?[{~") in requested
+    filenames cause <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> to return a listing
+    of files instead of downloading a file.  By default (value on),
+    they do.  Set to "off" to allow downloading files even if they
+    have wildcard characters in their names.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="mimetypes" id="mimetypes">Why doesn't file type <var>xxx</var>
     download via FTP?</a></h2>
         See the <code class="directive">ProxyFtpListOnWildcard</code> directive.
       </p>
     </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a> <a name="proxyftpdircharset" id="proxyftpdircharset">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define the character set for proxied FTP listings</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyFtpDirCharset <var>character set</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.2.7 and later. Moved from <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> in Apache 2.3.5.</td></tr>
-</table>
-    <p>The <code class="directive">ProxyFtpDirCharset</code> directive defines the
-    character set to be set for FTP directory listings in HTML generated by
-    <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyFtpEscapeWildcards" id="ProxyFtpEscapeWildcards">ProxyFtpEscapeWildcards</a> <a name="proxyftpescapewildcards" id="proxyftpescapewildcards">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Whether wildcards in requested filenames are escaped when sent to the FTP server</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyFtpEscapeWildcards [on|off]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3.3 and later</td></tr>
-</table>
-  <p>The <code class="directive">ProxyFtpEscapeWildcards</code> directive
-    controls whether wildcard characters ("*?[{~") in requested
-    filenames are escaped with backslash before sending them to the
-    FTP server.  That is the default behavior, but many FTP servers
-    don't know about the escaping and try to serve the literal filenames
-    they were sent, including the backslashes in the names.  </p>
-    <p>Set to "off" to allow downloading files with wildcards
-    in their names from FTP servers that don't understand wildcard
-    escaping.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ProxyFtpListOnWildcard" id="ProxyFtpListOnWildcard">ProxyFtpListOnWildcard</a> <a name="proxyftplistonwildcard" id="proxyftplistonwildcard">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Whether wildcards in requested filenames trigger a file listing</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyFtpListOnWildcard [on|off]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Available in Apache 2.3.3 and later</td></tr>
-</table>
-  <p>The <code class="directive">ProxyFtpListOnWildcard</code> directive
-    controls whether wildcard characters ("*?[{~") in requested
-    filenames cause <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> to return a listing
-    of files instead of downloading a file.  By default (value on),
-    they do.  Set to "off" to allow downloading files even if they
-    have wildcard characters in their names.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_ftp.html" title="English">&nbsp;en&nbsp;</a> |
index 78d94507733015540070a7217eaedc505e851e9f..de04868e2b5b3af8f2449c931ab4b67641a1add5 100644 (file)
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyftpdircharset" id="proxyftpdircharset">Directive</a> <a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le jeu de caractères des listings FTP
+mandatés</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpDirCharset <var>jeu-caractères</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.7 d'Apache. Déplacé
+depuis <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> à partir de la version 2.3.5 d'Apache</td></tr>
+</table>
+    <p>La directive <code class="directive">ProxyFtpDirCharset</code> permet de
+    définir le jeu de caractères à utiliser pour les listings FTP en
+    HTML générés par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyftpescapewildcards" id="proxyftpescapewildcards">Directive</a> <a name="ProxyFtpEscapeWildcards" id="ProxyFtpEscapeWildcards">ProxyFtpEscapeWildcards</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les caractères génériques dans les noms de fichiers
+doivent-ils être échappés lorsqu'ils sont envoyés au serveur FTP ?</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpEscapeWildcards [on|off]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.3 du serveur HTTP Apache</td></tr>
+</table>
+  <p>La directive <code class="directive">ProxyFtpEscapeWildcards</code> permet
+  de déterminer si les caractères génériques ("*?[{~") que contiennent
+  les noms de fichiers demandés doivent être échappés pas un slash
+  inversé avant d'être envoyés au serveur FTP. Il s'agit du comportement
+  par défaut ; cependant, de nombreux serveurs FTP n'ont aucune
+  connaissance de la notion d'échappement, et tentent de servir le
+  fichier demandé sous sa forme littérale, en incluant les slashes
+  inversés dans son nom.</p>
+    <p>Définissez cette directive à "off" pour permettre le
+    téléchargement de fichiers dont les noms contiennent des caractères
+    génériques depuis des serveurs FTP qui ne connaissent pas
+    l'échappement des caractères génériques.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="proxyftplistonwildcard" id="proxyftplistonwildcard">Directive</a> <a name="ProxyFtpListOnWildcard" id="ProxyFtpListOnWildcard">ProxyFtpListOnWildcard</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les caractères génériques dans les noms de fichiers
+demandés doivent-ils déclencher l'affichage d'un listing ?</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpListOnWildcard [on|off]</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.3 du serveur HTTP Apache</td></tr>
+</table>
+  <p>La directive <code class="directive">ProxyFtpListOnWildcard</code> permet
+  de déterminer si les caractères génériques ("*?[{~") que contiennent
+  les noms de fichiers demandés provoquent l'affichage d'un listing de
+  fichiers par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> au lieu de télécharger un
+  fichier. Il s'agit de leur comportement par défaut (valeur on).
+  Définissez cette directive à "off" pour permettre le téléchargement de
+  fichiers même si leur nom contient des caractères génériques.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="mimetypes" id="mimetypes">Pourquoi les fichiers du type
     <var>xxx</var> ne sont-ils pas téléchargeables par FTP ?</a></h2>
       <code class="directive">ProxyFtpListOnWildcard</code>.
       </p>
     </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyftpdircharset" id="proxyftpdircharset">Directive</a> <a name="ProxyFtpDirCharset" id="ProxyFtpDirCharset">ProxyFtpDirCharset</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le jeu de caractères des listings FTP
-mandatés</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpDirCharset <var>jeu-caractères</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>ProxyFtpDirCharset ISO-8859-1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.7 d'Apache. Déplacé
-depuis <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> à partir de la version 2.3.5 d'Apache</td></tr>
-</table>
-    <p>La directive <code class="directive">ProxyFtpDirCharset</code> permet de
-    définir le jeu de caractères à utiliser pour les listings FTP en
-    HTML générés par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code>.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyftpescapewildcards" id="proxyftpescapewildcards">Directive</a> <a name="ProxyFtpEscapeWildcards" id="ProxyFtpEscapeWildcards">ProxyFtpEscapeWildcards</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les caractères génériques dans les noms de fichiers
-doivent-ils être échappés lorsqu'ils sont envoyés au serveur FTP ?</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpEscapeWildcards [on|off]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.3 du serveur HTTP Apache</td></tr>
-</table>
-  <p>La directive <code class="directive">ProxyFtpEscapeWildcards</code> permet
-  de déterminer si les caractères génériques ("*?[{~") que contiennent
-  les noms de fichiers demandés doivent être échappés pas un slash
-  inversé avant d'être envoyés au serveur FTP. Il s'agit du comportement
-  par défaut ; cependant, de nombreux serveurs FTP n'ont aucune
-  connaissance de la notion d'échappement, et tentent de servir le
-  fichier demandé sous sa forme littérale, en incluant les slashes
-  inversés dans son nom.</p>
-    <p>Définissez cette directive à "off" pour permettre le
-    téléchargement de fichiers dont les noms contiennent des caractères
-    génériques depuis des serveurs FTP qui ne connaissent pas
-    l'échappement des caractères génériques.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="proxyftplistonwildcard" id="proxyftplistonwildcard">Directive</a> <a name="ProxyFtpListOnWildcard" id="ProxyFtpListOnWildcard">ProxyFtpListOnWildcard</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Les caractères génériques dans les noms de fichiers
-demandés doivent-ils déclencher l'affichage d'un listing ?</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyFtpListOnWildcard [on|off]</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_proxy_ftp</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.3.3 du serveur HTTP Apache</td></tr>
-</table>
-  <p>La directive <code class="directive">ProxyFtpListOnWildcard</code> permet
-  de déterminer si les caractères génériques ("*?[{~") que contiennent
-  les noms de fichiers demandés provoquent l'affichage d'un listing de
-  fichiers par <code class="module"><a href="../mod/mod_proxy_ftp.html">mod_proxy_ftp</a></code> au lieu de télécharger un
-  fichier. Il s'agit de leur comportement par défaut (valeur on).
-  Définissez cette directive à "off" pour permettre le téléchargement de
-  fichiers même si leur nom contient des caractères génériques.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_ftp.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3259c46a195bd6eb61e39158878bc9b68306e37d..975e1142708790d7fbddb1a5c9a58a7cec056653 100644 (file)
@@ -71,7 +71,6 @@ extensive <a href="http://apache.webthing.com/mod_proxy_html/">documentation</a>
 <li><img alt="" src="../images/down.gif" /> <a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ProxyHTMLBufSize" id="ProxyHTMLBufSize">ProxyHTMLBufSize</a> <a name="proxyhtmlbufsize" id="proxyhtmlbufsize">Directive</a></h2>
 <table class="directive">
@@ -426,6 +425,7 @@ If TRUE, or if no condition is defined, the map is applied.</p>
 in mod_proxy_html 3.x for HTTPD 2.0 and 2.2 is also supported.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_html.html" title="English">&nbsp;en&nbsp;</a> |
index 3118f0212b613fd4c8746b077cd1c9f429fe749f..43dea5d7701cae9c211a9e9e2589a69dc7698e2a 100644 (file)
@@ -77,7 +77,6 @@ d
 <li><img alt="" src="../images/down.gif" /> <a href="#proxyhtmlurlmap">ProxyHTMLURLMap</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="proxyhtmlbufsize" id="proxyhtmlbufsize">Directive</a> <a name="ProxyHTMLBufSize" id="ProxyHTMLBufSize">ProxyHTMLBufSize</a></h2>
 <table class="directive">
@@ -495,6 +494,7 @@ conditions dans mod_proxy_html 3.x pour HTTPD 2.0 et 2.2 est aussi
 supportée.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_proxy_html.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index fde6e4970cff5b50351a165b5cd5319d58b7e9a8..a35c1a0d6bb37bb33754b078a5be605a30604b2a 100644 (file)
 <li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
-    <p>Remember, in order to make the following examples work, you have to
-    enable <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> and <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>.</p>
-
-    <div class="example"><h3>Simple gateway</h3><pre class="prettyprint lang-config">ProxyPass /scgi-bin/ scgi://localhost:4000/</pre>
-</div>
-
-    <p>The balanced gateway needs <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> and
-    at least one load balancer algorithm module, such as
-    <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code>, in addition to the proxy
-    modules listed above.  <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> is the
-    default, and will be used for this example configuration.</p>
-
-    <div class="example"><h3>Balanced gateway</h3><pre class="prettyprint lang-config">ProxyPass "/scgi-bin/" "balancer://somecluster/"
-&lt;Proxy "balancer://somecluster"&gt;
-    BalancerMember "scgi://localhost:4000"
-    BalancerMember "scgi://localhost:4001"
-&lt;/Proxy&gt;</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="env" id="env">Environment Variables</a></h2>
-    <p>In addition to the configuration directives that control the
-    behaviour of <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, an <dfn>environment
-    variable</dfn> may also control the SCGI protocol
-    provider:</p>
-    <dl>
-        <dt>proxy-scgi-pathinfo</dt>
-        <dd>By default <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> will neither create
-        nor export the <var>PATH_INFO</var> environment variable. This allows
-        the backend SCGI server to correctly determine <var>SCRIPT_NAME</var>
-        and <var>Script-URI</var> and be compliant with RFC 3875 section 3.3.
-        If instead you need <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> to generate
-        a "best guess" for <var>PATH_INFO</var>, set this env-var.  The
-        variable must be set before <code class="directive"><a href="../mod/env.html#setenv">SetEnv</a></code>
-        is effective.  <code class="directive"><a href="../mod/setenv.html#setenvif">SetEnvIf</a></code> can be
-        used instead: <code>SetEnvIf Request_URI . proxy-scgi-pathinfo</code>
-        </dd>
-    </dl>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ProxySCGIInternalRedirect" id="ProxySCGIInternalRedirect">ProxySCGIInternalRedirect</a> <a name="proxyscgiinternalredirect" id="proxyscgiinternalredirect">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable or disable internal redirect responses from the
@@ -171,6 +129,48 @@ ProxySCGISendfile On
 ProxySCGISendfile X-Send-Static</pre>
 </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+    <p>Remember, in order to make the following examples work, you have to
+    enable <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> and <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>.</p>
+
+    <div class="example"><h3>Simple gateway</h3><pre class="prettyprint lang-config">ProxyPass /scgi-bin/ scgi://localhost:4000/</pre>
+</div>
+
+    <p>The balanced gateway needs <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> and
+    at least one load balancer algorithm module, such as
+    <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code>, in addition to the proxy
+    modules listed above.  <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> is the
+    default, and will be used for this example configuration.</p>
+
+    <div class="example"><h3>Balanced gateway</h3><pre class="prettyprint lang-config">ProxyPass "/scgi-bin/" "balancer://somecluster/"
+&lt;Proxy "balancer://somecluster"&gt;
+    BalancerMember "scgi://localhost:4000"
+    BalancerMember "scgi://localhost:4001"
+&lt;/Proxy&gt;</pre>
+</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="env" id="env">Environment Variables</a></h2>
+    <p>In addition to the configuration directives that control the
+    behaviour of <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, an <dfn>environment
+    variable</dfn> may also control the SCGI protocol
+    provider:</p>
+    <dl>
+        <dt>proxy-scgi-pathinfo</dt>
+        <dd>By default <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> will neither create
+        nor export the <var>PATH_INFO</var> environment variable. This allows
+        the backend SCGI server to correctly determine <var>SCRIPT_NAME</var>
+        and <var>Script-URI</var> and be compliant with RFC 3875 section 3.3.
+        If instead you need <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> to generate
+        a "best guess" for <var>PATH_INFO</var>, set this env-var.  The
+        variable must be set before <code class="directive"><a href="../mod/env.html#setenv">SetEnv</a></code>
+        is effective.  <code class="directive"><a href="../mod/setenv.html#setenvif">SetEnvIf</a></code> can be
+        used instead: <code>SetEnvIf Request_URI . proxy-scgi-pathinfo</code>
+        </dd>
+    </dl>
 </div>
 </div>
 <div class="bottomlang">
index 442a0688a54264ecf89a99b03f640ffe1b243e90..68c49c550c6e6b7ef21f549633180cb2d3ef348d 100644 (file)
 <li><code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-    <p>Rappelez-vous, pour que les exemples suivants puissent
-    fonctionner, vous devez activer <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> et
-    <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>.</p>
-
-    <div class="example"><h3>Passerelle simple</h3><pre class="prettyprint lang-config">ProxyPass /scgi-bin/ scgi://localhost:4000/</pre>
-</div>
-
-    <p>La passerelle à répartition de charge nécessite le chargement du
-    module <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> et d'au moins un module
-    fournissant un algorithme de répartition de charge, comme
-    <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> en plus des modules
-    déjà cités. <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> est le module
-    par défaut et sera utilisé dans cet exemple de configuration.</p>
-
-    <div class="example"><h3>Passerelle à répartition de charge</h3><pre class="prettyprint lang-config">ProxyPass /scgi-bin/ balancer://somecluster/
-&lt;Proxy balancer://somecluster&gt;
-    BalancerMember scgi://localhost:4000
-    BalancerMember scgi://localhost:4001
-&lt;/Proxy&gt;</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="env" id="env">Variables d'environnement</a></h2>
-    <p>En plus des directives de configuration qui permettent de
-    contrôler le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, une
-    <dfn>variable d'environnement</dfn> peut aussi
-    contrôler le fournisseur de protocole SCGI :</p>
-    <dl>
-        <dt>proxy-scgi-pathinfo</dt>
-        <dd>Par défaut, <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> ne créera ni
-       exportera jamais la variable d'environnement
-       <var>PATH_INFO</var>. Ceci permet au serveur SCGI d'arrière-plan
-       de déterminer correctement <var>SCRIPT_NAME</var> et
-       <var>Script-URI</var>, et de rester en conformité avec la section
-       3.3 de la RFC 3875. Si au contraire vous souhaitez que
-       <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> génère une estimation la plus
-       précise possible de <var>PATH_INFO</var>, définissez cette
-       variable d'environnement. La variable doit être définie avant
-       que la directive <code class="directive"><a href="../mod/env.html#setenv">SetEnv</a></code> ne soit effective. Il est possible
-       d'utiliser à la place la directive <code class="directive"><a href="../mod/setenv.html#setenvif">SetEnvIf</a></code> : <code>SetEnvIf Request_URI . proxy-scgi-pathinfo</code>
-       </dd>
-    </dl>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="proxyscgiinternalredirect" id="proxyscgiinternalredirect">Directive</a> <a name="ProxySCGIInternalRedirect" id="ProxySCGIInternalRedirect">ProxySCGIInternalRedirect</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive les réponses de redirection interne en
@@ -188,6 +142,52 @@ provenance du serveur cible.</td></tr>
     ProxySCGISendfile X-Send-Static</pre>
 </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
+    <p>Rappelez-vous, pour que les exemples suivants puissent
+    fonctionner, vous devez activer <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> et
+    <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code>.</p>
+
+    <div class="example"><h3>Passerelle simple</h3><pre class="prettyprint lang-config">ProxyPass /scgi-bin/ scgi://localhost:4000/</pre>
+</div>
+
+    <p>La passerelle à répartition de charge nécessite le chargement du
+    module <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> et d'au moins un module
+    fournissant un algorithme de répartition de charge, comme
+    <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> en plus des modules
+    déjà cités. <code class="module"><a href="../mod/mod_lbmethod_byrequests.html">mod_lbmethod_byrequests</a></code> est le module
+    par défaut et sera utilisé dans cet exemple de configuration.</p>
+
+    <div class="example"><h3>Passerelle à répartition de charge</h3><pre class="prettyprint lang-config">ProxyPass /scgi-bin/ balancer://somecluster/
+&lt;Proxy balancer://somecluster&gt;
+    BalancerMember scgi://localhost:4000
+    BalancerMember scgi://localhost:4001
+&lt;/Proxy&gt;</pre>
+</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="env" id="env">Variables d'environnement</a></h2>
+    <p>En plus des directives de configuration qui permettent de
+    contrôler le comportement de <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code>, une
+    <dfn>variable d'environnement</dfn> peut aussi
+    contrôler le fournisseur de protocole SCGI :</p>
+    <dl>
+        <dt>proxy-scgi-pathinfo</dt>
+        <dd>Par défaut, <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> ne créera ni
+       exportera jamais la variable d'environnement
+       <var>PATH_INFO</var>. Ceci permet au serveur SCGI d'arrière-plan
+       de déterminer correctement <var>SCRIPT_NAME</var> et
+       <var>Script-URI</var>, et de rester en conformité avec la section
+       3.3 de la RFC 3875. Si au contraire vous souhaitez que
+       <code class="module"><a href="../mod/mod_proxy_scgi.html">mod_proxy_scgi</a></code> génère une estimation la plus
+       précise possible de <var>PATH_INFO</var>, définissez cette
+       variable d'environnement. La variable doit être définie avant
+       que la directive <code class="directive"><a href="../mod/env.html#setenv">SetEnv</a></code> ne soit effective. Il est possible
+       d'utiliser à la place la directive <code class="directive"><a href="../mod/setenv.html#setenvif">SetEnvIf</a></code> : <code>SetEnvIf Request_URI . proxy-scgi-pathinfo</code>
+       </dd>
+    </dl>
 </div>
 </div>
 <div class="bottomlang">
index 4f988b07e7b42beaba44f26f7a8efcf92c3cb0a2..7c09a405aafd045edc14050e79330c9a09964573 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="ReflectorHeader" id="ReflectorHeader">ReflectorHeader</a> <a name="reflectorheader" id="reflectorheader">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Reflect an input header to the output headers</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ReflectorHeader <var>inputheader</var> <var>[outputheader]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_reflector</td></tr>
+</table>
+    <p>This directive controls the reflection of request headers to the response.
+    The first argument is the name of the request header to copy. If the optional
+    second argument is specified, it will be used as the name of the response
+    header, otherwise the original request header name will be used.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="examples" id="examples">Examples</a></h2>
     <dl>
     </dd>
     </dl>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="ReflectorHeader" id="ReflectorHeader">ReflectorHeader</a> <a name="reflectorheader" id="reflectorheader">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Reflect an input header to the output headers</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ReflectorHeader <var>inputheader</var> <var>[outputheader]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Options</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_reflector</td></tr>
-</table>
-    <p>This directive controls the reflection of request headers to the response.
-    The first argument is the name of the request header to copy. If the optional
-    second argument is specified, it will be used as the name of the response
-    header, otherwise the original request header name will be used.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_reflector.html" title="English">&nbsp;en&nbsp;</a> |
index 4728039239ece72dda3e20d4ae7ad8d438b13be3..6f6dd9036edd5e75621ba8a45d43c80db860f414 100644 (file)
@@ -52,6 +52,24 @@ filtres en sortie.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="reflectorheader" id="reflectorheader">Directive</a> <a name="ReflectorHeader" id="ReflectorHeader">ReflectorHeader</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Réfléchit un en-tête d'entrée dans les en-têtes de sortie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ReflectorHeader <var>en-tête-entrée</var> <var>[en-tête-sortie]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_reflector</td></tr>
+</table>
+    <p>Cette directive permet de contrôler la répercution des en-têtes
+    de la requête dans la réponse. Le premier argument correspond au nom
+    de l'en-tête à copier. Si le second argument (optionnel) est
+    spécifié, il définit le nom sous lequel l'en-tête sera répercuté
+    dans la réponse ; dans le cas contraire, c'est le nom de l'en-tête
+    original qui sera utilisé.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="examples" id="examples">Exemples</a></h2>
     <dl>
@@ -78,24 +96,6 @@ filtres en sortie.</td></tr>
     </dd>
     </dl>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="reflectorheader" id="reflectorheader">Directive</a> <a name="ReflectorHeader" id="ReflectorHeader">ReflectorHeader</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Réfléchit un en-tête d'entrée dans les en-têtes de sortie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ReflectorHeader <var>en-tête-entrée</var> <var>[en-tête-sortie]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_reflector</td></tr>
-</table>
-    <p>Cette directive permet de contrôler la répercution des en-têtes
-    de la requête dans la réponse. Le premier argument correspond au nom
-    de l'en-tête à copier. Si le second argument (optionnel) est
-    spécifié, il définit le nom sous lequel l'en-tête sera répercuté
-    dans la réponse ; dans le cas contraire, c'est le nom de l'en-tête
-    original qui sera utilisé.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_reflector.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index bca106a4e255972f7eda89da18578f0541e90aab..7bba4f54ed2c4b09574e269b4209bd53030f8990 100644 (file)
@@ -77,48 +77,6 @@ via the request headers.
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="processing" id="processing">Remote IP Processing</a></h2>
-
-    <p>Apache by default identifies the useragent with the connection's
-    client_ip value, and the connection remote_host and remote_logname are
-    derived from this value. These fields play a role in authentication,
-    authorization and logging and other purposes by other loadable
-    modules.</p>
-
-    <p>mod_remoteip overrides the client IP of the connection with the
-    advertised useragent IP as provided by a proxy or load balancer, for
-    the duration of the request. A load balancer might establish a long
-    lived keepalive connection with the server, and each request will
-    have the correct useragent IP, even though the underlying client IP
-    address of the load balancer remains unchanged.</p>
-
-    <p>When multiple, comma delimited useragent IP addresses are listed in the
-    header value, they are processed in Right-to-Left order.  Processing
-    halts when a given useragent IP address is not trusted to present the
-    preceding IP address.  The header field is updated to this remaining
-    list of unconfirmed IP addresses, or if all IP addresses were trusted,
-    this header is removed from the request altogether.</p>
-
-    <p>In overriding the client IP, the module stores the list of intermediate
-    hosts in a remoteip-proxy-ip-list note, which <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>
-    can record using the <code>%{remoteip-proxy-ip-list}n</code> format token.
-    If the administrator needs to store this as an additional header, this
-    same value can also be recording as a header using the directive
-    <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code>.</p>
-
-    <div class="note"><h3>IPv4-over-IPv6 Mapped Addresses</h3>
-    As with httpd in general, any IPv4-over-IPv6 mapped addresses are recorded
-    in their IPv4 representation.</div>
-
-    <div class="note"><h3>Internal (Private) Addresses</h3>
-    All internal addresses 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8
-    blocks (and IPv6 addresses outside of the public 2000::/3 block) are only
-    evaluated by mod_remoteip when <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code>
-    internal (intranet) proxies are registered.</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="RemoteIPHeader" id="RemoteIPHeader">RemoteIPHeader</a> <a name="remoteipheader" id="remoteipheader">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Declare the header field which should be parsed for useragent IP addresses</td></tr>
@@ -264,6 +222,48 @@ RemoteIPTrustedProxyList conf/trusted-proxies.lst</pre>
        proxy.isp.example.com #some well known ISP
     </code></p></div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="processing" id="processing">Remote IP Processing</a></h2>
+
+    <p>Apache by default identifies the useragent with the connection's
+    client_ip value, and the connection remote_host and remote_logname are
+    derived from this value. These fields play a role in authentication,
+    authorization and logging and other purposes by other loadable
+    modules.</p>
+
+    <p>mod_remoteip overrides the client IP of the connection with the
+    advertised useragent IP as provided by a proxy or load balancer, for
+    the duration of the request. A load balancer might establish a long
+    lived keepalive connection with the server, and each request will
+    have the correct useragent IP, even though the underlying client IP
+    address of the load balancer remains unchanged.</p>
+
+    <p>When multiple, comma delimited useragent IP addresses are listed in the
+    header value, they are processed in Right-to-Left order.  Processing
+    halts when a given useragent IP address is not trusted to present the
+    preceding IP address.  The header field is updated to this remaining
+    list of unconfirmed IP addresses, or if all IP addresses were trusted,
+    this header is removed from the request altogether.</p>
+
+    <p>In overriding the client IP, the module stores the list of intermediate
+    hosts in a remoteip-proxy-ip-list note, which <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>
+    can record using the <code>%{remoteip-proxy-ip-list}n</code> format token.
+    If the administrator needs to store this as an additional header, this
+    same value can also be recording as a header using the directive
+    <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code>.</p>
+
+    <div class="note"><h3>IPv4-over-IPv6 Mapped Addresses</h3>
+    As with httpd in general, any IPv4-over-IPv6 mapped addresses are recorded
+    in their IPv4 representation.</div>
+
+    <div class="note"><h3>Internal (Private) Addresses</h3>
+    All internal addresses 10/8, 172.16/12, 192.168/16, 169.254/16 and 127/8
+    blocks (and IPv6 addresses outside of the public 2000::/3 block) are only
+    evaluated by mod_remoteip when <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code>
+    internal (intranet) proxies are registered.</div>
+
 </div>
 </div>
 <div class="bottomlang">
index 621bb233125ad6c6f2f9962dcbc4ad1f84ad8857..ed8dc636d87c327f119add6db1229f8dc56aeefa 100644 (file)
@@ -83,53 +83,6 @@ r
 <li><code class="module"><a href="../mod/mod_ident.html">mod_ident</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="processing" id="processing">Traitement des adresses distantes</a></h2>
-
-    <p>Apache identifie le client par la valeur remote_ip de la
-    connexion, et de cette valeur découlent les valeurs remote_host et
-    remote_logname de la connexion. Ces champs jouent un rôle
-    dans l'authentification, l'autorisation et la connexion, ainsi que
-    dans d'autres traitements effectués par d'autres modules
-    chargeables.</p>
-
-    <p>mod_remoteip remplace la véritable remote_ip par la remote_ip
-    indiquée par exemple par un mandataire chaque fois que le serveur
-    effectue une évaluation du client, et réinitialise les valeurs de
-    remote_host et remote_logname afin de déclencher une nouvelle
-    requête dns ou ident sur l'adresse IP distante.</p>
-
-    <p>Lorsque la valeur de l'en-tête comporte plusieurs adresses IP
-    distantes séparées par des virgules, celles-ci sont traitées de la
-    droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP
-    distante courante n'est pas digne de confiance pour présenter
-    l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de
-    façon à ne contenir que cette liste d'adresses non confirmées, ou
-    bien, si toutes les adresses IP sont dignes de confiance, cet
-    en-tête est tout bonnement supprimé de la requête.</p>
-
-    <p>Lors du remplacement de l'adresse IP distante, le module stocke
-    la liste des hôtes intermédiaires dans un mémo
-    remoteip-proxy-ip-list, que l'on peut faire enregistrer par
-    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> en utilisant le symbole de format
-    <code>%{remoteip-proxy-ip-list}n</code>. Si l'administrateur doit
-    stocker ceci dans un en-tête additionnel, la même valeur peut aussi
-    être enregistrée sous la forme d'un en-tête en utilisant la
-    directive <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code>.</p>
-
-    <div class="note"><h3>Adresses IPv4 converties au format IPv6</h3>
-    Avec httpd, d'une manière générale, toute adresse IPv4 convertie au
-    format IPv6 est enregistrée sous sa forme IPv4.</div>
-
-    <div class="note"><h3>Adresses internes (privées)</h3>
-    Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16,
-    169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc
-    public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque
-    des mandataires internes (intranet)
-    <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> sont enregistrés.</div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="remoteipheader" id="remoteipheader">Directive</a> <a name="RemoteIPHeader" id="RemoteIPHeader">RemoteIPHeader</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit le champ d'en-tête qui contiendra les adresses IP
@@ -305,6 +258,53 @@ RemoteIPTrustedProxyList conf/trusted-proxies.lst</pre>
        proxy.isp.example.com #un FAI bien connu
     </code></p></div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="processing" id="processing">Traitement des adresses distantes</a></h2>
+
+    <p>Apache identifie le client par la valeur remote_ip de la
+    connexion, et de cette valeur découlent les valeurs remote_host et
+    remote_logname de la connexion. Ces champs jouent un rôle
+    dans l'authentification, l'autorisation et la connexion, ainsi que
+    dans d'autres traitements effectués par d'autres modules
+    chargeables.</p>
+
+    <p>mod_remoteip remplace la véritable remote_ip par la remote_ip
+    indiquée par exemple par un mandataire chaque fois que le serveur
+    effectue une évaluation du client, et réinitialise les valeurs de
+    remote_host et remote_logname afin de déclencher une nouvelle
+    requête dns ou ident sur l'adresse IP distante.</p>
+
+    <p>Lorsque la valeur de l'en-tête comporte plusieurs adresses IP
+    distantes séparées par des virgules, celles-ci sont traitées de la
+    droite vers la gauche. Le traitement s'arrête lorsque l'adresse IP
+    distante courante n'est pas digne de confiance pour présenter
+    l'adresse IP précédente. Le champ d'en-tête est alors mis à jour de
+    façon à ne contenir que cette liste d'adresses non confirmées, ou
+    bien, si toutes les adresses IP sont dignes de confiance, cet
+    en-tête est tout bonnement supprimé de la requête.</p>
+
+    <p>Lors du remplacement de l'adresse IP distante, le module stocke
+    la liste des hôtes intermédiaires dans un mémo
+    remoteip-proxy-ip-list, que l'on peut faire enregistrer par
+    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> en utilisant le symbole de format
+    <code>%{remoteip-proxy-ip-list}n</code>. Si l'administrateur doit
+    stocker ceci dans un en-tête additionnel, la même valeur peut aussi
+    être enregistrée sous la forme d'un en-tête en utilisant la
+    directive <code class="directive"><a href="#remoteipproxiesheader">RemoteIPProxiesHeader</a></code>.</p>
+
+    <div class="note"><h3>Adresses IPv4 converties au format IPv6</h3>
+    Avec httpd, d'une manière générale, toute adresse IPv4 convertie au
+    format IPv6 est enregistrée sous sa forme IPv4.</div>
+
+    <div class="note"><h3>Adresses internes (privées)</h3>
+    Tous les blocs d'adresses internes 10/8, 172.16/12, 192.168/16,
+    169.254/16 and 127/8 (ainsi que les adresses IPv6 en dehors du bloc
+    public 2000::/3 block) ne sont évaluées par mod_remoteip que lorsque
+    des mandataires internes (intranet)
+    <code class="directive"><a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></code> sont enregistrés.</div>
+
 </div>
 </div>
 <div class="bottomlang">
index 1efc5ab7df33e41e08f5a7c776d0e4c06fd27af2..8aafa445c44143b9403adb6f5e690ed12e39645e 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Examples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Examples</a></h2>
-
-    <ol>
-      <li>
-        Allow 10 seconds to receive the request including the headers and
-        30 seconds for receiving the request body:
-
-        <pre class="prettyprint lang-config">RequestReadTimeout header=10 body=30</pre>
-
-      </li>
-
-      <li>
-        Allow at least 10 seconds to receive the request body.
-        If the client sends data, increase the timeout by 1 second for every
-        1000 bytes received, with no upper limit for the timeout (except for
-        the limit given indirectly by
-        <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>):
-
-        <pre class="prettyprint lang-config">RequestReadTimeout body=10,MinRate=1000</pre>
-
-      </li>
-
-      <li>
-        Allow at least 10 seconds to receive the request including the headers.
-        If the client sends data, increase the timeout by 1 second for every
-        500 bytes received. But do not allow more than 30 seconds for the
-        request including the headers:
-
-        <pre class="prettyprint lang-config">RequestReadTimeout header=10-30,MinRate=500</pre>
-
-      </li>
-
-      <li>
-        Usually, a server should have both header and body timeouts configured.
-        If a common configuration is used for http and https virtual hosts, the
-        timeouts should not be set too low:
-
-        <pre class="prettyprint lang-config">RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500</pre>
-
-      </li>
-
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="RequestReadTimeout" id="RequestReadTimeout">RequestReadTimeout</a> <a name="requestreadtimeout" id="requestreadtimeout">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set timeout values for receiving request headers and body from client.
@@ -169,6 +124,51 @@ version 2.3.14 and earlier.</td></tr>
     </ul>
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Examples</a></h2>
+
+    <ol>
+      <li>
+        Allow 10 seconds to receive the request including the headers and
+        30 seconds for receiving the request body:
+
+        <pre class="prettyprint lang-config">RequestReadTimeout header=10 body=30</pre>
+
+      </li>
+
+      <li>
+        Allow at least 10 seconds to receive the request body.
+        If the client sends data, increase the timeout by 1 second for every
+        1000 bytes received, with no upper limit for the timeout (except for
+        the limit given indirectly by
+        <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>):
+
+        <pre class="prettyprint lang-config">RequestReadTimeout body=10,MinRate=1000</pre>
+
+      </li>
+
+      <li>
+        Allow at least 10 seconds to receive the request including the headers.
+        If the client sends data, increase the timeout by 1 second for every
+        500 bytes received. But do not allow more than 30 seconds for the
+        request including the headers:
+
+        <pre class="prettyprint lang-config">RequestReadTimeout header=10-30,MinRate=500</pre>
+
+      </li>
+
+      <li>
+        Usually, a server should have both header and body timeouts configured.
+        If a common configuration is used for http and https virtual hosts, the
+        timeouts should not be set too low:
+
+        <pre class="prettyprint lang-config">RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500</pre>
+
+      </li>
+
+    </ol>
 </div>
 </div>
 <div class="bottomlang">
index 6e9c1d169446ae3258cf22565e276efac330c7ff..3c37a0ac55e82f9637cbb8010893d92a1f562f04 100644 (file)
@@ -44,52 +44,6 @@ donn
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="examples" id="examples">Exemples</a></h2>
-
-    <ol>
-      <li>
-        Accorde 10 secondes pour la réception des en-têtes de la requête
-       et 30 secondes pour la réception du corps :
-
-        <pre class="prettyprint lang-config">RequestTimeout headerinit=10 body=30</pre>
-
-      </li>
-
-      <li>
-        Accorde au moins 10 secondes pour la réception du corps de
-       la requête. Si le client envoie des données, augmente ce délai
-       d'une seconde pour chaque paquet de 1000 octets reçus, sans
-       limite supérieure (sauf si une limite a été
-       spécifiée via la directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>) :
-
-        <pre class="prettyprint lang-config">RequestReadTimeout body=10,MinRate=1000</pre>
-
-      </li>
-
-      <li>
-        Accorde au moins 10 secondes pour la réception de de la
-       requête, en-têtes inclus. Si le client envoie des données, augmente ce délai
-       d'une seconde pour chaque paquet de 500 octets reçus, mais
-       n'alloue que 30 secondes pour la requête, en-têtes inclus :
-
-        <pre class="prettyprint lang-config">RequestReadTimeout header=10-30,MinRate=500</pre>
-
-      </li>
-
-      <li>
-        En général, un serveur doit avoir ses délais d'en-tête et de
-       corps configurés. Si les serveurs virtuels http et https
-       utilisent une configuration commune, les délais ne doivent pas
-       être définis trop bas :
-
-        <pre class="prettyprint lang-config">RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500</pre>
-
-      </li>
-
-    </ol>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="requestreadtimeout" id="requestreadtimeout">Directive</a> <a name="RequestReadTimeout" id="RequestReadTimeout">RequestReadTimeout</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des délais maximums pour la réception des en-têtes
@@ -179,6 +133,52 @@ Apache ; d
 
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="examples" id="examples">Exemples</a></h2>
+
+    <ol>
+      <li>
+        Accorde 10 secondes pour la réception des en-têtes de la requête
+       et 30 secondes pour la réception du corps :
+
+        <pre class="prettyprint lang-config">RequestTimeout headerinit=10 body=30</pre>
+
+      </li>
+
+      <li>
+        Accorde au moins 10 secondes pour la réception du corps de
+       la requête. Si le client envoie des données, augmente ce délai
+       d'une seconde pour chaque paquet de 1000 octets reçus, sans
+       limite supérieure (sauf si une limite a été
+       spécifiée via la directive <code class="directive"><a href="../mod/core.html#limitrequestbody">LimitRequestBody</a></code>) :
+
+        <pre class="prettyprint lang-config">RequestReadTimeout body=10,MinRate=1000</pre>
+
+      </li>
+
+      <li>
+        Accorde au moins 10 secondes pour la réception de de la
+       requête, en-têtes inclus. Si le client envoie des données, augmente ce délai
+       d'une seconde pour chaque paquet de 500 octets reçus, mais
+       n'alloue que 30 secondes pour la requête, en-têtes inclus :
+
+        <pre class="prettyprint lang-config">RequestReadTimeout header=10-30,MinRate=500</pre>
+
+      </li>
+
+      <li>
+        En général, un serveur doit avoir ses délais d'en-tête et de
+       corps configurés. Si les serveurs virtuels http et https
+       utilisent une configuration commune, les délais ne doivent pas
+       être définis trop bas :
+
+        <pre class="prettyprint lang-config">RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500</pre>
+
+      </li>
+
+    </ol>
 </div>
 </div>
 <div class="bottomlang">
index 0456c8e7ea71b95fa7dee0640d4533e56dbaa09f..f416fd51c3cbb81f624f3c4f9afc9681d70557a0 100644 (file)
@@ -39,7 +39,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#keptbodysize">KeptBodySize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="KeptBodySize" id="KeptBodySize">KeptBodySize</a> <a name="keptbodysize" id="keptbodysize">Directive</a></h2>
 <table class="directive">
@@ -96,6 +95,7 @@ mod_include.</td></tr>
 <li><a href="mod_auth_form.html">mod_auth_form</a> documentation</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_request.html" title="English">&nbsp;en&nbsp;</a> |
index 4dd7669d749cee7c8d7d2184d34b50eac5296b3b..cf67fb4c068c03f482f14ba403d24e3bc3700314 100644 (file)
@@ -40,7 +40,6 @@ les corps de requ
 <li><img alt="" src="../images/down.gif" /> <a href="#keptbodysize">KeptBodySize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="keptbodysize" id="keptbodysize">Directive</a> <a name="KeptBodySize" id="KeptBodySize">KeptBodySize</a></h2>
 <table class="directive">
@@ -102,6 +101,7 @@ comme mod_include.</td></tr>
 <li>la documentation de <a href="mod_auth_form.html">mod_auth_form</a></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_request.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 1dd0f67dc6465ac39146e74c3dbb581f8d5ced15..88ec27bb800e602f4624a5b30088a12cebedb6d4 100644 (file)
@@ -39,7 +39,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#keptbodysize">KeptBodySize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="KeptBodySize" id="KeptBodySize">KeptBodySize</a> <a name="keptbodysize" id="keptbodysize">Yönergesi</a></h2>
 <table class="directive">
@@ -96,6 +95,7 @@ istek gövdesi iptal edilmek yerine belirtilen azami boyutta tutulur.
 <li><a href="mod_auth_form.html">mod_auth_form</a> belgesi</li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_request.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index e076dee3db6db5f43bcc0641e183ba03b118843a..83fc59430b370ad4f5575365af086ee8081d48d5 100644 (file)
@@ -68,42 +68,6 @@ URLs on the fly</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#logging">Logging</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logging" id="logging">Logging</a></h2>
-
-    <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> offers detailed logging of its actions
-    at the <code>trace1</code> to <code>trace8</code> log levels. The
-    log level can be set specifically for <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-    using the <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> directive: Up to
-    level <code>debug</code>, no actions are logged, while <code>trace8</code>
-    means that practically all actions are logged.</p>
-
-    <div class="note">
-      Using a high trace log level for <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-      will slow down your Apache HTTP Server dramatically! Use a log
-      level higher than <code>trace2</code> only for debugging!
-    </div>
-
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogLevel alert rewrite:trace3</pre>
-</div>
-
-    <div class="note"><h3>RewriteLog</h3>
-      <p>Those familiar with earlier versions of
-      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> will no doubt be looking for the
-      <code>RewriteLog</code> and <code>RewriteLogLevel</code>
-      directives. This functionality has been completely replaced by the
-      new per-module logging configuration mentioned above.
-      </p>
-
-      <p>To get just the <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>-specific log
-      messages, pipe the log file through grep:</p>
-    <div class="example"><p><code>
-    tail -f error_log|fgrep '[rewrite:'
-    </code></p></div>
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="RewriteBase" id="RewriteBase">RewriteBase</a> <a name="rewritebase" id="rewritebase">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets the base URL for per-directory rewrites</td></tr>
@@ -1457,6 +1421,42 @@ redirection</td>
 </table>
 
   
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logging" id="logging">Logging</a></h2>
+
+    <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> offers detailed logging of its actions
+    at the <code>trace1</code> to <code>trace8</code> log levels. The
+    log level can be set specifically for <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+    using the <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> directive: Up to
+    level <code>debug</code>, no actions are logged, while <code>trace8</code>
+    means that practically all actions are logged.</p>
+
+    <div class="note">
+      Using a high trace log level for <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+      will slow down your Apache HTTP Server dramatically! Use a log
+      level higher than <code>trace2</code> only for debugging!
+    </div>
+
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">LogLevel alert rewrite:trace3</pre>
+</div>
+
+    <div class="note"><h3>RewriteLog</h3>
+      <p>Those familiar with earlier versions of
+      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> will no doubt be looking for the
+      <code>RewriteLog</code> and <code>RewriteLogLevel</code>
+      directives. This functionality has been completely replaced by the
+      new per-module logging configuration mentioned above.
+      </p>
+
+      <p>To get just the <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>-specific log
+      messages, pipe the log file through grep:</p>
+    <div class="example"><p><code>
+    tail -f error_log|fgrep '[rewrite:'
+    </code></p></div>
+    </div>
+
 </div>
 </div>
 <div class="bottomlang">
index 8416eeb338419d71753ff2baaf8f114118dd97a6..0ccb68a5d3e5225307f6c0dd7d1f454863d2dba5 100644 (file)
@@ -77,46 +77,6 @@ r
 <li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logging" id="logging">Journalisation</a></h2>
-
-    <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> offre une journalisation détaillée
-    de ses actions aux niveaux de journalisation <code>trace1</code> à
-    <code>trace8</code>. Le niveau de journalisation peut être défini de
-    manière spécifique à <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> via la directive
-    <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> : jusqu'au niveau
-    <code>debug</code> aucune action n'est journalisée, alors qu'elles
-    le sont pratiquement toutes au niveau <code>trace8</code>.</p>
-
-    <div class="note">
-      L'utilisation d'un niveau de journalisation élevé pour
-      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> va ralentir votre serveur HTTP Apache
-      de manière dramatique ! N'utilisez un niveau de journalisation
-      supérieur à <code>trace2</code> qu'à des fins de débogage !
-    </div>
-
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogLevel alert rewrite:trace3</pre>
-</div>
-
-    <div class="note"><h3>RewriteLog</h3>
-      <p>Ceux qui sont familiers avec les versions précédentes de
-      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> vont probablement rechercher en vain les
-      directives <code>RewriteLog</code> et
-      <code>RewriteLogLevel</code>. Elles ont été en effet remplacées
-      par une configuration de la journalisation par module, comme
-      mentionné plus haut.
-      </p>
-
-      <p>Pour extraire les traces spécifiques à
-      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, affichez le fichier journal en
-      redirigeant la sortie vers grep :</p>
-    <div class="example"><p><code>
-    tail -f error_log|fgrep '[rewrite:'
-    </code></p></div>
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="rewritebase" id="rewritebase">Directive</a> <a name="RewriteBase" id="RewriteBase">RewriteBase</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit l'URL de base pour les réécritures au niveau
@@ -1569,6 +1529,46 @@ externe</td>
 </table>
 
   
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logging" id="logging">Journalisation</a></h2>
+
+    <p><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> offre une journalisation détaillée
+    de ses actions aux niveaux de journalisation <code>trace1</code> à
+    <code>trace8</code>. Le niveau de journalisation peut être défini de
+    manière spécifique à <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> via la directive
+    <code class="directive"><a href="../mod/core.html#loglevel">LogLevel</a></code> : jusqu'au niveau
+    <code>debug</code> aucune action n'est journalisée, alors qu'elles
+    le sont pratiquement toutes au niveau <code>trace8</code>.</p>
+
+    <div class="note">
+      L'utilisation d'un niveau de journalisation élevé pour
+      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> va ralentir votre serveur HTTP Apache
+      de manière dramatique ! N'utilisez un niveau de journalisation
+      supérieur à <code>trace2</code> qu'à des fins de débogage !
+    </div>
+
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">LogLevel alert rewrite:trace3</pre>
+</div>
+
+    <div class="note"><h3>RewriteLog</h3>
+      <p>Ceux qui sont familiers avec les versions précédentes de
+      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code> vont probablement rechercher en vain les
+      directives <code>RewriteLog</code> et
+      <code>RewriteLogLevel</code>. Elles ont été en effet remplacées
+      par une configuration de la journalisation par module, comme
+      mentionné plus haut.
+      </p>
+
+      <p>Pour extraire les traces spécifiques à
+      <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>, affichez le fichier journal en
+      redirigeant la sortie vers grep :</p>
+    <div class="example"><p><code>
+    tail -f error_log|fgrep '[rewrite:'
+    </code></p></div>
+    </div>
+
 </div>
 </div>
 <div class="bottomlang">
index 2f1380bc0e444f83e7f6172a72a937d217fdde34..9bc6b313ae75aa63e82c9da4df283c31ee4c0185 100644 (file)
@@ -73,6 +73,34 @@ the author's blog</a>.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#sed_commands">Sed Commands</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="InputSed" id="InputSed">InputSed</a> <a name="inputsed" id="inputsed">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command to filter request data (typically <code>POST</code> data)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>InputSed <var>sed-command</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
+</table>
+    <p>The <code class="directive">InputSed</code> directive specifies the <code>sed</code> command
+    to execute on the request data e.g., <code>POST</code> data.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="OutputSed" id="OutputSed">OutputSed</a> <a name="outputsed" id="outputsed">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command for filtering response content</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>OutputSed <var>sed-command</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
+</table>
+    <p>The <code class="directive">OutputSed</code> directive specifies the <code>sed</code>
+    command to execute on the response.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="sampleconf" id="sampleconf">Sample Configuration</a></h2>
     <div class="example"><h3>Adding an output filter </h3><pre class="prettyprint lang-config"># In the following example, the sed filter will change the string
@@ -117,34 +145,6 @@ page</a>.
         <dd>Swap the contents of the hold buffer and the current line.</dd>
     </dl>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="InputSed" id="InputSed">InputSed</a> <a name="inputsed" id="inputsed">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command to filter request data (typically <code>POST</code> data)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>InputSed <var>sed-command</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
-</table>
-    <p>The <code class="directive">InputSed</code> directive specifies the <code>sed</code> command
-    to execute on the request data e.g., <code>POST</code> data.
-    </p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="OutputSed" id="OutputSed">OutputSed</a> <a name="outputsed" id="outputsed">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sed command for filtering response content</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>OutputSed <var>sed-command</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Experimental</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
-</table>
-    <p>The <code class="directive">OutputSed</code> directive specifies the <code>sed</code>
-    command to execute on the response.
-    </p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_sed.html" title="English">&nbsp;en&nbsp;</a> |
index 34494ba9b89e74f67c8cdae7d893cc1cee323189..628033a8fb11c439e4b265567d2abde0c803c210 100644 (file)
@@ -83,6 +83,38 @@ recherche/remplacement de cha
 <li><img alt="" src="../images/down.gif" /> <a href="#sed_commands">Commandes sed</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="inputsed" id="inputsed">Directive</a> <a name="InputSed" id="InputSed">InputSed</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Commande sed à exécuter pour le filtrage des données d'une
+requête (en général des données <code>POST</code>)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>InputSed <var>commande-sed</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td /></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
+</table>
+    <p>La directive <code class="directive">InputSed</code> permet de spécifier
+    la commande sed à exécuter pour le filtrage des données (en général
+    des données <code>POST</code>) d'une requête.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="outputsed" id="outputsed">Directive</a> <a name="OutputSed" id="OutputSed">OutputSed</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Commande sed pour le filtrage des contenus de type
+réponse</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>OutputSed <var>commande-sed</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td /></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
+</table>
+    <p>La directive <code class="directive">OutputSed</code> permet de spécifier
+    la commande <code>sed</code> à exécuter dans le cadre du traitement
+    d'une réponse.
+    </p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="sampleconf" id="sampleconf">Exemple de configuration</a></h2>
     <div class="example"><h3>Ajout d'un filtre en sortie</h3><pre class="prettyprint lang-config"># Dans l'exemple suivant, le filtre sed va remplacer la chaîne
@@ -127,38 +159,6 @@ recherche/remplacement de cha
         <dd>Echange les contenus du tampon et de la ligne courante.</dd>
     </dl>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="inputsed" id="inputsed">Directive</a> <a name="InputSed" id="InputSed">InputSed</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Commande sed à exécuter pour le filtrage des données d'une
-requête (en général des données <code>POST</code>)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>InputSed <var>commande-sed</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td /></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
-</table>
-    <p>La directive <code class="directive">InputSed</code> permet de spécifier
-    la commande sed à exécuter pour le filtrage des données (en général
-    des données <code>POST</code>) d'une requête.
-    </p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="outputsed" id="outputsed">Directive</a> <a name="OutputSed" id="OutputSed">OutputSed</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Commande sed pour le filtrage des contenus de type
-réponse</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>OutputSed <var>commande-sed</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td /></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_sed</td></tr>
-</table>
-    <p>La directive <code class="directive">OutputSed</code> permet de spécifier
-    la commande <code>sed</code> à exécuter dans le cadre du traitement
-    d'une réponse.
-    </p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_sed.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 09efce4878445d0cc90a9edff4b753cdfe53d739..9c8214657ac80a0643826eb616ea9c0f6057ea5e 100644 (file)
 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="Session" id="Session">Session</a> <a name="session" id="session">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a session for the current directory or location</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Session On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Session Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>The <code class="directive">Session</code> directive enables a session for the
+    directory or location container. Further directives control where the
+    session will be stored and how privacy is maintained.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SessionEnv" id="SessionEnv">SessionEnv</a> <a name="sessionenv" id="sessionenv">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Control whether the contents of the session are written to the
+<var>HTTP_SESSION</var> environment variable</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionEnv On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionEnv Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>If set to <var>On</var>, the <code class="directive">SessionEnv</code> directive
+    causes the contents of the session to be written to a CGI environment
+    variable called <var>HTTP_SESSION</var>.</p>
+
+    <p>The string is written in the URL query format, for example:</p>
+
+    <div class="example"><p><code>
+      <code>key1=foo&amp;key3=bar</code>
+    </code></p></div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SessionExclude" id="SessionExclude">SessionExclude</a> <a name="sessionexclude" id="sessionexclude">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define URL prefixes for which a session is ignored</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionExclude <var>path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>The <code class="directive">SessionExclude</code> directive allows sessions to
+    be disabled relative to URL prefixes only. This can be used to make a
+    website more efficient, by targeting a more precise URL space for which
+    a session should be maintained. By default, all URLs within the directory
+    or location are included in the session. The
+    <code class="directive"><a href="#sessionexclude">SessionExclude</a></code> directive takes
+    precedence over the
+    <code class="directive"><a href="#sessioninclude">SessionInclude</a></code> directive.</p>
+
+    <div class="warning"><h3>Warning</h3>
+    <p>This directive has a similar purpose to the <var>path</var> attribute
+    in HTTP cookies, but should not be confused with this attribute. This
+    directive does not set the <var>path</var> attribute, which must be
+    configured separately.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SessionHeader" id="SessionHeader">SessionHeader</a> <a name="sessionheader" id="sessionheader">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Import session updates from a given HTTP response header</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionHeader <var>header</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>The <code class="directive">SessionHeader</code> directive defines the name of an
+    HTTP response header which, if present, will be parsed and written to the
+    current session.</p>
+
+    <p>The header value is expected to be in the URL query format, for example:</p>
+
+    <div class="example"><p><code>
+      <code>key1=foo&amp;key2=&amp;key3=bar</code>
+    </code></p></div>
+
+    <p>Where a key is set to the empty string, that key will be removed from the
+    session.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SessionInclude" id="SessionInclude">SessionInclude</a> <a name="sessioninclude" id="sessioninclude">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define URL prefixes for which a session is valid</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionInclude <var>path</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>all URLs</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>The <code class="directive">SessionInclude</code> directive allows sessions to
+    be made valid for specific URL prefixes only. This can be used to make a
+    website more efficient, by targeting a more precise URL space for which
+    a session should be maintained. By default, all URLs within the directory
+    or location are included in the session.</p>
+
+    <div class="warning"><h3>Warning</h3>
+    <p>This directive has a similar purpose to the <var>path</var> attribute
+    in HTTP cookies, but should not be confused with this attribute. This
+    directive does not set the <var>path</var> attribute, which must be
+    configured separately.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="SessionMaxAge" id="SessionMaxAge">SessionMaxAge</a> <a name="sessionmaxage" id="sessionmaxage">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a maximum age in seconds for a session</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionMaxAge <var>maxage</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionMaxAge 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>The <code class="directive">SessionMaxAge</code> directive defines a time limit
+    for which a session will remain valid. When a session is saved, this time
+    limit is reset and an existing session can be continued. If a session
+    becomes older than this limit without a request to the server to refresh
+    the session, the session will time out and be removed. Where a session is
+    used to stored user login details, this has the effect of logging the user
+    out automatically after the given time.</p>
+
+    <p>Setting the maxage to zero disables session expiry.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="whatisasession" id="whatisasession">What is a session?</a></h2>
       <p>At the core of the session interface is a table of key and value pairs
@@ -343,144 +481,6 @@ AuthName realm
       </dl>
 
     </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="Session" id="Session">Session</a> <a name="session" id="session">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enables a session for the current directory or location</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>Session On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>Session Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>The <code class="directive">Session</code> directive enables a session for the
-    directory or location container. Further directives control where the
-    session will be stored and how privacy is maintained.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SessionEnv" id="SessionEnv">SessionEnv</a> <a name="sessionenv" id="sessionenv">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Control whether the contents of the session are written to the
-<var>HTTP_SESSION</var> environment variable</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionEnv On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionEnv Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>If set to <var>On</var>, the <code class="directive">SessionEnv</code> directive
-    causes the contents of the session to be written to a CGI environment
-    variable called <var>HTTP_SESSION</var>.</p>
-
-    <p>The string is written in the URL query format, for example:</p>
-
-    <div class="example"><p><code>
-      <code>key1=foo&amp;key3=bar</code>
-    </code></p></div>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SessionExclude" id="SessionExclude">SessionExclude</a> <a name="sessionexclude" id="sessionexclude">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define URL prefixes for which a session is ignored</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionExclude <var>path</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>The <code class="directive">SessionExclude</code> directive allows sessions to
-    be disabled relative to URL prefixes only. This can be used to make a
-    website more efficient, by targeting a more precise URL space for which
-    a session should be maintained. By default, all URLs within the directory
-    or location are included in the session. The
-    <code class="directive"><a href="#sessionexclude">SessionExclude</a></code> directive takes
-    precedence over the
-    <code class="directive"><a href="#sessioninclude">SessionInclude</a></code> directive.</p>
-
-    <div class="warning"><h3>Warning</h3>
-    <p>This directive has a similar purpose to the <var>path</var> attribute
-    in HTTP cookies, but should not be confused with this attribute. This
-    directive does not set the <var>path</var> attribute, which must be
-    configured separately.</p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SessionHeader" id="SessionHeader">SessionHeader</a> <a name="sessionheader" id="sessionheader">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Import session updates from a given HTTP response header</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionHeader <var>header</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>The <code class="directive">SessionHeader</code> directive defines the name of an
-    HTTP response header which, if present, will be parsed and written to the
-    current session.</p>
-
-    <p>The header value is expected to be in the URL query format, for example:</p>
-
-    <div class="example"><p><code>
-      <code>key1=foo&amp;key2=&amp;key3=bar</code>
-    </code></p></div>
-
-    <p>Where a key is set to the empty string, that key will be removed from the
-    session.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SessionInclude" id="SessionInclude">SessionInclude</a> <a name="sessioninclude" id="sessioninclude">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define URL prefixes for which a session is valid</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionInclude <var>path</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>all URLs</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>The <code class="directive">SessionInclude</code> directive allows sessions to
-    be made valid for specific URL prefixes only. This can be used to make a
-    website more efficient, by targeting a more precise URL space for which
-    a session should be maintained. By default, all URLs within the directory
-    or location are included in the session.</p>
-
-    <div class="warning"><h3>Warning</h3>
-    <p>This directive has a similar purpose to the <var>path</var> attribute
-    in HTTP cookies, but should not be confused with this attribute. This
-    directive does not set the <var>path</var> attribute, which must be
-    configured separately.</p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="SessionMaxAge" id="SessionMaxAge">SessionMaxAge</a> <a name="sessionmaxage" id="sessionmaxage">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Define a maximum age in seconds for a session</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>SessionMaxAge <var>maxage</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>SessionMaxAge 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Override:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>The <code class="directive">SessionMaxAge</code> directive defines a time limit
-    for which a session will remain valid. When a session is saved, this time
-    limit is reset and an existing session can be continued. If a session
-    becomes older than this limit without a request to the server to refresh
-    the session, the session will time out and be removed. Where a session is
-    used to stored user login details, this has the effect of logging the user
-    out automatically after the given time.</p>
-
-    <p>Setting the maxage to zero disables session expiry.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_session.html" title="English">&nbsp;en&nbsp;</a> |
index 8238103164c3af333cbbebdc3e7f40018bd70e44..1607a278385394a749b13bd85d7d03ccc314552a 100644 (file)
 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="session" id="session">Directive</a> <a name="Session" id="Session">Session</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ouvre une session pour le contexte courant</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Session On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Session Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>La directive <code class="directive">Session</code> permet d'ouvrir une
+    session pour le contexte ou conteneur courant. Les directives
+    suivantes permettent de définir où la session sera stockée et
+    comment sera assurée la confidentialité.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sessionenv" id="sessionenv">Directive</a> <a name="SessionEnv" id="SessionEnv">SessionEnv</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si le contenu de la session doit être enregistré
+dans la variable d'environnement <var>HTTP_SESSION</var></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionEnv On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionEnv Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>Lorsque la directive <code class="directive">SessionEnv</code> est
+    définie à <var>On</var>, le contenu de la session est enregistré
+    dans une variable d'environnement CGI nommée
+    <var>HTTP_SESSION</var>.</p>
+
+    <p>La chaîne est écrite sous le même format que celui de la chaîne
+    d'arguments d'une URL, comme dans l'exemple suivant :</p>
+
+    <div class="example"><p><code>
+      <code>clé1=foo&amp;clé3=bar</code>
+    </code></p></div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sessionexclude" id="sessionexclude">Directive</a> <a name="SessionExclude" id="SessionExclude">SessionExclude</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les préfixes d'URLs pour lesquels une session sera
+ignorée</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionExclude <var>chemin</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>La directive <code class="directive">SessionExclude</code> permet de
+    définir les préfixes d'URLs pour lesquels la session sera
+    désactivée. Ceci peut améliorer l'efficacité d'un site web, en
+    ciblant de manière plus précise l'espace d'URL pour lequel une
+    session devra être maintenue. Par défaut, toutes les URLs du
+    contexte ou du conteneur courant sont incluses dans la session. La
+    directive <code class="directive"><a href="#sessionexclude">SessionExclude</a></code>
+    l'emporte sur la directive <code class="directive"><a href="#sessioninclude">SessionInclude</a></code>.</p>
+
+    <div class="warning"><h3>Avertissement</h3>
+    <p>Cette directive a un comportement similaire à celui de l'attribut
+    <var>chemin</var> des cookies HTTP, mais ne doit pas être confondue
+    avec cet attribut. En effet, cette directive ne définit pas
+    l'attribut <var>chemin</var>, qui doit être configuré
+    séparément.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sessionheader" id="sessionheader">Directive</a> <a name="SessionHeader" id="SessionHeader">SessionHeader</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Importation des mises à jour de session depuis l'en-tête de
+réponse HTTP spécifié</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionHeader <var>en-tête</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>La directive <code class="directive">SessionHeader</code> permet de
+    définir le nom d'un en-tête de réponse HTTP qui, s'il est présent,
+    sera lu et son contenu écrit dans la session courante.</p>
+
+    <p>Le contenu de l'en-tête doit se présenter sous le même format que
+    celui de la chaîne d'arguments d'une URL, comme dans l'exemple
+    suivant :</p>
+
+    <div class="example"><p><code>
+      <code>clé1=foo&amp;clé2=&amp;clé3=bar</code>
+    </code></p></div>
+
+    <p>Si une clé a pour valeur la chaîne vide, elle sera supprimée de
+    la session.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sessioninclude" id="sessioninclude">Directive</a> <a name="SessionInclude" id="SessionInclude">SessionInclude</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les préfixes d'URL pour lesquels une session est
+valide</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionInclude <var>chemin</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>toutes URLs</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>La directive <code class="directive">SessionInclude</code> permet de
+    définir les préfixes d'URL spécifiques pour lesquels une session
+    sera valide. Ceci peut améliorer l'efficacité d'un site web, en
+    ciblant de manière plus précise l'espace d'URL pour lequel une
+    session devra être maintenue. Par défaut, toutes les URLs du
+    contexte ou du conteneur courant sont incluses dans la session.</p>
+
+    <div class="warning"><h3>Avertissement</h3>
+    <p>Cette directive a un comportement similaire à celui de l'attribut
+    <var>chemin</var> des cookies HTTP, mais ne doit pas être confondue
+    avec cet attribut. En effet, cette directive ne définit pas
+    l'attribut <var>chemin</var>, qui doit être configuré séparément.</p></div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sessionmaxage" id="sessionmaxage">Directive</a> <a name="SessionMaxAge" id="SessionMaxAge">SessionMaxAge</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une durée de vie maximale pour la session en
+secondes</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionMaxAge <var>durée de vie maximale</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionMaxAge 0</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
+</table>
+    <p>La directive <code class="directive">SessionMaxAge</code> permet de
+    définir la durée maximale pendant laquelle une session restera
+    valide. Lorsqu'une session est sauvegardée, cette durée est
+    réinitialisée et la session peut continuer d'exister. Si la durée
+    d'une session dépasse cette limite sans qu'une requête au serveur ne
+    vienne la rafraîchir, la session va passer hors délai et sera
+    supprimée. Lorsqu'une session est utilisée pour stocker les
+    informations de connexion d'un utilisateur, ceci aura pour effet de
+    le déconnecter automatiquement après le délai spécifié.</p>
+
+    <p>Donner à cette directive la valeur 0 empêche l'expiration de la
+    session.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="whatisasession" id="whatisasession">Qu'est-ce qu'une session ?</a></h2>
       <p>Au coeur de l'interface de session se trouve une table de
@@ -395,158 +547,6 @@ AuthName realm
       </dl>
 
     </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="session" id="session">Directive</a> <a name="Session" id="Session">Session</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ouvre une session pour le contexte courant</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>Session On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>Session Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>La directive <code class="directive">Session</code> permet d'ouvrir une
-    session pour le contexte ou conteneur courant. Les directives
-    suivantes permettent de définir où la session sera stockée et
-    comment sera assurée la confidentialité.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sessionenv" id="sessionenv">Directive</a> <a name="SessionEnv" id="SessionEnv">SessionEnv</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit si le contenu de la session doit être enregistré
-dans la variable d'environnement <var>HTTP_SESSION</var></td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionEnv On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionEnv Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>Lorsque la directive <code class="directive">SessionEnv</code> est
-    définie à <var>On</var>, le contenu de la session est enregistré
-    dans une variable d'environnement CGI nommée
-    <var>HTTP_SESSION</var>.</p>
-
-    <p>La chaîne est écrite sous le même format que celui de la chaîne
-    d'arguments d'une URL, comme dans l'exemple suivant :</p>
-
-    <div class="example"><p><code>
-      <code>clé1=foo&amp;clé3=bar</code>
-    </code></p></div>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sessionexclude" id="sessionexclude">Directive</a> <a name="SessionExclude" id="SessionExclude">SessionExclude</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les préfixes d'URLs pour lesquels une session sera
-ignorée</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionExclude <var>chemin</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>La directive <code class="directive">SessionExclude</code> permet de
-    définir les préfixes d'URLs pour lesquels la session sera
-    désactivée. Ceci peut améliorer l'efficacité d'un site web, en
-    ciblant de manière plus précise l'espace d'URL pour lequel une
-    session devra être maintenue. Par défaut, toutes les URLs du
-    contexte ou du conteneur courant sont incluses dans la session. La
-    directive <code class="directive"><a href="#sessionexclude">SessionExclude</a></code>
-    l'emporte sur la directive <code class="directive"><a href="#sessioninclude">SessionInclude</a></code>.</p>
-
-    <div class="warning"><h3>Avertissement</h3>
-    <p>Cette directive a un comportement similaire à celui de l'attribut
-    <var>chemin</var> des cookies HTTP, mais ne doit pas être confondue
-    avec cet attribut. En effet, cette directive ne définit pas
-    l'attribut <var>chemin</var>, qui doit être configuré
-    séparément.</p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sessionheader" id="sessionheader">Directive</a> <a name="SessionHeader" id="SessionHeader">SessionHeader</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Importation des mises à jour de session depuis l'en-tête de
-réponse HTTP spécifié</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionHeader <var>en-tête</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>La directive <code class="directive">SessionHeader</code> permet de
-    définir le nom d'un en-tête de réponse HTTP qui, s'il est présent,
-    sera lu et son contenu écrit dans la session courante.</p>
-
-    <p>Le contenu de l'en-tête doit se présenter sous le même format que
-    celui de la chaîne d'arguments d'une URL, comme dans l'exemple
-    suivant :</p>
-
-    <div class="example"><p><code>
-      <code>clé1=foo&amp;clé2=&amp;clé3=bar</code>
-    </code></p></div>
-
-    <p>Si une clé a pour valeur la chaîne vide, elle sera supprimée de
-    la session.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sessioninclude" id="sessioninclude">Directive</a> <a name="SessionInclude" id="SessionInclude">SessionInclude</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les préfixes d'URL pour lesquels une session est
-valide</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionInclude <var>chemin</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>toutes URLs</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>La directive <code class="directive">SessionInclude</code> permet de
-    définir les préfixes d'URL spécifiques pour lesquels une session
-    sera valide. Ceci peut améliorer l'efficacité d'un site web, en
-    ciblant de manière plus précise l'espace d'URL pour lequel une
-    session devra être maintenue. Par défaut, toutes les URLs du
-    contexte ou du conteneur courant sont incluses dans la session.</p>
-
-    <div class="warning"><h3>Avertissement</h3>
-    <p>Cette directive a un comportement similaire à celui de l'attribut
-    <var>chemin</var> des cookies HTTP, mais ne doit pas être confondue
-    avec cet attribut. En effet, cette directive ne définit pas
-    l'attribut <var>chemin</var>, qui doit être configuré séparément.</p></div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sessionmaxage" id="sessionmaxage">Directive</a> <a name="SessionMaxAge" id="SessionMaxAge">SessionMaxAge</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit une durée de vie maximale pour la session en
-secondes</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SessionMaxAge <var>durée de vie maximale</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SessionMaxAge 0</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_session</td></tr>
-</table>
-    <p>La directive <code class="directive">SessionMaxAge</code> permet de
-    définir la durée maximale pendant laquelle une session restera
-    valide. Lorsqu'une session est sauvegardée, cette durée est
-    réinitialisée et la session peut continuer d'exister. Si la durée
-    d'une session dépasse cette limite sans qu'une requête au serveur ne
-    vienne la rafraîchir, la session va passer hors délai et sera
-    supprimée. Lorsqu'une session est utilisée pour stocker les
-    informations de connexion d'un utilisateur, ceci aura pour effet de
-    le déconnecter automatiquement après le délai spécifié.</p>
-
-    <p>Donner à cette directive la valeur 0 empêche l'expiration de la
-    session.</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_session.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 1b7f91ce0e0ee944e8a53727734a27ceaa065549..b638bff330f848d1b1435f6ddd3d6b22f38f47bb 100644 (file)
 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicexamples" id="basicexamples">Basic Examples</a></h2>
-
-      <p>To create a simple session and store it in a cookie called
-      <var>session</var>, configure the session as follows:</p>
-
-      <div class="example"><h3>Browser based session</h3><pre class="prettyprint lang-config">Session On
-SessionCookieName session path=/</pre>
-</div>
-
-      <p>For more examples on how the session can be configured to be read
-      from and written to by a CGI application, see the
-      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> examples section.</p>
-
-      <p>For documentation on how the session can be used to store username
-      and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SessionCookieName" id="SessionCookieName">SessionCookieName</a> <a name="sessioncookiename" id="sessioncookiename">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Name and attributes for the RFC2109 cookie storing the session</td></tr>
@@ -164,6 +145,25 @@ SessionCookieName2 session path=/private;domain=example.com;httponly;secure;vers
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicexamples" id="basicexamples">Basic Examples</a></h2>
+
+      <p>To create a simple session and store it in a cookie called
+      <var>session</var>, configure the session as follows:</p>
+
+      <div class="example"><h3>Browser based session</h3><pre class="prettyprint lang-config">Session On
+SessionCookieName session path=/</pre>
+</div>
+
+      <p>For more examples on how the session can be configured to be read
+      from and written to by a CGI application, see the
+      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> examples section.</p>
+
+      <p>For documentation on how the session can be used to store username
+      and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_session_cookie.html" title="English">&nbsp;en&nbsp;</a> |
index 7347fd700c089598552c3708ca578f7abd9e73c6..a8ab01406b5f08ea86218a2a6dae287d45148d71 100644 (file)
 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicexamples" id="basicexamples">Exemples simples</a></h2>
-
-      <p>Pour créer une session et la stocker dans un cookie nommé
-      <var>session</var>, configurez-la comme suit :</p>
-
-      <div class="example"><h3>Session stockée au niveau du navigateur</h3><pre class="prettyprint lang-config">Session On
-SessionCookieName session path=/</pre>
-</div>
-
-      <p>Pour plus d'exemples sur la manière dont une session doit être
-      configurée pour qu'une application CGI puisse l'utiliser, voir la
-      section exemples de la documentation du module
-      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
-
-      <p>Pour des détails sur la manière dont une session peut être
-      utilisée pour stocker des informations de type nom
-      d'utilisateur/mot de passe, voir la documentation du module
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="sessioncookiename" id="sessioncookiename">Directive</a> <a name="SessionCookieName" id="SessionCookieName">SessionCookieName</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom et attributs du cookie RFC2109 dans lequel la session
@@ -184,6 +162,28 @@ des en-t
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicexamples" id="basicexamples">Exemples simples</a></h2>
+
+      <p>Pour créer une session et la stocker dans un cookie nommé
+      <var>session</var>, configurez-la comme suit :</p>
+
+      <div class="example"><h3>Session stockée au niveau du navigateur</h3><pre class="prettyprint lang-config">Session On
+SessionCookieName session path=/</pre>
+</div>
+
+      <p>Pour plus d'exemples sur la manière dont une session doit être
+      configurée pour qu'une application CGI puisse l'utiliser, voir la
+      section exemples de la documentation du module
+      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
+
+      <p>Pour des détails sur la manière dont une session peut être
+      utilisée pour stocker des informations de type nom
+      d'utilisateur/mot de passe, voir la documentation du module
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_session_cookie.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index c6433029c8bce94b924d631a8c4f4c35ed81d9b9..2f46202e3c8c7cd38e799f6e772a5b35333bc7cd 100644 (file)
 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicusage" id="basicusage">Basic Usage</a></h2>
-
-      <p>To create a simple encrypted session and store it in a cookie called
-      <var>session</var>, configure the session as follows:</p>
-
-      <div class="example"><h3>Browser based encrypted session</h3><pre class="prettyprint lang-config">Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>The session will be encrypted with the given key. Different servers can
-      be configured to share sessions by ensuring the same encryption key is used
-      on each server.</p>
-
-      <p>If the encryption key is changed, sessions will be invalidated
-      automatically.</p>
-
-      <p>For documentation on how the session can be used to store username
-      and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SessionCryptoCipher" id="SessionCryptoCipher">SessionCryptoCipher</a> <a name="sessioncryptocipher" id="sessioncryptocipher">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The crypto cipher to be used to encrypt the session</td></tr>
@@ -232,6 +209,29 @@ SessionCryptoPassphrase "exec:/path/to/otherProgram argument1"</pre></div>
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicusage" id="basicusage">Basic Usage</a></h2>
+
+      <p>To create a simple encrypted session and store it in a cookie called
+      <var>session</var>, configure the session as follows:</p>
+
+      <div class="example"><h3>Browser based encrypted session</h3><pre class="prettyprint lang-config">Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
+</div>
+
+      <p>The session will be encrypted with the given key. Different servers can
+      be configured to share sessions by ensuring the same encryption key is used
+      on each server.</p>
+
+      <p>If the encryption key is changed, sessions will be invalidated
+      automatically.</p>
+
+      <p>For documentation on how the session can be used to store username
+      and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_session_crypto.html" title="English">&nbsp;en&nbsp;</a> |
index a434091c1494cec7f1fe29b44bfcd3660172fff3..312c2f17dbfac1eacab130987ad35c014d9e235f 100644 (file)
 <li><code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="basicusage" id="basicusage">Utilisation de base</a></h2>
-
-      <p>Pour créer une session chiffrée et la stocker dans un cookie
-      nommé <var>session</var>, configurez la comme suit :</p>
-
-      <div class="example"><h3>Session chiffrée stockée au niveau du
-      serveur</h3><pre class="prettyprint lang-config">Session On
-SessionCookieName session path=/
-SessionCryptoPassphrase secret</pre>
-</div>
-
-      <p>La session sera chiffrée avec la clé spécifiée. Il est possible
-      de configurer plusieurs serveurs pour qu'ils puissent partager des
-      sessions, en s'assurant que la même clé de chiffrement est
-      utilisée sur chaque serveur.</p>
-
-      <p>Si la clé de chiffrement est modifiée, les sessions seront
-      automatiquement invalidées.</p>
-
-      <p>Pour des détails sur la manière dont une session peut être
-      utilisée pour stocker des informations de type nom
-      d'utilisateur/mot de passe, voir la documentation du module
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="sessioncryptocipher" id="sessioncryptocipher">Directive</a> <a name="SessionCryptoCipher" id="SessionCryptoCipher">SessionCryptoCipher</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>L'algorithme à utiliser pour le chiffrement de la session</td></tr>
@@ -258,6 +231,33 @@ session</td></tr>
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="basicusage" id="basicusage">Utilisation de base</a></h2>
+
+      <p>Pour créer une session chiffrée et la stocker dans un cookie
+      nommé <var>session</var>, configurez la comme suit :</p>
+
+      <div class="example"><h3>Session chiffrée stockée au niveau du
+      serveur</h3><pre class="prettyprint lang-config">Session On
+SessionCookieName session path=/
+SessionCryptoPassphrase secret</pre>
+</div>
+
+      <p>La session sera chiffrée avec la clé spécifiée. Il est possible
+      de configurer plusieurs serveurs pour qu'ils puissent partager des
+      sessions, en s'assurant que la même clé de chiffrement est
+      utilisée sur chaque serveur.</p>
+
+      <p>Si la clé de chiffrement est modifiée, les sessions seront
+      automatiquement invalidées.</p>
+
+      <p>Pour des détails sur la manière dont une session peut être
+      utilisée pour stocker des informations de type nom
+      d'utilisateur/mot de passe, voir la documentation du module
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_session_crypto.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 95db6db97e048c9b561fba2a70be85ee3736d78b..423112a04971cf31316e46a06b9ead9e97a96536 100644 (file)
 <li><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dbdconfig" id="dbdconfig">DBD Configuration</a></h2>
-
-      <p>Before the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module can be configured to maintain a
-      session, the <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> module must be configured to make the various database queries
-      available to the server.</p>
-
-      <p>There are four queries required to keep a session maintained, to select an existing session,
-      to update an existing session, to insert a new session, and to delete an expired or empty
-      session. These queries are configured as per the example below.</p>
-
-      <div class="example"><h3>Sample DBD configuration</h3><pre class="prettyprint lang-config">DBDriver pgsql
-DBDParams "dbname=apachesession user=apache password=xxxxx host=localhost"
-DBDPrepareSQL "delete from session where key = %s" deletesession
-DBDPrepareSQL "update session set value = %s, expiry = %lld, key = %s where key = %s" updatesession
-DBDPrepareSQL "insert into session (value, expiry, key) values (%s, %lld, %s)" insertsession
-DBDPrepareSQL "select value from session where key = %s and (expiry = 0 or expiry &gt; %lld)" selectsession
-DBDPrepareSQL "delete from session where expiry != 0 and expiry &lt; %lld" cleansession</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="anonymous" id="anonymous">Anonymous Sessions</a></h2>
-
-      <p>Anonymous sessions are keyed against a unique UUID, and stored on the
-      browser within an HTTP cookie. This method is similar to that used by most
-      application servers to store session information.</p>
-
-      <p>To create a simple anonymous session and store it in a postgres database
-      table called <var>apachesession</var>, and save the session ID in a cookie
-      called <var>session</var>, configure the session as follows:</p>
-
-      <div class="example"><h3>SQL based anonymous session</h3><pre class="prettyprint lang-config">Session On
-SessionDBDCookieName session path=/</pre>
-</div>
-
-      <p>For more examples on how the session can be configured to be read
-      from and written to by a CGI application, see the
-      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> examples section.</p>
-
-      <p>For documentation on how the session can be used to store username
-      and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="peruser" id="peruser">Per User Sessions</a></h2>
-
-      <p>Per user sessions are keyed against the username of a successfully
-      authenticated user. It offers the most privacy, as no external handle
-      to the session exists outside of the authenticated realm.</p>
-
-      <p>Per user sessions work within a correctly configured authenticated
-      environment, be that using basic authentication, digest authentication
-      or SSL client certificates. Due to the limitations of who came first,
-      the chicken or the egg, per user sessions cannot be used to store
-      authentication credentials from a module like
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
-
-      <p>To create a simple per user session and store it in a postgres database
-      table called <var>apachesession</var>, and with the session keyed to the
-      userid, configure the session as follows:</p>
-
-      <div class="example"><h3>SQL based per user session</h3><pre class="prettyprint lang-config">Session On
-SessionDBDPerUser On</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="housekeeping" id="housekeeping">Database Housekeeping</a></h2>
-      <p>Over the course of time, the database can be expected to start accumulating
-      expired sessions. At this point, the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module
-      is not yet able to handle session expiry automatically.</p>
-
-      <div class="warning"><h3>Warning</h3>
-      <p>The administrator will need to set up an external process via cron to clean
-      out expired sessions.</p>
-      </div>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SessionDBDCookieName" id="SessionDBDCookieName">SessionDBDCookieName</a> <a name="sessiondbdcookiename" id="sessiondbdcookiename">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Name and attributes for the RFC2109 cookie storing the session ID</td></tr>
@@ -324,6 +244,86 @@ SessionDBDCookieName2 session path=/private;domain=example.com;httponly;secure;v
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="dbdconfig" id="dbdconfig">DBD Configuration</a></h2>
+
+      <p>Before the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module can be configured to maintain a
+      session, the <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> module must be configured to make the various database queries
+      available to the server.</p>
+
+      <p>There are four queries required to keep a session maintained, to select an existing session,
+      to update an existing session, to insert a new session, and to delete an expired or empty
+      session. These queries are configured as per the example below.</p>
+
+      <div class="example"><h3>Sample DBD configuration</h3><pre class="prettyprint lang-config">DBDriver pgsql
+DBDParams "dbname=apachesession user=apache password=xxxxx host=localhost"
+DBDPrepareSQL "delete from session where key = %s" deletesession
+DBDPrepareSQL "update session set value = %s, expiry = %lld, key = %s where key = %s" updatesession
+DBDPrepareSQL "insert into session (value, expiry, key) values (%s, %lld, %s)" insertsession
+DBDPrepareSQL "select value from session where key = %s and (expiry = 0 or expiry &gt; %lld)" selectsession
+DBDPrepareSQL "delete from session where expiry != 0 and expiry &lt; %lld" cleansession</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="anonymous" id="anonymous">Anonymous Sessions</a></h2>
+
+      <p>Anonymous sessions are keyed against a unique UUID, and stored on the
+      browser within an HTTP cookie. This method is similar to that used by most
+      application servers to store session information.</p>
+
+      <p>To create a simple anonymous session and store it in a postgres database
+      table called <var>apachesession</var>, and save the session ID in a cookie
+      called <var>session</var>, configure the session as follows:</p>
+
+      <div class="example"><h3>SQL based anonymous session</h3><pre class="prettyprint lang-config">Session On
+SessionDBDCookieName session path=/</pre>
+</div>
+
+      <p>For more examples on how the session can be configured to be read
+      from and written to by a CGI application, see the
+      <code class="module"><a href="../mod/mod_session.html">mod_session</a></code> examples section.</p>
+
+      <p>For documentation on how the session can be used to store username
+      and password details, see the <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> module.</p>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="peruser" id="peruser">Per User Sessions</a></h2>
+
+      <p>Per user sessions are keyed against the username of a successfully
+      authenticated user. It offers the most privacy, as no external handle
+      to the session exists outside of the authenticated realm.</p>
+
+      <p>Per user sessions work within a correctly configured authenticated
+      environment, be that using basic authentication, digest authentication
+      or SSL client certificates. Due to the limitations of who came first,
+      the chicken or the egg, per user sessions cannot be used to store
+      authentication credentials from a module like
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
+
+      <p>To create a simple per user session and store it in a postgres database
+      table called <var>apachesession</var>, and with the session keyed to the
+      userid, configure the session as follows:</p>
+
+      <div class="example"><h3>SQL based per user session</h3><pre class="prettyprint lang-config">Session On
+SessionDBDPerUser On</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="housekeeping" id="housekeeping">Database Housekeeping</a></h2>
+      <p>Over the course of time, the database can be expected to start accumulating
+      expired sessions. At this point, the <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> module
+      is not yet able to handle session expiry automatically.</p>
+
+      <div class="warning"><h3>Warning</h3>
+      <p>The administrator will need to set up an external process via cron to clean
+      out expired sessions.</p>
+      </div>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_session_dbd.html" title="English">&nbsp;en&nbsp;</a> |
index 2d41ba3e75014616a7663820b77a94d5bbd18b01..5bec52e6ec4d687161adb9450663c69981521d3b 100644 (file)
 <li><code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="dbdconfig" id="dbdconfig">Configuration de DBD</a></h2>
-
-      <p>Pour que le module <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> puisse être
-      configuré et maintenir une session, il faut tout d'abord
-      configurer le module <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour que le serveur
-      puisse exécuter des requêtes vers la base de données.</p>
-
-      <p>Quatre types de requêtes sont nécessaires pour maintenir une
-      session, sélectionner ou mettre à jour une session existante,
-      insérer une nouvelle session et supprimer une session vide ou
-      arrivée à expiration. Ces requêtes sont configurées comme dans
-      l'exemple suivant :</p>
-
-      <div class="example"><h3>Exemple de configuration de DBD</h3><pre class="prettyprint lang-config">DBDriver pgsql
-DBDParams "dbname=apachesession user=apache password=xxxxx host=localhost"
-DBDPrepareSQL "delete from session where key = %s" deletesession
-DBDPrepareSQL "update session set value = %s, expiry = %lld, key = %s where key = %s" updatesession
-DBDPrepareSQL "insert into session (value, expiry, key) values (%s, %lld, %s)" insertsession
-DBDPrepareSQL "select value from session where key = %s and (expiry = 0 or expiry &gt; %lld)" selectsession
-DBDPrepareSQL "delete from session where expiry != 0 and expiry &lt; %lld" cleansession</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="anonymous" id="anonymous">Sessions anonymes</a></h2>
-
-      <p>Les sessions anonymes sont identifiées par un UUID unique, et
-      stockées dans un cookie au niveau du navigateur. Cette méthode est
-      similaire à celle utilisée par la plupart des serveurs
-      d'applications pour stocker les informations de session.</p>
-
-      <p>Pour créer une session anonyme, la stocker dans une table de
-      base de donnée postgres nommée <var>apachesession</var>, et
-      sauvegarder l'identifiant de session dans un cookie nommé
-      <var>session</var>, configurez la session comme suit :</p>
-
-      <div class="example"><h3>Session anonyme basée sur SQL</h3><pre class="prettyprint lang-config">Session On
-SessionDBDCookieName session path=/</pre>
-</div>
-
-      <p>Pour plus d'exemples sur la manière dont une application CGI
-      peut accéder aux informations de session, voir la section exemples
-      de la documentation du module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
-
-      <p>Pour des détails sur la manière dont une session peut être
-      utilisée pour stocker des informations de type nom
-      d'utilisateur/mot de passe, voir la documentation du module
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="peruser" id="peruser">Sessions propres à un
-    utilisateur</a></h2>
-
-      <p>Les sessions propres à un utilisateur sont identifiées par le
-      nom de l'utilisateur authentifié avec succès. Ceci permet
-      d'assurer une confidentialité optimale, car aucun traitement
-      externe à la session n'existe en dehors du contexte
-      authentifié.</p>
-
-      <p>Les sessions propres à un utilisateur ne fonctionnent que dans
-      un environnement d'authentification correctement configuré, qu'il
-      s'agisse d'une authentification de base, à base de condensés
-      (digest) ou de certificats client SSL. Suite à des limitations
-      dues à des dépendances mutuelles, les sessions propres à un
-      utilisateur ne peuvent pas être utilisées pour stocker les données
-      d'authentification en provenance d'un module comme
-      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
-
-      <p>Pour créer une session propre à un utilisateur, la stocker dans
-      une table de base de données postgres nommée
-      <var>apachesession</var>, avec comme clé de session l'identifiant
-      utilisateur, ajoutez les lignes suivantes :</p>
-
-      <div class="example"><h3>Session propre à un utilisateur basée sur SQL</h3><pre class="prettyprint lang-config">Session On
-SessionDBDPerUser On</pre>
-</div>
-
-    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="housekeeping" id="housekeeping">Nettoyage de la base de
-    données</a></h2>
-      <p>Avec le temps, la base de données va commencer à accumuler des
-      sessions expirées. Pour le moment, le module
-      <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> n'est pas en mesure de gérer
-      automatiquement l'expiration des sessions.</p>
-
-      <div class="warning"><h3>Avertissement</h3>
-      <p>L'administrateur devra mettre en oeuvre un traitement externe
-      via cron pour nettoyer les sessions expirées.</p>
-      </div>
-
-    </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="sessiondbdcookiename" id="sessiondbdcookiename">Directive</a> <a name="SessionDBDCookieName" id="SessionDBDCookieName">SessionDBDCookieName</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom et attributs du cookie RFC2109 qui contient
@@ -374,6 +279,101 @@ pr
 
 
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="dbdconfig" id="dbdconfig">Configuration de DBD</a></h2>
+
+      <p>Pour que le module <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> puisse être
+      configuré et maintenir une session, il faut tout d'abord
+      configurer le module <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour que le serveur
+      puisse exécuter des requêtes vers la base de données.</p>
+
+      <p>Quatre types de requêtes sont nécessaires pour maintenir une
+      session, sélectionner ou mettre à jour une session existante,
+      insérer une nouvelle session et supprimer une session vide ou
+      arrivée à expiration. Ces requêtes sont configurées comme dans
+      l'exemple suivant :</p>
+
+      <div class="example"><h3>Exemple de configuration de DBD</h3><pre class="prettyprint lang-config">DBDriver pgsql
+DBDParams "dbname=apachesession user=apache password=xxxxx host=localhost"
+DBDPrepareSQL "delete from session where key = %s" deletesession
+DBDPrepareSQL "update session set value = %s, expiry = %lld, key = %s where key = %s" updatesession
+DBDPrepareSQL "insert into session (value, expiry, key) values (%s, %lld, %s)" insertsession
+DBDPrepareSQL "select value from session where key = %s and (expiry = 0 or expiry &gt; %lld)" selectsession
+DBDPrepareSQL "delete from session where expiry != 0 and expiry &lt; %lld" cleansession</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="anonymous" id="anonymous">Sessions anonymes</a></h2>
+
+      <p>Les sessions anonymes sont identifiées par un UUID unique, et
+      stockées dans un cookie au niveau du navigateur. Cette méthode est
+      similaire à celle utilisée par la plupart des serveurs
+      d'applications pour stocker les informations de session.</p>
+
+      <p>Pour créer une session anonyme, la stocker dans une table de
+      base de donnée postgres nommée <var>apachesession</var>, et
+      sauvegarder l'identifiant de session dans un cookie nommé
+      <var>session</var>, configurez la session comme suit :</p>
+
+      <div class="example"><h3>Session anonyme basée sur SQL</h3><pre class="prettyprint lang-config">Session On
+SessionDBDCookieName session path=/</pre>
+</div>
+
+      <p>Pour plus d'exemples sur la manière dont une application CGI
+      peut accéder aux informations de session, voir la section exemples
+      de la documentation du module <code class="module"><a href="../mod/mod_session.html">mod_session</a></code>.</p>
+
+      <p>Pour des détails sur la manière dont une session peut être
+      utilisée pour stocker des informations de type nom
+      d'utilisateur/mot de passe, voir la documentation du module
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="peruser" id="peruser">Sessions propres à un
+    utilisateur</a></h2>
+
+      <p>Les sessions propres à un utilisateur sont identifiées par le
+      nom de l'utilisateur authentifié avec succès. Ceci permet
+      d'assurer une confidentialité optimale, car aucun traitement
+      externe à la session n'existe en dehors du contexte
+      authentifié.</p>
+
+      <p>Les sessions propres à un utilisateur ne fonctionnent que dans
+      un environnement d'authentification correctement configuré, qu'il
+      s'agisse d'une authentification de base, à base de condensés
+      (digest) ou de certificats client SSL. Suite à des limitations
+      dues à des dépendances mutuelles, les sessions propres à un
+      utilisateur ne peuvent pas être utilisées pour stocker les données
+      d'authentification en provenance d'un module comme
+      <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code>.</p>
+
+      <p>Pour créer une session propre à un utilisateur, la stocker dans
+      une table de base de données postgres nommée
+      <var>apachesession</var>, avec comme clé de session l'identifiant
+      utilisateur, ajoutez les lignes suivantes :</p>
+
+      <div class="example"><h3>Session propre à un utilisateur basée sur SQL</h3><pre class="prettyprint lang-config">Session On
+SessionDBDPerUser On</pre>
+</div>
+
+    </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="housekeeping" id="housekeeping">Nettoyage de la base de
+    données</a></h2>
+      <p>Avec le temps, la base de données va commencer à accumuler des
+      sessions expirées. Pour le moment, le module
+      <code class="module"><a href="../mod/mod_session_dbd.html">mod_session_dbd</a></code> n'est pas en mesure de gérer
+      automatiquement l'expiration des sessions.</p>
+
+      <div class="warning"><h3>Avertissement</h3>
+      <p>L'administrateur devra mettre en oeuvre un traitement externe
+      via cron pour nettoyer les sessions expirées.</p>
+      </div>
+
+    </div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_session_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index db944390a3e965629431ff8f62018a78897e957d..01391ea269f154bdc41a4713253dc22a7166d774 100644 (file)
@@ -77,7 +77,6 @@ BrowserMatch MSIE !netscape</pre>
 <ul class="seealso">
 <li><a href="../env.html">Environment Variables in Apache HTTP Server</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Directive</a></h2>
 <table class="directive">
@@ -322,6 +321,7 @@ without respect to case</td></tr>
     combination.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_setenvif.html" title="English">&nbsp;en&nbsp;</a> |
index bbb84ac53f2d674c41e102bdebf86b6aac8c961d..ff11ea316429faed0e2145c7f0b75e11af65be8c 100644 (file)
@@ -79,7 +79,6 @@ BrowserMatch MSIE !netscape</pre>
 <li><a href="../env.html">Les variables d'environnement et le
 serveur HTTP Apache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="browsermatch" id="browsermatch">Directive</a> <a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a></h2>
 <table class="directive">
@@ -335,6 +334,7 @@ attributs de la requ
     combinaison des mêmes caractères, sans tenir compte de la casse.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3b4068100f3858d5571b4210667bc07defd6619f..3bf84aa831a04bdf0020ec9bfc45d5c09f1ca79d 100644 (file)
@@ -69,7 +69,6 @@
 <ul class="seealso">
 <li><a href="../env.html">Apache の環境変数</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">ディレクティブ</a></h2>
 <table class="directive">
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index d5f219a48154261796bcbd45d674f0d15f6ae49d..5f430ca04993fe3e424a2f14261619d8d46d0512 100644 (file)
@@ -64,7 +64,6 @@
 <ul class="seealso">
 <li><a href="../env.html">¾ÆÆÄÄ¡ÀǠȯ°æº¯¼ö</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Áö½Ã¾î</a></h2>
 <table class="directive">
     <code>site</code> È¯°æº¯¼ö¸¦ "<code>apache</code>"·Î ¼³Á¤ÇÑ´Ù.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 052ad485fb022b47281025d4e3b5e1ebc0e81734..7632b20bb8b233a515fd5a794c6aa7cac7621597 100644 (file)
@@ -75,7 +75,6 @@ BrowserMatch MSIE !netscape</pre>
 <ul class="seealso">
 <li><a href="../env.html">Apache HTTP Sunucusundaki Ortam Değişkenleri</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="BrowserMatch" id="BrowserMatch">BrowserMatch</a> <a name="browsermatch" id="browsermatch">Yönergesi</a></h2>
 <table class="directive">
@@ -309,6 +308,7 @@ bağlı olmaksızın yapılmış tanımlara göre atar.</td></tr>
       "<code>example</code>" değeri atanmaktadır.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_setenvif.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 0f81198bf169ac570ee9f960bf7c0b0a3e7df8ae..9c2db2cf164e962dd1e16dfb79698bd1f536ff80 100644 (file)
@@ -67,6 +67,53 @@ Windows</td></tr></table>
 <li><img alt="" src="../images/down.gif" /> <a href="#windows">Creating Loadable Modules for Windows</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Link in the named object file or library</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
+</table>
+
+    <p>The LoadFile directive links in the named object files or
+    libraries when the server is started or restarted; this is used
+    to load additional code which may be required for some module
+    to work. <em>Filename</em> is either an absolute path or
+    relative to <a href="core.html#serverroot">ServerRoot</a>.</p>
+
+    <p>For example:</p>
+
+    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
+
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Links in the object file or library, and adds to the list
+of active modules</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
+</table>
+    <p>The LoadModule directive links in the object file or library
+    <em>filename</em> and adds the module structure named
+    <em>module</em> to the list of active modules. <em>Module</em>
+    is the name of the external variable of type
+    <code>module</code> in the file, and is listed as the <a href="module-dict.html#ModuleIdentifier">Module Identifier</a>
+    in the module documentation. Example:</p>
+
+    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
+
+
+    <p>loads the named module from the modules subdirectory of the
+    ServerRoot.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="windows" id="windows">Creating Loadable Modules for Windows</a></h2>
 
@@ -140,53 +187,6 @@ Windows</td></tr></table>
     root, and use the <code class="directive">LoadModule</code>
     directive to load it.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Link in the named object file or library</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
-</table>
-
-    <p>The LoadFile directive links in the named object files or
-    libraries when the server is started or restarted; this is used
-    to load additional code which may be required for some module
-    to work. <em>Filename</em> is either an absolute path or
-    relative to <a href="core.html#serverroot">ServerRoot</a>.</p>
-
-    <p>For example:</p>
-
-    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Links in the object file or library, and adds to the list
-of active modules</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
-</table>
-    <p>The LoadModule directive links in the object file or library
-    <em>filename</em> and adds the module structure named
-    <em>module</em> to the list of active modules. <em>Module</em>
-    is the name of the external variable of type
-    <code>module</code> in the file, and is listed as the <a href="module-dict.html#ModuleIdentifier">Module Identifier</a>
-    in the module documentation. Example:</p>
-
-    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
-
-
-    <p>loads the named module from the modules subdirectory of the
-    ServerRoot.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index 545b6c3cc8d9bc0f0de0ca82f153a57cd5248924..92e5d282bcc84538fa0c0ff4da017135ae79ff87 100644 (file)
@@ -71,6 +71,56 @@ inclus)</td></tr></table>
 Windows</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="loadfile" id="loadfile">Directive</a> <a name="LoadFile" id="LoadFile">LoadFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison du fichier objet ou de la bibliothèque
+spécifié</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LoadFile <em>nom-fichier</em> [<em>nom-fichier</em>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
+</table>
+
+    <p>La directive LoadFile permet de lier le fichier objet ou la
+    bibliothèque spécifié au serveur lors du démarrage ou du redémarrage
+    de ce dernier ; ceci permet d'ajouter tout code additionnel
+    nécessaire au fonctionnement d'un module.
+    <em>nom-fichier</em> est soit un chemin absolu, soit un chemin
+    relatif au répertoire défini par la directive <a href="core.html#serverroot">ServerRoot</a>.</p>
+
+    <p>Par exemple:</p>
+
+    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
+
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="loadmodule" id="loadmodule">Directive</a> <a name="LoadModule" id="LoadModule">LoadModule</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison avec le serveur du fichier objet ou de la
+bibliothèque spécifié, et ajout de ce dernier à la liste des modules
+actifs</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LoadModule <em>module nom-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
+</table>
+    <p>La directive LoadModule permet de lier le fichier objet ou la
+    bibliothèque <em>nom-fichier</em> avec le serveur, et d'ajouter la
+    structure de module nommée <em>module</em> à la liste des modules
+    actifs. <em>module</em> est le nom de la variable externe de type
+    <code>module</code> dans le fichier, et est référencé comme <a href="module-dict.html#ModuleIdentifier">Identificateur de
+    module</a> dans la documentation des modules. Exemple :</p>
+
+    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
+
+
+    <p>charge le module spécifié depuis le sous-répertoire des modules
+    situé à la racine du serveur.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="windows" id="windows">Création de modules chargeables pour
 Windows</a></h2>
@@ -152,56 +202,6 @@ Windows</a></h2>
     <code>modules</code> à la racine de votre serveur, et d'utiliser la
     directive <code class="directive">LoadModule</code> pour la charger.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="loadfile" id="loadfile">Directive</a> <a name="LoadFile" id="LoadFile">LoadFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison du fichier objet ou de la bibliothèque
-spécifié</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LoadFile <em>nom-fichier</em> [<em>nom-fichier</em>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
-</table>
-
-    <p>La directive LoadFile permet de lier le fichier objet ou la
-    bibliothèque spécifié au serveur lors du démarrage ou du redémarrage
-    de ce dernier ; ceci permet d'ajouter tout code additionnel
-    nécessaire au fonctionnement d'un module.
-    <em>nom-fichier</em> est soit un chemin absolu, soit un chemin
-    relatif au répertoire défini par la directive <a href="core.html#serverroot">ServerRoot</a>.</p>
-
-    <p>Par exemple:</p>
-
-    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="loadmodule" id="loadmodule">Directive</a> <a name="LoadModule" id="LoadModule">LoadModule</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Liaison avec le serveur du fichier objet ou de la
-bibliothèque spécifié, et ajout de ce dernier à la liste des modules
-actifs</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>LoadModule <em>module nom-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_so</td></tr>
-</table>
-    <p>La directive LoadModule permet de lier le fichier objet ou la
-    bibliothèque <em>nom-fichier</em> avec le serveur, et d'ajouter la
-    structure de module nommée <em>module</em> à la liste des modules
-    actifs. <em>module</em> est le nom de la variable externe de type
-    <code>module</code> dans le fichier, et est référencé comme <a href="module-dict.html#ModuleIdentifier">Identificateur de
-    module</a> dans la documentation des modules. Exemple :</p>
-
-    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
-
-
-    <p>charge le module spécifié depuis le sous-répertoire des modules
-    situé à la racine du serveur.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index 5f773e527661cb326cedd8ba983a8b0406df95d2..406fcbcb0b4a089d2c8f6b2a07af061634e67b63 100644 (file)
 <li><img alt="" src="../images/down.gif" /> Windows 用のロード可能なモジュールを作成する</li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>指定されたオブジェクトファイルやライブラリをリンクする</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_so</td></tr>
+</table>
+
+    <p>LoadFile ディレクティブは、サーバが起動されたときや再起動されたときに、
+    指定されたオブジェクトファイルやライブラリをリンクします。
+    これはモジュールが動作するために必要になるかもしれない追加の
+    コードを読み込むために使用されます。<em>Filename</em> は絶対パスか、<a href="core.html#serverroot">ServerRoot</a> からの相対パスです。</p>
+
+    <p>例:</p>
+
+    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
+
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>オブジェクトファイルやライブラリをリンクし、使用モジュールの
+リストに追加する</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
+<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_so</td></tr>
+</table>
+
+    <p>LoadModule ディレクティブは <em>filename</em>
+    というオブジェクトファイルおよびライブラリをリンクし、<em>module</em>
+    という名前のモジュールの構造をアクティブなモジュールのリストに追加します。
+    <em>Module</em> はファイル中の <code>module</code>
+    型の外部変数の名前で、モジュールのドキュメントに
+    <a href="module-dict.html#moduleidentifier">モジュール識別子</a>として書かれているものです。例 :</p>
+
+   <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
+
+
+    <p>これは ServerRoot の modules サブディレクトリから指定された名前の
+    モジュールをロードします。</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2>Windows 用のロード可能なモジュールを作成する</h2>
 
     <code><code class="directive">LoadModule</code></code>
     ディレクティブを使って読み込んでください。</p>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>指定されたオブジェクトファイルやライブラリをリンクする</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_so</td></tr>
-</table>
-
-    <p>LoadFile ディレクティブは、サーバが起動されたときや再起動されたときに、
-    指定されたオブジェクトファイルやライブラリをリンクします。
-    これはモジュールが動作するために必要になるかもしれない追加の
-    コードを読み込むために使用されます。<em>Filename</em> は絶対パスか、<a href="core.html#serverroot">ServerRoot</a> からの相対パスです。</p>
-
-    <p>例:</p>
-
-    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>オブジェクトファイルやライブラリをリンクし、使用モジュールの
-リストに追加する</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
-<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_so</td></tr>
-</table>
-
-    <p>LoadModule ディレクティブは <em>filename</em>
-    というオブジェクトファイルおよびライブラリをリンクし、<em>module</em>
-    という名前のモジュールの構造をアクティブなモジュールのリストに追加します。
-    <em>Module</em> はファイル中の <code>module</code>
-    型の外部変数の名前で、モジュールのドキュメントに
-    <a href="module-dict.html#moduleidentifier">モジュール識別子</a>として書かれているものです。例 :</p>
-
-   <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
-
-
-    <p>これは ServerRoot の modules サブディレクトリから指定された名前の
-    モジュールをロードします。</p>
-
-</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_so.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index ebe668d8a99ba0205fe99b970dfb3d2a2e662905..f663cb0c94ff5aaa589249fcaeae4c3aa3daa430 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#windows">À©µµ¿ìÁî¿¡¼­ ÀоîµéÀÏ ¸ðµâ ¸¸µé±â</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ÁöÁ¤ÇÑ ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀδÙ</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_so</td></tr>
+</table>
+
+    <p>LoadFile Áö½Ã¾î´Â ¼­¹ö°¡ ½ÃÀÛÇϰųª Àç½ÃÀÛÇÒ¶§ ÁöÁ¤ÇÑ
+    ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀδÙ(link in). ÀÌ Áö½Ã¾î´Â
+    ¾î¶² ¸ðµâÀÌ µ¿ÀÛÇϱâÀ§ÇØ ÇÊ¿äÇÑ Äڵ带 Ãß°¡·Î ÀоîµéÀ϶§
+    »ç¿ëÇÑ´Ù. <em>Filename</em>Àº Àý´ë°æ·ÎÀ̰ųª <a href="core.html#serverroot">ServerRoot</a>¿¡ ´ëÇÑ »ó´ë°æ·ÎÀÌ´Ù.</p>
+
+    <p>¿¹¸¦ µé¾î:</p>
+
+    <div class="example"><p><code>LoadFile libexec/libxmlparse.so</code></p></div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀ̰í, »ç¿ë°¡´ÉÇÑ
+¸ðµâ ¸ñ·Ï¿¡ Ãß°¡ÇÑ´Ù</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
+<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_so</td></tr>
+</table>
+    <p>LoadModule Áö½Ã¾î´Â ¸ñÀûÆÄÀϠȤÀº ¶óÀ̺귯¸® <em>filename</em>À»
+    ÀоîµéÀ̰í, »ç¿ë°¡´ÉÇÑ ¸ðµâ ¸ñ·Ï¿¡ <em>module</em>À̶ó´Â
+    ¸ðµâ ±¸Á¶Ã¼¸¦ Ãß°¡ÇÑ´Ù. <em>Module</em>Àº ÆÄÀÏÀÇ
+    <code>module</code> ÀÚ·áÇü ¿ÜºÎº¯¼ö¸íÀ̸ç, ¸ðµâ ¹®¼­ÀÇ <a href="module-dict.html#ModuleIdentifier">¸ðµâ¸í</a>¿¡
+    ³ª¿Â´Ù. ¿¹¸¦ µé¸é:</p>
+
+    <div class="example"><p><code>
+      LoadModule status_module modules/mod_status.so
+    </code></p></div>
+
+    <p>ServerRootÀÇ modules ÇÏÀ§µð·ºÅ丮¿¡¼­ ÁöÁ¤ÇÑ ¸ðµâÀ» ÀоîµéÀδÙ.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="windows" id="windows">À©µµ¿ìÁî¿¡¼­ ÀоîµéÀÏ ¸ðµâ ¸¸µé±â</a></h2>
 
     <code>modules</code> µð·ºÅ丮¿¡ µÎ°í,
     <code class="directive">LoadModule</code> Áö½Ã¾î¸¦ »ç¿ëÇÏ¿© ÀоîµéÀδÙ.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>ÁöÁ¤ÇÑ ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀδÙ</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LoadFile <em>filename</em> [<em>filename</em>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_so</td></tr>
-</table>
-
-    <p>LoadFile Áö½Ã¾î´Â ¼­¹ö°¡ ½ÃÀÛÇϰųª Àç½ÃÀÛÇÒ¶§ ÁöÁ¤ÇÑ
-    ¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀδÙ(link in). ÀÌ Áö½Ã¾î´Â
-    ¾î¶² ¸ðµâÀÌ µ¿ÀÛÇϱâÀ§ÇØ ÇÊ¿äÇÑ Äڵ带 Ãß°¡·Î ÀоîµéÀ϶§
-    »ç¿ëÇÑ´Ù. <em>Filename</em>Àº Àý´ë°æ·ÎÀ̰ųª <a href="core.html#serverroot">ServerRoot</a>¿¡ ´ëÇÑ »ó´ë°æ·ÎÀÌ´Ù.</p>
-
-    <p>¿¹¸¦ µé¾î:</p>
-
-    <div class="example"><p><code>LoadFile libexec/libxmlparse.so</code></p></div>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>¸ñÀûÆÄÀÏÀ̳ª ¶óÀ̺귯¸®¸¦ ÀоîµéÀ̰í, »ç¿ë°¡´ÉÇÑ
-¸ðµâ ¸ñ·Ï¿¡ Ãß°¡ÇÑ´Ù</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LoadModule <em>module filename</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">»ç¿ëÀå¼Ò:</a></th><td>ÁÖ¼­¹ö¼³Á¤</td></tr>
-<tr><th><a href="directive-dict.html#Status">»óÅÂ:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">¸ðµâ:</a></th><td>mod_so</td></tr>
-</table>
-    <p>LoadModule Áö½Ã¾î´Â ¸ñÀûÆÄÀϠȤÀº ¶óÀ̺귯¸® <em>filename</em>À»
-    ÀоîµéÀ̰í, »ç¿ë°¡´ÉÇÑ ¸ðµâ ¸ñ·Ï¿¡ <em>module</em>À̶ó´Â
-    ¸ðµâ ±¸Á¶Ã¼¸¦ Ãß°¡ÇÑ´Ù. <em>Module</em>Àº ÆÄÀÏÀÇ
-    <code>module</code> ÀÚ·áÇü ¿ÜºÎº¯¼ö¸íÀ̸ç, ¸ðµâ ¹®¼­ÀÇ <a href="module-dict.html#ModuleIdentifier">¸ðµâ¸í</a>¿¡
-    ³ª¿Â´Ù. ¿¹¸¦ µé¸é:</p>
-
-    <div class="example"><p><code>
-      LoadModule status_module modules/mod_status.so
-    </code></p></div>
-
-    <p>ServerRootÀÇ modules ÇÏÀ§µð·ºÅ丮¿¡¼­ ÁöÁ¤ÇÑ ¸ðµâÀ» ÀоîµéÀδÙ.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index b62c4fb1ff218c123924eb48479dff1b03f7cbf5..fb228816b2e96a91ad191d45e1905126f4f0a148 100644 (file)
@@ -64,6 +64,57 @@ yeniden başlatılması sırasında yüklenmesini sağlar.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#windows">Yüklenebilir Modüllerin Windows için Oluşturulması</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LoadFile <em>dosya-ismi</em> [<em>dosya-ismi</em>] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_so</td></tr>
+</table>
+
+    <p><code class="directive">LoadFile</code> yönergesi ismi belirtilen kütüphaneleri
+      veya nesne dosyalarını sunucu başlatılırken veya yeniden başlatılırken
+      sunucu ile ilintiler. Yönerge, bazı modüllerin çalışması sırasında
+      gereken ek kodların yüklenmesi için kullanılır.
+      <code><em>dosya-ismi</em></code> olarak mutlak bir dosya yolu
+      belirtilebileceği gibi <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>’a
+      göreli bir dosya yolu da  belirtilebilir.</p>
+
+    <p>Örnek:</p>
+
+    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
+
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler
+ve etkin modül listesine ekler.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LoadModule <em>modül dosya-ismi</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_so</td></tr>
+</table>
+    <p><code class="directive">LoadModule</code> yönergesi
+      <code><em>dosya-ismi</em></code> ile belirtilen nesne dosyasını veya
+      kütüphaneyi sunucu ile ilintiler ve etkin modül listesine belirtilen
+      <code><em>modül</em></code> ismiyle ekler. <code><em>modül</em></code>,
+      modülün kaynak dosyasında <code>module</code> türündeki tek harici
+      değişkenin ismi olup modül belgelerinde <a href="module-dict.html#ModuleIdentifier">Modül Betimleyici</a> olarak
+      geçer. Örneğin,</p>
+
+    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
+
+
+    <p>satırı ile ismi belirtilen dosya <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> dizini altındaki
+      <code>modules</code> alt dizininden yüklenir.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="windows" id="windows">Yüklenebilir Modüllerin Windows için Oluşturulması</a></h2>
     
@@ -138,57 +189,6 @@ yeniden başlatılması sırasında yüklenmesini sağlar.</td></tr>
       sonra <code class="directive">LoadModule</code> yönergesi ile sunucunuza
       yükleyebilirsiniz.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadFile" id="LoadFile">LoadFile</a> <a name="loadfile" id="loadfile">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LoadFile <em>dosya-ismi</em> [<em>dosya-ismi</em>] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_so</td></tr>
-</table>
-
-    <p><code class="directive">LoadFile</code> yönergesi ismi belirtilen kütüphaneleri
-      veya nesne dosyalarını sunucu başlatılırken veya yeniden başlatılırken
-      sunucu ile ilintiler. Yönerge, bazı modüllerin çalışması sırasında
-      gereken ek kodların yüklenmesi için kullanılır.
-      <code><em>dosya-ismi</em></code> olarak mutlak bir dosya yolu
-      belirtilebileceği gibi <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>’a
-      göreli bir dosya yolu da  belirtilebilir.</p>
-
-    <p>Örnek:</p>
-
-    <pre class="prettyprint lang-config">LoadFile libexec/libxmlparse.so</pre>
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="LoadModule" id="LoadModule">LoadModule</a> <a name="loadmodule" id="loadmodule">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Belirtilen nesne dosyasını veya kütüphaneyi sunucu ile ilintiler
-ve etkin modül listesine ekler.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LoadModule <em>modül dosya-ismi</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_so</td></tr>
-</table>
-    <p><code class="directive">LoadModule</code> yönergesi
-      <code><em>dosya-ismi</em></code> ile belirtilen nesne dosyasını veya
-      kütüphaneyi sunucu ile ilintiler ve etkin modül listesine belirtilen
-      <code><em>modül</em></code> ismiyle ekler. <code><em>modül</em></code>,
-      modülün kaynak dosyasında <code>module</code> türündeki tek harici
-      değişkenin ismi olup modül belgelerinde <a href="module-dict.html#ModuleIdentifier">Modül Betimleyici</a> olarak
-      geçer. Örneğin,</p>
-
-    <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
-
-
-    <p>satırı ile ismi belirtilen dosya <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code> dizini altındaki
-      <code>modules</code> alt dizininden yüklenir.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index 8c3451b695cbe9abc87e0c54b7daa6a5f1da250b..8b3836fc657b7ebd82611f8d1d639cd78b40121d 100644 (file)
@@ -72,7 +72,6 @@ misspellings.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CheckCaseOnly" id="CheckCaseOnly">CheckCaseOnly</a> <a name="checkcaseonly" id="checkcaseonly">Directive</a></h2>
 <table class="directive">
@@ -133,6 +132,7 @@ module</td></tr>
     </p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_speling.html" title="English">&nbsp;en&nbsp;</a> |
index ccf43e24577ebe3fcad082deef0ecec1be14737f..93230d06e98e37b68cccd609ff6137d74ccf6876 100644 (file)
@@ -73,7 +73,6 @@ fautes de frappe mineures.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="checkcaseonly" id="checkcaseonly">Directive</a> <a name="CheckCaseOnly" id="CheckCaseOnly">CheckCaseOnly</a></h2>
 <table class="directive">
@@ -136,6 +135,7 @@ majuscules</td></tr>
     </p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_speling.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 58f335ae82a222c01e84229d8e956fe478c4a303..3daa38e1318c094b8281d653fd2fc2f75f334524 100644 (file)
@@ -76,7 +76,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CheckCaseOnly" id="CheckCaseOnly">CheckCaseOnly</a> <a name="checkcaseonly" id="checkcaseonly">ディレクティブ</a></h2>
 <table class="directive">
     期待とは違う挙動になるからです。</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_speling.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 3b72cd9741a9b32b5e36e3871f7e755a410cc04e..0eb35c26d5ef22363885179bcd2f6e29f852f097 100644 (file)
@@ -67,7 +67,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#checkspelling">CheckSpelling</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CheckCaseOnly" id="CheckCaseOnly">CheckCaseOnly</a> <a name="checkcaseonly" id="checkcaseonly">Áö½Ã¾î</a></h2>
 <table class="directive">
     </p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_speling.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 58627b4dc0dc3aa0e75c7c0e029f094b6caffe4a..36482a7c8f40e4f5a794f710a1f2e8e2c09f82dc 100644 (file)
@@ -122,201 +122,6 @@ to provide the cryptography engine.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#authzproviders">Authorization providers for use with Require</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="envvars" id="envvars">Environment Variables</a></h2>
-
-<p>This module can be configured to provide several items of SSL information
-as additional environment variables to the SSI and CGI namespace. This
-information is not provided by default for performance reasons. (See
-<code class="directive">SSLOptions</code> StdEnvVars, below.) The generated variables
-are listed in the table below. For backward compatibility the information can
-be made available under different names, too. Look in the <a href="../ssl/ssl_compat.html">Compatibility</a> chapter for details on the
-compatibility variables.</p>
-
-<table class="bordered">
-
-<tr>
- <th><a name="table3">Variable Name:</a></th>
- <th>Value Type:</th>
- <th>Description:</th>
-</tr>
-<tr><td><code>HTTPS</code></td>                         <td>flag</td>      <td>HTTPS is being used.</td></tr>
-<tr><td><code>SSL_PROTOCOL</code></td>                  <td>string</td>    <td>The SSL protocol version (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
-<tr><td><code>SSL_SESSION_ID</code></td>                <td>string</td>    <td>The hex-encoded SSL session id</td></tr>
-<tr><td><code>SSL_SESSION_RESUMED</code></td>           <td>string</td>    <td>Initial or Resumed SSL Session.  Note: multiple requests may be served over the same (Initial or Resumed) SSL session if HTTP KeepAlive is in use</td></tr>
-<tr><td><code>SSL_SECURE_RENEG</code></td>              <td>string</td>    <td><code>true</code> if secure renegotiation is supported, else <code>false</code></td></tr>
-<tr><td><code>SSL_CIPHER</code></td>                    <td>string</td>    <td>The cipher specification name</td></tr>
-<tr><td><code>SSL_CIPHER_EXPORT</code></td>             <td>string</td>    <td><code>true</code> if cipher is an export cipher</td></tr>
-<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td>         <td>number</td>    <td>Number of cipher bits (actually used)</td></tr>
-<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td>         <td>number</td>    <td>Number of cipher bits (possible)</td></tr>
-<tr><td><code>SSL_COMPRESS_METHOD</code></td>           <td>string</td>    <td>SSL compression method negotiated</td></tr>
-<tr><td><code>SSL_VERSION_INTERFACE</code></td>         <td>string</td>    <td>The mod_ssl program version</td></tr>
-<tr><td><code>SSL_VERSION_LIBRARY</code></td>           <td>string</td>    <td>The OpenSSL program version</td></tr>
-<tr><td><code>SSL_CLIENT_M_VERSION</code></td>          <td>string</td>    <td>The version of the client certificate</td></tr>
-<tr><td><code>SSL_CLIENT_M_SERIAL</code></td>           <td>string</td>    <td>The serial of the client certificate</td></tr>
-<tr><td><code>SSL_CLIENT_S_DN</code></td>               <td>string</td>    <td>Subject DN in client's certificate</td></tr>
-<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of client's Subject DN</td></tr>
-<tr><td><code>SSL_CLIENT_I_DN</code></td>               <td>string</td>    <td>Issuer DN of client's certificate</td></tr>
-<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of client's Issuer DN</td></tr>
-<tr><td><code>SSL_CLIENT_V_START</code></td>            <td>string</td>    <td>Validity of client's certificate (start time)</td></tr>
-<tr><td><code>SSL_CLIENT_V_END</code></td>              <td>string</td>    <td>Validity of client's certificate (end time)</td></tr>
-<tr><td><code>SSL_CLIENT_V_REMAIN</code></td>           <td>string</td>    <td>Number of days until client's certificate expires</td></tr>
-<tr><td><code>SSL_CLIENT_A_SIG</code></td>              <td>string</td>    <td>Algorithm used for the signature of client's certificate</td></tr>
-<tr><td><code>SSL_CLIENT_A_KEY</code></td>              <td>string</td>    <td>Algorithm used for the public key of client's certificate</td></tr>
-<tr><td><code>SSL_CLIENT_CERT</code></td>               <td>string</td>    <td>PEM-encoded client certificate</td></tr>
-<tr><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td> <td>string</td>    <td>PEM-encoded certificates in client certificate chain</td></tr>
-<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td>   <td>string</td>    <td>Serial number and issuer of the certificate. The format matches that of the CertificateExactAssertion in RFC4523</td></tr>
-<tr><td><code>SSL_CLIENT_VERIFY</code></td>             <td>string</td>    <td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> or <code>FAILED:</code><em>reason</em></td></tr>
-<tr><td><code>SSL_SERVER_M_VERSION</code></td>          <td>string</td>    <td>The version of the server certificate</td></tr>
-<tr><td><code>SSL_SERVER_M_SERIAL</code></td>           <td>string</td>    <td>The serial of the server certificate</td></tr>
-<tr><td><code>SSL_SERVER_S_DN</code></td>               <td>string</td>    <td>Subject DN in server's certificate</td></tr>
-<tr><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of server's Subject DN</td></tr>
-<tr><td><code>SSL_SERVER_I_DN</code></td>               <td>string</td>    <td>Issuer DN of server's certificate</td></tr>
-<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of server's Issuer DN</td></tr>
-<tr><td><code>SSL_SERVER_V_START</code></td>            <td>string</td>    <td>Validity of server's certificate (start time)</td></tr>
-<tr><td><code>SSL_SERVER_V_END</code></td>              <td>string</td>    <td>Validity of server's certificate (end time)</td></tr>
-<tr><td><code>SSL_SERVER_A_SIG</code></td>              <td>string</td>    <td>Algorithm used for the signature of server's certificate</td></tr>
-<tr><td><code>SSL_SERVER_A_KEY</code></td>              <td>string</td>    <td>Algorithm used for the public key of server's certificate</td></tr>
-<tr><td><code>SSL_SERVER_CERT</code></td>               <td>string</td>    <td>PEM-encoded server certificate</td></tr>
-<tr><td><code>SSL_SRP_USER</code></td>                  <td>string</td>    <td>SRP username</td></tr>
-<tr><td><code>SSL_SRP_USERINFO</code></td>              <td>string</td>    <td>SRP user info</td></tr>
-<tr><td><code>SSL_TLS_SNI</code></td>                   <td>string</td>    <td>Contents of the SNI TLS extension (if supplied with ClientHello)</td></tr>
-</table>
-
-<p><em>x509</em> specifies a component of an X.509 DN; one of
-<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>.  In Apache 2.1 and
-later, <em>x509</em> may also include a numeric <code>_n</code>
-suffix.  If the DN in question contains multiple attributes of the
-same name, this suffix is used as a zero-based index to select a
-particular attribute.  For example, where the server certificate
-subject DN included two OU attributes, <code>SSL_SERVER_S_DN_OU_0</code>
-and
-<code>SSL_SERVER_S_DN_OU_1</code> could be used to reference each.  A
-variable name without a <code>_n</code> suffix is equivalent to that
-name with a <code>_0</code> suffix; the first (or only) attribute.
-When the environment table is populated using
-the <code>StdEnvVars</code> option of
-the <code class="directive"><a href="#ssloptions">SSLOptions</a></code> directive, the
-first (or only) attribute of any DN is added only under a non-suffixed
-name; i.e. no <code>_0</code> suffixed entries are added.</p>
-
-<p>The format of the <em>*_DN</em> variables has changed in Apache HTTPD
-2.3.11. See the <code>LegacyDNStringFormat</code> option for
-<code class="directive"><a href="#ssloptions">SSLOptions</a></code> for details.</p>
-
-<p><code>SSL_CLIENT_V_REMAIN</code> is only available in version 2.1
-and later.</p>
-
-<p>A number of additional environment variables can also be used
-in <code class="directive">SSLRequire</code> expressions, or in custom log
-formats:</p>
-
-<div class="note"><pre>HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
-HTTP_REFERER           QUERY_STRING          SERVER_SOFTWARE
-HTTP_COOKIE            REMOTE_HOST           API_VERSION
-HTTP_FORWARDED         REMOTE_IDENT          TIME_YEAR
-HTTP_HOST              IS_SUBREQ             TIME_MON
-HTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAY
-HTTP_ACCEPT            SERVER_ADMIN          TIME_HOUR
-THE_REQUEST            SERVER_NAME           TIME_MIN
-REQUEST_FILENAME       SERVER_PORT           TIME_SEC
-REQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAY
-REQUEST_SCHEME         REMOTE_ADDR           TIME
-REQUEST_URI            REMOTE_USER</pre></div>
-
-<p>In these contexts, two special formats can also be used:</p>
-
-<dl>
-  <dt><code>ENV:<em>variablename</em></code></dt>
-  <dd>This will expand to the standard environment
-  variable <em>variablename</em>.</dd>
-
-  <dt><code>HTTP:<em>headername</em></code></dt>
-  <dd>This will expand to the value of the request header with name
-  <em>headername</em>.</dd>
-</dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logformats" id="logformats">Custom Log Formats</a></h2>
-
-<p>When <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is built into Apache or at least
-loaded (under DSO situation) additional functions exist for the <a href="mod_log_config.html#formats">Custom Log Format</a> of
-<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. First there is an
-additional ``<code>%{</code><em>varname</em><code>}x</code>''
-eXtension format function which can be used to expand any variables
-provided by any module, especially those provided by mod_ssl which can
-you find in the above table.</p>
-<p>
-For backward compatibility there is additionally a special
-``<code>%{</code><em>name</em><code>}c</code>'' cryptography format function
-provided. Information about this function is provided in the <a href="../ssl/ssl_compat.html">Compatibility</a> chapter.</p>
-<div class="example"><h3>Example</h3><pre class="prettyprint lang-config">CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="notes" id="notes">Request Notes</a></h2>
-
-<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> sets "notes" for the request which can be
-used in logging with the <code>%{<em>name</em>}n</code> format
-string in <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>
-
-<p>The notes supported are as follows:</p>
-
-<dl>
-  <dt><code>ssl-access-forbidden</code></dt>
-  <dd>This note is set to the value <code>1</code> if access was
-  denied due to an <code class="directive">SSLRequire</code>
-  or <code class="directive">SSLRequireSSL</code> directive.</dd>
-
-  <dt><code>ssl-secure-reneg</code></dt>
-  <dd>If <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is built against a version of
-  OpenSSL which supports the secure renegotiation extension, this note
-  is set to the value <code>1</code> if SSL is in used for the current
-  connection, and the client also supports the secure renegotiation
-  extension.  If the client does not support the secure renegotiation
-  extension, the note is set to the value <code>0</code>.
-  If <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is not built against a version of
-  OpenSSL which supports secure renegotiation, or if SSL is not in use
-  for the current connection, the note is not set.</dd>
-</dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="authzproviders" id="authzproviders">Authorization providers for use with Require</a></h2>
-
-  <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> provides a few authentication providers for use
-  with <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>'s
-  <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive.</p>
-
-  <h3><a name="reqssl" id="reqssl">Require ssl</a></h3>
-
-    <p>The <code>ssl</code> provider denies access if a connection is not
-       encrypted with SSL. This is similar to the
-       <code class="directive">SSLRequireSSL</code> directive.</p>
-
-    <pre class="prettyprint lang-config">Require ssl</pre>
-
-
-  
-
-  <h3><a name="reqverifyclient" id="reqverifyclient">Require ssl-verify-client</a></h3>
-
-    <p>The <code>ssl</code> provider allows access if the user is
-       authenticated with a valid client certificate. This is only
-       useful if <code>SSLVerifyClient optional</code> is in effect.</p>
-
-    <p>The following example grants access if the user is authenticated
-       either with a client certificate or by username and password.</p>
-
-    <pre class="prettyprint lang-config">      Require ssl-verify-client<br />
-      Require valid-user</pre>
-
-
-  
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SSLCACertificateFile" id="SSLCACertificateFile">SSLCACertificateFile</a> <a name="sslcacertificatefile" id="sslcacertificatefile">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>File of concatenated PEM-encoded CA Certificates
@@ -2559,6 +2364,201 @@ known to the server (i.e. the CA's certificate is under
 <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">SSLVerifyDepth 10</pre>
 </div>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="envvars" id="envvars">Environment Variables</a></h2>
+
+<p>This module can be configured to provide several items of SSL information
+as additional environment variables to the SSI and CGI namespace. This
+information is not provided by default for performance reasons. (See
+<code class="directive">SSLOptions</code> StdEnvVars, below.) The generated variables
+are listed in the table below. For backward compatibility the information can
+be made available under different names, too. Look in the <a href="../ssl/ssl_compat.html">Compatibility</a> chapter for details on the
+compatibility variables.</p>
+
+<table class="bordered">
+
+<tr>
+ <th><a name="table3">Variable Name:</a></th>
+ <th>Value Type:</th>
+ <th>Description:</th>
+</tr>
+<tr><td><code>HTTPS</code></td>                         <td>flag</td>      <td>HTTPS is being used.</td></tr>
+<tr><td><code>SSL_PROTOCOL</code></td>                  <td>string</td>    <td>The SSL protocol version (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
+<tr><td><code>SSL_SESSION_ID</code></td>                <td>string</td>    <td>The hex-encoded SSL session id</td></tr>
+<tr><td><code>SSL_SESSION_RESUMED</code></td>           <td>string</td>    <td>Initial or Resumed SSL Session.  Note: multiple requests may be served over the same (Initial or Resumed) SSL session if HTTP KeepAlive is in use</td></tr>
+<tr><td><code>SSL_SECURE_RENEG</code></td>              <td>string</td>    <td><code>true</code> if secure renegotiation is supported, else <code>false</code></td></tr>
+<tr><td><code>SSL_CIPHER</code></td>                    <td>string</td>    <td>The cipher specification name</td></tr>
+<tr><td><code>SSL_CIPHER_EXPORT</code></td>             <td>string</td>    <td><code>true</code> if cipher is an export cipher</td></tr>
+<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td>         <td>number</td>    <td>Number of cipher bits (actually used)</td></tr>
+<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td>         <td>number</td>    <td>Number of cipher bits (possible)</td></tr>
+<tr><td><code>SSL_COMPRESS_METHOD</code></td>           <td>string</td>    <td>SSL compression method negotiated</td></tr>
+<tr><td><code>SSL_VERSION_INTERFACE</code></td>         <td>string</td>    <td>The mod_ssl program version</td></tr>
+<tr><td><code>SSL_VERSION_LIBRARY</code></td>           <td>string</td>    <td>The OpenSSL program version</td></tr>
+<tr><td><code>SSL_CLIENT_M_VERSION</code></td>          <td>string</td>    <td>The version of the client certificate</td></tr>
+<tr><td><code>SSL_CLIENT_M_SERIAL</code></td>           <td>string</td>    <td>The serial of the client certificate</td></tr>
+<tr><td><code>SSL_CLIENT_S_DN</code></td>               <td>string</td>    <td>Subject DN in client's certificate</td></tr>
+<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of client's Subject DN</td></tr>
+<tr><td><code>SSL_CLIENT_I_DN</code></td>               <td>string</td>    <td>Issuer DN of client's certificate</td></tr>
+<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of client's Issuer DN</td></tr>
+<tr><td><code>SSL_CLIENT_V_START</code></td>            <td>string</td>    <td>Validity of client's certificate (start time)</td></tr>
+<tr><td><code>SSL_CLIENT_V_END</code></td>              <td>string</td>    <td>Validity of client's certificate (end time)</td></tr>
+<tr><td><code>SSL_CLIENT_V_REMAIN</code></td>           <td>string</td>    <td>Number of days until client's certificate expires</td></tr>
+<tr><td><code>SSL_CLIENT_A_SIG</code></td>              <td>string</td>    <td>Algorithm used for the signature of client's certificate</td></tr>
+<tr><td><code>SSL_CLIENT_A_KEY</code></td>              <td>string</td>    <td>Algorithm used for the public key of client's certificate</td></tr>
+<tr><td><code>SSL_CLIENT_CERT</code></td>               <td>string</td>    <td>PEM-encoded client certificate</td></tr>
+<tr><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td> <td>string</td>    <td>PEM-encoded certificates in client certificate chain</td></tr>
+<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td>   <td>string</td>    <td>Serial number and issuer of the certificate. The format matches that of the CertificateExactAssertion in RFC4523</td></tr>
+<tr><td><code>SSL_CLIENT_VERIFY</code></td>             <td>string</td>    <td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> or <code>FAILED:</code><em>reason</em></td></tr>
+<tr><td><code>SSL_SERVER_M_VERSION</code></td>          <td>string</td>    <td>The version of the server certificate</td></tr>
+<tr><td><code>SSL_SERVER_M_SERIAL</code></td>           <td>string</td>    <td>The serial of the server certificate</td></tr>
+<tr><td><code>SSL_SERVER_S_DN</code></td>               <td>string</td>    <td>Subject DN in server's certificate</td></tr>
+<tr><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of server's Subject DN</td></tr>
+<tr><td><code>SSL_SERVER_I_DN</code></td>               <td>string</td>    <td>Issuer DN of server's certificate</td></tr>
+<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>string</td>    <td>Component of server's Issuer DN</td></tr>
+<tr><td><code>SSL_SERVER_V_START</code></td>            <td>string</td>    <td>Validity of server's certificate (start time)</td></tr>
+<tr><td><code>SSL_SERVER_V_END</code></td>              <td>string</td>    <td>Validity of server's certificate (end time)</td></tr>
+<tr><td><code>SSL_SERVER_A_SIG</code></td>              <td>string</td>    <td>Algorithm used for the signature of server's certificate</td></tr>
+<tr><td><code>SSL_SERVER_A_KEY</code></td>              <td>string</td>    <td>Algorithm used for the public key of server's certificate</td></tr>
+<tr><td><code>SSL_SERVER_CERT</code></td>               <td>string</td>    <td>PEM-encoded server certificate</td></tr>
+<tr><td><code>SSL_SRP_USER</code></td>                  <td>string</td>    <td>SRP username</td></tr>
+<tr><td><code>SSL_SRP_USERINFO</code></td>              <td>string</td>    <td>SRP user info</td></tr>
+<tr><td><code>SSL_TLS_SNI</code></td>                   <td>string</td>    <td>Contents of the SNI TLS extension (if supplied with ClientHello)</td></tr>
+</table>
+
+<p><em>x509</em> specifies a component of an X.509 DN; one of
+<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>.  In Apache 2.1 and
+later, <em>x509</em> may also include a numeric <code>_n</code>
+suffix.  If the DN in question contains multiple attributes of the
+same name, this suffix is used as a zero-based index to select a
+particular attribute.  For example, where the server certificate
+subject DN included two OU attributes, <code>SSL_SERVER_S_DN_OU_0</code>
+and
+<code>SSL_SERVER_S_DN_OU_1</code> could be used to reference each.  A
+variable name without a <code>_n</code> suffix is equivalent to that
+name with a <code>_0</code> suffix; the first (or only) attribute.
+When the environment table is populated using
+the <code>StdEnvVars</code> option of
+the <code class="directive"><a href="#ssloptions">SSLOptions</a></code> directive, the
+first (or only) attribute of any DN is added only under a non-suffixed
+name; i.e. no <code>_0</code> suffixed entries are added.</p>
+
+<p>The format of the <em>*_DN</em> variables has changed in Apache HTTPD
+2.3.11. See the <code>LegacyDNStringFormat</code> option for
+<code class="directive"><a href="#ssloptions">SSLOptions</a></code> for details.</p>
+
+<p><code>SSL_CLIENT_V_REMAIN</code> is only available in version 2.1
+and later.</p>
+
+<p>A number of additional environment variables can also be used
+in <code class="directive">SSLRequire</code> expressions, or in custom log
+formats:</p>
+
+<div class="note"><pre>HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
+HTTP_REFERER           QUERY_STRING          SERVER_SOFTWARE
+HTTP_COOKIE            REMOTE_HOST           API_VERSION
+HTTP_FORWARDED         REMOTE_IDENT          TIME_YEAR
+HTTP_HOST              IS_SUBREQ             TIME_MON
+HTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAY
+HTTP_ACCEPT            SERVER_ADMIN          TIME_HOUR
+THE_REQUEST            SERVER_NAME           TIME_MIN
+REQUEST_FILENAME       SERVER_PORT           TIME_SEC
+REQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAY
+REQUEST_SCHEME         REMOTE_ADDR           TIME
+REQUEST_URI            REMOTE_USER</pre></div>
+
+<p>In these contexts, two special formats can also be used:</p>
+
+<dl>
+  <dt><code>ENV:<em>variablename</em></code></dt>
+  <dd>This will expand to the standard environment
+  variable <em>variablename</em>.</dd>
+
+  <dt><code>HTTP:<em>headername</em></code></dt>
+  <dd>This will expand to the value of the request header with name
+  <em>headername</em>.</dd>
+</dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logformats" id="logformats">Custom Log Formats</a></h2>
+
+<p>When <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is built into Apache or at least
+loaded (under DSO situation) additional functions exist for the <a href="mod_log_config.html#formats">Custom Log Format</a> of
+<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. First there is an
+additional ``<code>%{</code><em>varname</em><code>}x</code>''
+eXtension format function which can be used to expand any variables
+provided by any module, especially those provided by mod_ssl which can
+you find in the above table.</p>
+<p>
+For backward compatibility there is additionally a special
+``<code>%{</code><em>name</em><code>}c</code>'' cryptography format function
+provided. Information about this function is provided in the <a href="../ssl/ssl_compat.html">Compatibility</a> chapter.</p>
+<div class="example"><h3>Example</h3><pre class="prettyprint lang-config">CustomLog "logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
+</div>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="notes" id="notes">Request Notes</a></h2>
+
+<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> sets "notes" for the request which can be
+used in logging with the <code>%{<em>name</em>}n</code> format
+string in <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>
+
+<p>The notes supported are as follows:</p>
+
+<dl>
+  <dt><code>ssl-access-forbidden</code></dt>
+  <dd>This note is set to the value <code>1</code> if access was
+  denied due to an <code class="directive">SSLRequire</code>
+  or <code class="directive">SSLRequireSSL</code> directive.</dd>
+
+  <dt><code>ssl-secure-reneg</code></dt>
+  <dd>If <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is built against a version of
+  OpenSSL which supports the secure renegotiation extension, this note
+  is set to the value <code>1</code> if SSL is in used for the current
+  connection, and the client also supports the secure renegotiation
+  extension.  If the client does not support the secure renegotiation
+  extension, the note is set to the value <code>0</code>.
+  If <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> is not built against a version of
+  OpenSSL which supports secure renegotiation, or if SSL is not in use
+  for the current connection, the note is not set.</dd>
+</dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="authzproviders" id="authzproviders">Authorization providers for use with Require</a></h2>
+
+  <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> provides a few authentication providers for use
+  with <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>'s
+  <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> directive.</p>
+
+  <h3><a name="reqssl" id="reqssl">Require ssl</a></h3>
+
+    <p>The <code>ssl</code> provider denies access if a connection is not
+       encrypted with SSL. This is similar to the
+       <code class="directive">SSLRequireSSL</code> directive.</p>
+
+    <pre class="prettyprint lang-config">Require ssl</pre>
+
+
+  
+
+  <h3><a name="reqverifyclient" id="reqverifyclient">Require ssl-verify-client</a></h3>
+
+    <p>The <code>ssl</code> provider allows access if the user is
+       authenticated with a valid client certificate. This is only
+       useful if <code>SSLVerifyClient optional</code> is in effect.</p>
+
+    <p>The following example grants access if the user is authenticated
+       either with a client certificate or by username and password.</p>
+
+    <pre class="prettyprint lang-config">      Require ssl-verify-client<br />
+      Require valid-user</pre>
+
+
+  
+
 </div>
 </div>
 <div class="bottomlang">
index b993bfb4d30c32aa3cf32c7620cad6ca3cb8f8b1..d9b8fead499ff34d686b67b3c01cf759e119295e 100644 (file)
@@ -125,266 +125,6 @@ personnalis
 disponibles avec Require</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="envvars" id="envvars">Variables d'environnement</a></h2>
-
-<p>Ce module peut être configuré pour fournir aux espaces de nommage SSI
-et CGI de nombreux éléments d'informations concernant SSL par le biais
-de variables d'environnement supplémentaires. Par défaut, et pour
-des raisons de performances, ces informations ne sont pas fournies (Voir
-la directive <code class="directive">SSLOptions</code> StdEnvVars ci-dessous).
-Les variables générées se trouvent dans la table ci-dessous.
-Ces informations peuvent également être disponible sous des noms différents
-à des fins de compatibilité ascendante. Reportez-vous au chapitre <a href="../ssl/ssl_compat.html">Compatibilité</a> pour plus de détails à
-propos des variables de compatibilité.</p>
-
-<table class="bordered">
-
-<tr>
- <th><a name="table3">Nom de la variable :</a></th>
- <th>Type de valeur :</th>
- <th>Description :</th>
-</tr>
-<tr><td><code>HTTPS</code></td>                         <td>drapeau</td>
-<td>HTTPS est utilisé.</td></tr>
-<tr><td><code>SSL_PROTOCOL</code></td>                  <td>chaîne</td>
-<td>La version du protocole SSL (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
-<tr><td><code>SSL_SESSION_ID</code></td>                <td>chaîne</td>
-<td>L'identifiant de session SSL codé en hexadécimal</td></tr>
-<tr><td><code>SSL_SESSION_RESUMED</code></td>           <td>chaîne</td>
-<td>Session SSL initiale ou reprise. Note : plusieurs requêtes peuvent
-être servies dans le cadre de la même session SSL (initiale ou reprise)
-si les connexions persistantes (HTTP KeepAlive) sont utilisées</td></tr>
-<tr><td><code>SSL_SECURE_RENEG</code></td>              <td>chaîne</td>
-<td><code>true</code> si la renégociation sécurisée est supportée,
-<code>false</code> dans le cas contraire</td></tr>
-<tr><td><code>SSL_CIPHER</code></td>                    <td>chaîne</td>
-<td>Le nom de l'algorithme de chiffrement</td></tr>
-<tr><td><code>SSL_CIPHER_EXPORT</code></td>             <td>chaîne</td>
-<td><code>true</code> si l'algorithme de chiffrement est un algorithme
-exporté</td></tr>
-<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td>         <td>nombre</td>
-<td>Nombre de bits de chiffrement (réellement utilisés)</td></tr>
-<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td>         <td>nombre</td>
-<td>Nombre de bits de chiffrement (possible)</td></tr>
-<tr><td><code>SSL_COMPRESS_METHOD</code></td>           <td>chaîne</td>
-<td>Méthode de compression SSL négociée</td></tr>
-
-<tr><td><code>SSL_VERSION_INTERFACE</code></td>         <td>chaîne</td>
-<td>La version du programme mod_ssl</td></tr>
-<tr><td><code>SSL_VERSION_LIBRARY</code></td>           <td>chaîne</td>
-<td>La version du programme OpenSSL</td></tr>
-<tr><td><code>SSL_CLIENT_M_VERSION</code></td>          <td>chaîne</td>
-<td>La version du certificat client</td></tr>
-<tr><td><code>SSL_CLIENT_M_SERIAL</code></td>           <td>chaîne</td>
-<td>Le numéro de série du certificat client</td></tr>
-<tr><td><code>SSL_CLIENT_S_DN</code></td>               <td>chaîne</td>
-<td>Le DN sujet du certificat client</td></tr>
-<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>chaîne</td>
-<td>Elément du DN sujet du client</td></tr>
-<tr><td><code>SSL_CLIENT_I_DN</code></td>               <td>chaîne</td>
-<td>DN de l'émetteur du certificat du client</td></tr>
-<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>chaîne</td>
-<td>Elément du DN de l'émetteur du certificat du client</td></tr>
-<tr><td><code>SSL_CLIENT_V_START</code></td>            <td>chaîne</td>
-<td>Validité du certificat du client (date de début)</td></tr>
-<tr><td><code>SSL_CLIENT_V_END</code></td>              <td>chaîne</td>
-<td>Validité du certificat du client (date de fin)</td></tr>
-<tr><td><code>SSL_CLIENT_V_REMAIN</code></td>           <td>chaîne</td>
-<td>Nombre de jours avant expiration du certificat du client</td></tr>
-<tr><td><code>SSL_CLIENT_A_SIG</code></td>              <td>chaîne</td>
-<td>Algorithme utilisé pour la signature du certificat du client</td></tr>
-<tr><td><code>SSL_CLIENT_A_KEY</code></td>              <td>chaîne</td>
-<td>Algorithme utilisé pour la clé publique du certificat du client</td></tr>
-<tr><td><code>SSL_CLIENT_CERT</code></td>               <td>chaîne</td>
-<td>Certificat du client au format PEM</td></tr>
-<tr><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td>
-<td>chaîne</td>    <td>Certificats de la chaîne de certification du
-client au format PEM</td></tr>
-<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td>   <td>chaîne</td>
-<td>Numéro de série et fournisseur du certificat. le format correspond à
-celui de la CertificateExactAssertion dans la RFC4523</td></tr>
-<tr><td><code>SSL_CLIENT_VERIFY</code></td>             <td>chaîne</td>
-<td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> ou
-<code>FAILED:</code><em>raison</em></td></tr>
-<tr><td><code>SSL_SERVER_M_VERSION</code></td>          <td>chaîne</td>
-<td>La version du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_M_SERIAL</code></td>           <td>chaîne</td>    <td>
-
-The serial of the server certificate</td></tr>
-<tr><td><code>SSL_SERVER_S_DN</code></td>               <td>chaîne</td>
-<td>DN sujet du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>chaîne</td>
-<td>Elément du DN sujet du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_I_DN</code></td>               <td>chaîne</td>
-<td>DN de l'émetteur du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>chaîne</td>
-<td>Elément du DN de l'émetteur du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_V_START</code></td>            <td>chaîne</td>
-<td>Validité du certificat du serveur (date de dédut)</td></tr>
-<tr><td><code>SSL_SERVER_V_END</code></td>              <td>chaîne</td>
-<td>Validité du certificat du serveur (date de fin)</td></tr>
-<tr><td><code>SSL_SERVER_A_SIG</code></td>              <td>chaîne</td>
-<td>Algorithme utilisé pour la signature du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_A_KEY</code></td>              <td>chaîne</td>
-<td>Algorithme utilisé pour la clé publique du certificat du serveur</td></tr>
-<tr><td><code>SSL_SERVER_CERT</code></td>               <td>chaîne</td>
-<td>Certificat du serveur au format PEM</td></tr>
-<tr><td><code>SSL_SRP_USER</code></td>                  <td>chaîne</td>
-<td>nom d'utilisateur SRP</td></tr>
-<tr><td><code>SSL_SRP_USERINFO</code></td>              <td>chaîne</td>
-<td>informations sur l'utilisateur SRP</td></tr>
-<tr><td><code>SSL_TLS_SNI</code></td>                   <td>string</td>
-<td>Contenu de l'extension SNI TLS (si supporté par ClientHello)</td></tr>
-</table>
-
-<p><em>x509</em> spécifie un élément de DN X.509 parmi
-<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>. A partir de la version
-2.1 d'Apache, <em>x509</em> peut aussi comporter un suffixe numérique
-<code>_n</code>. Si le DN en question comporte plusieurs attributs de
-noms identiques, ce suffixe constitue un index débutant à zéro et
-permettant de sélectionner un
-attribut particulier. Par exemple, si le DN sujet du certificat du
-serveur comporte deux champs OU, on peut utiliser
-<code>SSL_SERVER_S_DN_OU_0</code> et <code>SSL_SERVER_S_DN_OU_1</code>
-pour référencer chacun d'entre eux. Un nom de variable sans suffixe
-<code>_n</code> est équivalent au même nom avec le suffixe
-<code>_0</code>, ce qui correspond au premier attribut (ou au seul)
-caractérisant le DN.
-Lorsque la table d'environnement est remplie en utilisant l'option
-<code>StdEnvVars</code> de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code>, le premier attribut (ou le
-seul) caractérisant le DN est enregistré avec un nom sans suffixe ;
-autrement dit, aucune entrée possédant comme suffixe <code>_0</code>
-n'est enregistrée.</p>
-
-<p>Le format des variables <em>*_DN</em> a changé depuis la version
-2.3.11 d'Apache HTTPD. Voir l'option <code>LegacyDNStringFormat</code>
-de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> pour
-plus de détails.</p>
-
-<p><code>SSL_CLIENT_V_REMAIN</code> n'est disponible qu'à partir de la
-version 2.1.</p>
-
-<p>Plusieurs variables d'environnement additionnelles peuvent être
-utilisées dans les expressions <code class="directive">SSLRequire</code>, ou
-dans les formats de journalisation personnalisés :</p>
-
-<div class="note"><pre>HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
-HTTP_REFERER           QUERY_STRING          SERVER_SOFTWARE
-HTTP_COOKIE            REMOTE_HOST           API_VERSION
-HTTP_FORWARDED         REMOTE_IDENT          TIME_YEAR
-HTTP_HOST              IS_SUBREQ             TIME_MON
-HTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAY
-HTTP_ACCEPT            SERVER_ADMIN          TIME_HOUR
-THE_REQUEST            SERVER_NAME           TIME_MIN
-REQUEST_FILENAME       SERVER_PORT           TIME_SEC
-REQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAY
-REQUEST_SCHEME         REMOTE_ADDR           TIME
-REQUEST_URI            REMOTE_USER</pre></div>
-
-<p>Dans ces contextes, deux formats spéciaux peuvent aussi être utilisés
-:</p>
-
-<dl>
-  <dt><code>ENV:<em>nom_variable</em></code></dt>
-  <dd>Correspond à la variable d'environnement standard
-  <em>nom_variable</em>.</dd>
-
-  <dt><code>HTTP:<em>nom_en-tête</em></code></dt>
-  <dd>Correspond à la valeur de l'en-tête de requête dont le nom est
-  <em>nom_en-tête</em>.</dd>
-</dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logformats" id="logformats">Formats de journaux
-personnalisés</a></h2>
-
-<p>Lorsque <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est compilé dans le serveur Apache
-ou même chargé (en mode DSO), des fonctions supplémentaires sont
-disponibles pour le <a href="mod_log_config.html#formats">Format de journal personnalisé</a> du
-module <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. A ce titre, la fonction de
-format d'eXtension ``<code>%{</code><em>nom-var</em><code>}x</code>''
-peut être utilisée pour présenter en extension toute variable fournie
-par tout module, et en particulier celles fournies par mod_ssl et que
-vous trouverez dans la table ci-dessus.</p>
-<p>
-A des fins de compatibilité ascendante, il existe une fonction de format
-cryptographique supplémentaire
-``<code>%{</code><em>nom</em><code>}c</code>''. Vous trouverez toutes
-les informations à propos de cette fonction dans le chapitre <a href="../ssl/ssl_compat.html">Compatibilité</a>.</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
-</div>
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="notes" id="notes">Information à propos de la requête</a></h2>
-
-<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> enregistre des informations à propos de la
-requête que l'on peut restituer dans les journaux avec la chaîne de
-format <code>%{<em>nom</em>}n</code> via le module
-<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>
-
-<p>Les informations enregistrées sont les suivantes :</p>
-
-<dl>
-  <dt><code>ssl-access-forbidden</code></dt>
-  <dd>Cette information contient la valeur <code>1</code> si l'accès a
-  été refusé suite à une directive <code class="directive">SSLRequire</code> ou
-  <code class="directive">SSLRequireSSL</code>.</dd>
-
-  <dt><code>ssl-secure-reneg</code></dt>
-  <dd>Si <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> a été compilé avec une version
-  d'OpenSSL qui supporte la renégociation sécurisée, si SSL est utilisé
-  pour la connexion courante et si le client supporte lui aussi la
-  renégociation sécurisée, cette information contiendra la valeur
-  <code>1</code>. Si le client ne supporte pas la renégociation
-  sécurisée, l'information contiendra la valeur <code>0</code>. Si
-  <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> n'a pas été compilé avec une version
-  d'OpenSSL qui supporte la renégociation sécurisée, ou si SSL n'est pas
-  utilisé pour la connexion courante, le contenu de l'information ne
-  sera pas défini.</dd>
-</dl>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="authzproviders" id="authzproviders">Fournisseurs d'autorisation
-disponibles avec Require</a></h2>
-
-  <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> propose quelques fournisseurs
-  d'autorisation à utiliser avec la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> du module
-  <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>.</p>
-
-  <h3><a name="reqssl" id="reqssl">Require ssl</a></h3>
-
-    <p>Le fournisseur <code>ssl</code> refuse l'accès si une connexion
-    n'est pas chiffrée avec SSL. L'effet est similaire à celui de la
-    directive <code class="directive">SSLRequireSSL</code>.</p>
-
-
-    <pre class="prettyprint lang-config">Require ssl</pre>
-
-
-
-  
-
-  <h3><a name="reqverifyclient" id="reqverifyclient">Require ssl-verify-client</a></h3>
-
-    <p>Le fournisseur <code>ssl</code> autorise l'accès si
-    l'utilisateur est authentifié via un certificat client valide. Ceci
-    n'a un effet que si <code>SSLVerifyClient optional</code> est actif.</p>
-
-    <p>Dans l'exemple suivant, l'accès est autorisé si le client est
-    authentifié via un certificat client ou par nom d'utilisateur/mot de
-    passe :</p>
-
-    <pre class="prettyprint lang-config">      Require ssl-verify-client<br />
-      Require valid-user</pre>
-
-
-  
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="sslcacertificatefile" id="sslcacertificatefile">Directive</a> <a name="SSLCACertificateFile" id="SSLCACertificateFile">SSLCACertificateFile</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant une concaténation des certificats de CA
@@ -1614,1231 +1354,1491 @@ validation r
 erreur <code>"CRL introuvable"</code>.
 </p>
 </div>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationCheck chain</pre>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationCheck chain</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxycarevocationfile" id="sslproxycarevocationfile">Directive</a> <a name="SSLProxyCARevocationFile" id="SSLProxyCARevocationFile">SSLProxyCARevocationFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des CRLs de CA codés en
+PEM pour l'authentification des serveurs distants</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationFile <em>chemin-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet de définir le fichier <em>tout-en-un</em> où sont
+rassemblées les Listes de Révocation de Certificats (CRLs) des Autorités
+de certification (CAs) pour les <em>serveurs distants</em> auxquels vous
+avez à faire. On les utilise pour l'authentification des serveurs
+distants. Un tel fichier contient la simple concaténation des différents
+fichiers de CRLs codés en PEM, classés par ordre de préférence. Cette
+directive peut être utilisée à la place et/ou en complément de la
+directive <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>.</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationFile
+/usr/local/apache2/conf/ssl.crl/ca-bundle-serveur.distant.crl</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxycarevocationpath" id="sslproxycarevocationpath">Directive</a> <a name="SSLProxyCARevocationPath" id="SSLProxyCARevocationPath">SSLProxyCARevocationPath</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des CRLs de CA codés en PEM pour
+l'authentification des serveurs distants</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationPath <em>chemin-répertoire</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet de définir le répertoire où sont stockées les
+Listes de Révocation de Certificats (CRL) des Autorités de Certification
+(CAs) pour les serveurs distants auxquels vous avez à faire. On les
+utilise pour révoquer les certificats des serveurs distants au cours de
+l'authentification de ces derniers.</p>
+<p>
+Les fichiers de ce répertoire doivent être codés en PEM et ils sont
+accédés via des noms de fichier sous forme de condensés ou hash. Il ne
+suffit donc pas de placer les fichiers de CRL dans ce répertoire
+: vous devez aussi créer des liens symboliques nommés
+<em>valeur-de-hashage</em><code>.rN</code>, et vous devez toujours vous
+assurer que ce répertoire contient les liens symboliques appropriés.</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationPath /usr/local/apache2/conf/ssl.crl/</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxycheckpeercn" id="sslproxycheckpeercn">Directive</a> <a name="SSLProxyCheckPeerCN" id="SSLProxyCheckPeerCN">SSLProxyCheckPeerCN</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration de la vérification du champ CN du certificat
+du serveur distant
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerCN on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerCN on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet de définir si le champ CN du certificat
+du serveur distant doit être comparé au nom de serveur de l'URL de la
+requête. S'ils ne correspondent pas, un
+code d'état 502 (Bad Gateway) est envoyé.
+</p>
+<p>
+A partir de la version 2.4.5, SSLProxyCheckPeerCN a été remplacé par <code class="directive"><a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></code>, et sa définition
+n'est prise en compte que si <code>SSLProxyCheckPeerName off</code> a
+été spécifié.
+</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerCN on</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxycheckpeerexpire" id="sslproxycheckpeerexpire">Directive</a> <a name="SSLProxyCheckPeerExpire" id="SSLProxyCheckPeerExpire">SSLProxyCheckPeerExpire</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration de la vérification de l'expiration du
+certificat du serveur distant
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerExpire on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerExpire on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet de définir si l'expiration du certificat du
+serveur distant doit être vérifiée ou non. Si la vérification échoue, un
+code d'état 502 (Bad Gateway) est envoyé.
+</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerExpire on</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxycheckpeername" id="sslproxycheckpeername">Directive</a> <a name="SSLProxyCheckPeerName" id="SSLProxyCheckPeerName">SSLProxyCheckPeerName</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure la vérification du nom d'hôte dans les
+certificats serveur distants
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerName on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerName on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur HTTP
+Apache</td></tr>
+</table>
+<p>
+Cette directive permet de configurer la vérification du nom d'hôte dans
+les certificats de serveur lorsque mod_ssl agit en tant que client SSL.
+La vérification est concluante si le nom d'hôte de l'URI de la requête
+correspond soit à l'extension subjectAltName, soit à l'un des attributs
+CN dans le sujet du certificat. Si la vérification échoue, la requête
+SSL est annulée et un code d'erreur 502 (Bad Gateway) est renvoyé. Cette
+directive remplace la directive <code class="directive"><a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></code> qui ne prenait en
+compte que le premier attribut CN pour la vérification du nom d'hôte.
+</p>
+<p>
+La vérification du nom d'hôte avec caractères générique est supportée de
+la manière suivante : les entrées subjectAltName de type dNSName ou les
+attributs CN commençant par <code>*.</code> correspondront à tout nom
+DNS comportant le même nombre d'éléments et le même suffixe (par
+exemple, <code>*.example.org</code> correspondra à
+<code>foo.example.org</code>, mais pas à
+<code>foo.bar.example.org</code>).
+</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxyciphersuite" id="sslproxyciphersuite">Directive</a> <a name="SSLProxyCipherSuite" id="SSLProxyCipherSuite">SSLProxyCipherSuite</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Algorithmes de chiffrement disponibles pour la négociation
+lors de l'initialisation d'une connexion SSL de mandataire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCipherSuite <em>algorithmes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>Cette directive est équivalente à la directive
+<code>SSLCipherSuite</code>, mais s'applique à une connexion de
+mandataire. Veuillez vous reporter à la directive <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code> pour plus
+d'informations.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxyengine" id="sslproxyengine">Directive</a> <a name="SSLProxyEngine" id="SSLProxyEngine">SSLProxyEngine</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interrupteur marche/arrêt du moteur de mandataire
+SSL</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyEngine off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet d'activer/désactiver l'utilisation du moteur de
+protocole SSL/TLS pour le mandataire. On l'utilise en général à
+l'intérieur d'une section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> pour activer le protocole SSL/TLS
+dans le cadre d'un mandataire pour un serveur virtuel particulier. Par
+défaut, le moteur de protocole SSL/TLS est désactivé pour la fonction de
+mandataire du serveur principal et de tous les serveurs virtuels
+configurés.</p>
+
+<p>Notez que la directive SSLProxyEngine ne doit généralement pas être
+utilisée dans le cadre d'un serveur virtuel qui agit en tant que
+mandataire direct (via les directives &lt;Proxy&gt; ou
+&lt;ProxyRequest&gt;). SSLProxyEngine n'est pas nécessaire pour activer
+un serveur mandataire direct pour les requêtes SSL/TLS.</p>
+
+
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;VirtualHost _default_:443&gt;
+    SSLProxyEngine on
+    #...
+&lt;/VirtualHost&gt;</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxymachinecertificatechainfile" id="sslproxymachinecertificatechainfile">Directive</a> <a name="SSLProxyMachineCertificateChainFile" id="SSLProxyMachineCertificateChainFile">SSLProxyMachineCertificateChainFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier de certificats de CA encodés PEM concaténés permettant au
+mandataire de choisir un certificat</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateChainFile <em>nom-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Sans objet</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet de définir le fichier global où est enregistrée
+la chaîne de certification pour tous les certificats clients utilisés.
+Elle est nécessaire si le serveur distant présente une liste de
+certificats de CA qui ne sont pas les signataires directs d'un des
+certificats clients configurés.
+</p>
+<p>
+Ce fichier contient tout simplement la concaténation des différents
+fichiers de certificats encodés PEM. Au démarrage, chaque certificat
+client configuré est examiné et une chaîne de certification est
+construite.
+</p>
+<div class="warning"><h3>Avertissement en matière de sécurité</h3>
+<p>Si cette directive est définie, tous les certificats contenus dans le
+fichier spécifié seront considérés comme étant de confiance, comme s'ils
+étaient aussi désignés dans la directive <code class="directive"><a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></code>.</p>
+</div>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateChainFile /usr/local/apache2/conf/ssl.crt/proxyCA.pem</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslproxymachinecertificatefile" id="sslproxymachinecertificatefile">Directive</a> <a name="SSLProxyMachineCertificateFile" id="SSLProxyMachineCertificateFile">SSLProxyMachineCertificateFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des clés et certificats
+clients codés en PEM que le mandataire doit utiliser</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateFile <em>chemin-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Sans objet</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette directive permet de définir le fichier tout-en-un où sont stockés
+les clés et certificats permettant au serveur mandataire de
+s'authentifier auprès des serveurs distants.
+</p>
+<p>
+Le fichier spécifié est la simple concaténation des différents fichiers
+de certificats codés en PEM, classés par ordre de préférence. Cette
+directive s'utilise à la place ou en complément de la directive
+<code>SSLProxyMachineCertificatePath</code>.
+</p>
+<div class="warning">
+<p>Actuellement, les clés privées chiffrées ne sont pas supportées.</p>
+</div>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateFile /usr/local/apache2/conf/ssl.crt/proxy.pem</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxycarevocationfile" id="sslproxycarevocationfile">Directive</a> <a name="SSLProxyCARevocationFile" id="SSLProxyCARevocationFile">SSLProxyCARevocationFile</a></h2>
+<div class="directive-section"><h2><a name="sslproxymachinecertificatepath" id="sslproxymachinecertificatepath">Directive</a> <a name="SSLProxyMachineCertificatePath" id="SSLProxyMachineCertificatePath">SSLProxyMachineCertificatePath</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des CRLs de CA codés en
-PEM pour l'authentification des serveurs distants</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationFile <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des clés et certificats clients codés en PEM que
+le mandataire doit utiliser</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificatePath <em>chemin-répertoire</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Sans objet</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
 <p>
-Cette directive permet de définir le fichier <em>tout-en-un</em> où sont
-rassemblées les Listes de Révocation de Certificats (CRLs) des Autorités
-de certification (CAs) pour les <em>serveurs distants</em> auxquels vous
-avez à faire. On les utilise pour l'authentification des serveurs
-distants. Un tel fichier contient la simple concaténation des différents
-fichiers de CRLs codés en PEM, classés par ordre de préférence. Cette
-directive peut être utilisée à la place et/ou en complément de la
-directive <code class="directive"><a href="#sslproxycarevocationpath">SSLProxyCARevocationPath</a></code>.</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationFile
-/usr/local/apache2/conf/ssl.crl/ca-bundle-serveur.distant.crl</pre>
+Cette directive permet de définir le répertoire où sont stockés les clés
+et certificats permettant au serveur mandataire de s'authentifier auprès
+des serveurs distants.
+</p>
+<p>Les fichiers de ce répertoire doivent être codés en PEM et ils sont
+accédés via des noms de fichier sous forme de condensés ou hash. Vous
+devez donc aussi créer des liens symboliques nommés
+<em>valeur-de-hashage</em><code>.N</code>, et vous devez toujours vous
+assurer que ce répertoire contient les liens symboliques appropriés.</p>
+<div class="warning">
+<p>Actuellement, les clés privées chiffrées ne sont pas supportées.</p>
+</div>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificatePath /usr/local/apache2/conf/proxy.crt/</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxycarevocationpath" id="sslproxycarevocationpath">Directive</a> <a name="SSLProxyCARevocationPath" id="SSLProxyCARevocationPath">SSLProxyCARevocationPath</a></h2>
+<div class="directive-section"><h2><a name="sslproxyprotocol" id="sslproxyprotocol">Directive</a> <a name="SSLProxyProtocol" id="SSLProxyProtocol">SSLProxyProtocol</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des CRLs de CA codés en PEM pour
-l'authentification des serveurs distants</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCARevocationPath <em>chemin-répertoire</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les protocoles SSL disponibles pour la fonction de
+mandataire</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyProtocol [+|-]<em>protocole</em> ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyProtocol all</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
+
 <p>
-Cette directive permet de définir le répertoire où sont stockées les
-Listes de Révocation de Certificats (CRL) des Autorités de Certification
-(CAs) pour les serveurs distants auxquels vous avez à faire. On les
-utilise pour révoquer les certificats des serveurs distants au cours de
-l'authentification de ces derniers.</p>
-<p>
-Les fichiers de ce répertoire doivent être codés en PEM et ils sont
-accédés via des noms de fichier sous forme de condensés ou hash. Il ne
-suffit donc pas de placer les fichiers de CRL dans ce répertoire
-: vous devez aussi créer des liens symboliques nommés
-<em>valeur-de-hashage</em><code>.rN</code>, et vous devez toujours vous
-assurer que ce répertoire contient les liens symboliques appropriés.</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCARevocationPath /usr/local/apache2/conf/ssl.crl/</pre>
-</div>
+Cette directive permet de définir les protocoles SSL que mod_ssl peut
+utiliser lors de l'élaboration de son environnement de serveur pour la
+fonction de mandataire. Il ne se connectera qu'aux serveurs utilisant un
+des protocoles spécifiés.</p>
+<p>Veuillez vous reporter à la directive <code class="directive"><a href="#sslprotocol">SSLProtocol</a></code> pour plus d'informations.
+</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxycheckpeercn" id="sslproxycheckpeercn">Directive</a> <a name="SSLProxyCheckPeerCN" id="SSLProxyCheckPeerCN">SSLProxyCheckPeerCN</a></h2>
+<div class="directive-section"><h2><a name="sslproxyverify" id="sslproxyverify">Directive</a> <a name="SSLProxyVerify" id="SSLProxyVerify">SSLProxyVerify</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration de la vérification du champ CN du certificat
-du serveur distant
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerCN on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerCN on</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de vérification du certificat du serveur
+distant</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerify <em>niveau</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyVerify none</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
+
+<p>Lorsqu'un mandataire est configuré pour faire suivre les requêtes
+vers un serveur SSL distant, cette directive permet de configurer la
+vérification du certificat de ce serveur distant.</p>
+
 <p>
-Cette directive permet de définir si le champ CN du certificat
-du serveur distant doit être comparé au nom de serveur de l'URL de la
-requête. S'ils ne correspondent pas, un
-code d'état 502 (Bad Gateway) est envoyé.
-</p>
-<p>
-A partir de la version 2.4.5, SSLProxyCheckPeerCN a été remplacé par <code class="directive"><a href="#sslproxycheckpeername">SSLProxyCheckPeerName</a></code>, et sa définition
-n'est prise en compte que si <code>SSLProxyCheckPeerName off</code> a
-été spécifié.
-</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerCN on</pre>
+Les valeurs de <em>niveau</em>x disponibles sont les suivantes :</p>
+<ul>
+<li><strong>none</strong>:
+     aucun certificat n'est requis pour le serveur distant</li>
+<li><strong>optional</strong>:
+     le serveur distant <em>peut</em> présenter un certificat valide</li>
+<li><strong>require</strong>:
+     le serveur distant <em>doit</em> présenter un certificat valide</li>
+<li><strong>optional_no_ca</strong>:
+     le serveur distant peut présenter un certificat valide<br />
+     mais il n'est pas nécessaire qu'il soit vérifiable (avec succès).</li>
+</ul>
+<p>En pratique, seuls les niveaux <strong>none</strong> et
+<strong>require</strong> sont vraiment intéressants, car le niveau
+<strong>optional</strong> ne fonctionne pas avec tous les serveurs, et
+le niveau <strong>optional_no_ca</strong> va tout à fait à l'encontre de
+l'idée que l'on peut se faire de l'authentification (mais peut tout de
+même être utilisé pour établir des pages de test SSL, etc...).</p>
+
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyVerify require</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxycheckpeerexpire" id="sslproxycheckpeerexpire">Directive</a> <a name="SSLProxyCheckPeerExpire" id="SSLProxyCheckPeerExpire">SSLProxyCheckPeerExpire</a></h2>
+<div class="directive-section"><h2><a name="sslproxyverifydepth" id="sslproxyverifydepth">Directive</a> <a name="SSLProxyVerifyDepth" id="SSLProxyVerifyDepth">SSLProxyVerifyDepth</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration de la vérification de l'expiration du
-certificat du serveur distant
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerExpire on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerExpire on</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de profondeur maximum dans les certificats de CA
+lors de la vérification du certificat du serveur distant</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerifyDepth <em>niveau</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
 <p>
-Cette directive permet de définir si l'expiration du certificat du
-serveur distant doit être vérifiée ou non. Si la vérification échoue, un
-code d'état 502 (Bad Gateway) est envoyé.
-</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyCheckPeerExpire on</pre>
+Cette directive permet de définir le niveau de profondeur maximum
+jusqu'auquel mod_ssl doit aller au cours de sa vérification avant de
+décider que le serveur distant ne possède pas de certificat valide.</p>
+<p>
+La profondeur correspond en fait au nombre maximum de fournisseurs de
+certificats intermédiaires, c'est à dire le nombre maximum de
+certificats
+de CA que l'on peut consulter lors de la vérification du certificat du
+serveur distant. Une profondeur de 0 signifie que seuls les certificats
+de serveurs distants auto-signés sont acceptés, et la profondeur par
+défaut de 1 que le certificat du serveur distant peut être soit
+auto-signé, soit signé par une CA connue directement du serveur (en
+d'autres termes, le certificat de CA est référencé par la directive
+<code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>),
+etc...</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyVerifyDepth 10</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxycheckpeername" id="sslproxycheckpeername">Directive</a> <a name="SSLProxyCheckPeerName" id="SSLProxyCheckPeerName">SSLProxyCheckPeerName</a></h2>
+<div class="directive-section"><h2><a name="sslrandomseed" id="sslrandomseed">Directive</a> <a name="SSLRandomSeed" id="SSLRandomSeed">SSLRandomSeed</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configure la vérification du nom d'hôte dans les
-certificats serveur distants
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCheckPeerName on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCheckPeerName on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Source de déclenchement du Générateur de Nombres
+Pseudo-Aléatoires (PRNG)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRandomSeed <em>contexte</em> <em>source</em>
+[<em>nombre</em>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.5 du serveur HTTP
-Apache</td></tr>
 </table>
 <p>
-Cette directive permet de configurer la vérification du nom d'hôte dans
-les certificats de serveur lorsque mod_ssl agit en tant que client SSL.
-La vérification est concluante si le nom d'hôte de l'URI de la requête
-correspond soit à l'extension subjectAltName, soit à l'un des attributs
-CN dans le sujet du certificat. Si la vérification échoue, la requête
-SSL est annulée et un code d'erreur 502 (Bad Gateway) est renvoyé. Cette
-directive remplace la directive <code class="directive"><a href="#sslproxycheckpeercn">SSLProxyCheckPeerCN</a></code> qui ne prenait en
-compte que le premier attribut CN pour la vérification du nom d'hôte.
-</p>
+Cette directive permet de définir une ou plusieurs sources de
+déclenchement du Générateur de Nombres Pseudo-Aléatoires (PRNG) dans
+OpenSSL au démarrage du serveur (si <em>contexte</em> a pour valeur
+<code>startup</code>) et/ou juste avant l'établissement d'une nouvelle
+connexion SSL (si <em>contexte</em> a pour valeur <code>connect</code>).
+Cette directive ne peut être utilisée qu'au niveau du serveur global car
+le PRNG est un service global.</p>
 <p>
-La vérification du nom d'hôte avec caractères générique est supportée de
-la manière suivante : les entrées subjectAltName de type dNSName ou les
-attributs CN commençant par <code>*.</code> correspondront à tout nom
-DNS comportant le même nombre d'éléments et le même suffixe (par
-exemple, <code>*.example.org</code> correspondra à
-<code>foo.example.org</code>, mais pas à
-<code>foo.bar.example.org</code>).
-</p>
+Les différentes valeurs de <em>source</em> disponibles sont :</p>
+<ul>
+<li><code>builtin</code>
+    <p>Cette source de déclenchement intégrée est toujours disponible.
+    Son utilisation consomme un minimum de cycles CPU en cours
+    d'exécution, et son utilisation ne présente de ce fait aucun
+    problème. La source utilisée pour déclencher le PRNG contient la
+    date courante, l'identifiant du processus courant et (si disponible)
+    un extrait de 1Ko aléatoirement choisi de la structure d'Apache pour
+    les échanges inter-processus. Ceci présente un inconvénient car le
+    caractère aléatoire de cette source n'est pas vraiment fort, et au
+    démarrage (lorsque la structure d'échanges n'est pas encore
+    disponible), cette source ne produit que quelques octets d'entropie.
+    Vous devez donc toujours utiliser une source de déclenchement
+    additionnelle, au moins pour le démarrage.</p></li>
+<li><code>file:/chemin/vers/source</code>
+    <p>
+    Cette variante utilise un fichier externe
+    <code>file:/chemin/vers/source</code> comme source de déclenchement
+    du PRNG. Lorsque <em>nombre</em> est spécifié, seuls les
+    <em>nombre</em> premiers octets du fichier forment l'entropie (et
+    <em>nombre</em> est fourni comme premier argument à
+    <code>/chemin/vers/source</code>). Lorsque <em>nombre</em> n'est pas
+    spécifié, l'ensemble du fichier forme l'entropie (et <code>0</code>
+    est fourni comme premier argument à
+    <code>/chemin/vers/source</code>). Utilisez cette source en
+    particulier au démarrage, par exemple avec un fichier de
+    périphérique <code>/dev/random</code> et/ou
+    <code>/dev/urandom</code> (qui sont en général présent sur les
+    plate-formes dérivées d'Unix modernes comme FreeBSD et Linux).</p>
+    <p><em>Soyez cependant prudent</em> : en général,
+    <code>/dev/random</code> ne fournit que l'entropie dont il dispose
+    réellement ; en d'autres termes, lorsque vous demandez 512 octets
+    d'entropie, si le périphérique ne dispose que de 100 octets, deux
+    choses peuvent se produire : sur certaines plates-formes, vous ne
+    recevez que les 100 octets, alors que sur d'autres, la lecture se
+    bloque jusqu'à ce qu'un nombre suffisant d'octets soit disponible
+    (ce qui peut prendre beaucoup de temps). Il est préférable ici
+    d'utiliser le périphérique <code>/dev/urandom</code>, car il ne se
+    bloque jamais et fournit vraiment la quantité de données demandées.
+    Comme inconvénient, les données reçues ne sont pas forcément de la
+    meilleure qualité.</p></li>
 
+<li><code>exec:/chemin/vers/programme</code>
+    <p>
+    Cette variante utilise un exécutable externe
+    <code>/chemin/vers/programme</code> comme source de déclenchement du
+    PRNG. Lorsque <em>nombre</em> est spécifié, seules les
+    <em>nombre</em> premiers octets de son flux <code>stdout</code>
+    forment l'entropie. Lorsque <em>nombre</em> n'est pas spécifié,
+    l'intégralité des données produites sur <code>stdout</code> forment
+    l'entropie. N'utilisez cette variante qu'au démarrage où une source
+    de déclenchement fortement aléatoire est nécessaire, en utilisant
+    un programme externe (comme dans l'exemple
+    ci-dessous avec l'utilitaire <code>truerand</code> basé sur la
+    bibliothèque <em>truerand</em> de AT&amp;T que vous trouverez
+    dans la distribution de mod_ssl). Bien entendu, l'utilisation de
+    cette variante dans un contexte "connection" ralentit le serveur de
+    manière trop importante, et en général, vous devez donc éviter
+    d'utiliser des programmes externes dans ce contexte.</p></li>
+<li><code>egd:/chemin/vers/socket-egd</code> (Unix seulement)
+    <p>Cette variante utilise le socket de domaine Unix du Démon
+    Générateur d'Entropie externe ou Entropy Gathering Daemon ou EGD
+    (voir <a href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech
+    /crypto/</a>) pour déclencher le PRNG. N'utilisez cette variante que
+    si votre plate-forme ne possède pas de périphérique random ou
+    urandom.</p></li>
+</ul>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRandomSeed startup builtin
+SSLRandomSeed startup file:/dev/random
+SSLRandomSeed startup file:/dev/urandom 1024
+SSLRandomSeed startup exec:/usr/local/bin/truerand 16
+SSLRandomSeed connect builtin
+SSLRandomSeed connect file:/dev/random
+SSLRandomSeed connect file:/dev/urandom 1024</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxyciphersuite" id="sslproxyciphersuite">Directive</a> <a name="SSLProxyCipherSuite" id="SSLProxyCipherSuite">SSLProxyCipherSuite</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Algorithmes de chiffrement disponibles pour la négociation
-lors de l'initialisation d'une connexion SSL de mandataire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyCipherSuite <em>algorithmes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+EXP</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
-<p>Cette directive est équivalente à la directive
-<code>SSLCipherSuite</code>, mais s'applique à une connexion de
-mandataire. Veuillez vous reporter à la directive <code class="directive"><a href="#sslciphersuite">SSLCipherSuite</a></code> pour plus
-d'informations.</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxyengine" id="sslproxyengine">Directive</a> <a name="SSLProxyEngine" id="SSLProxyEngine">SSLProxyEngine</a></h2>
+<div class="directive-section"><h2><a name="sslrenegbuffersize" id="sslrenegbuffersize">Directive</a> <a name="SSLRenegBufferSize" id="SSLRenegBufferSize">SSLRenegBufferSize</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interrupteur marche/arrêt du moteur de mandataire
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la taille du tampon de renégociation
 SSL</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyEngine on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyEngine off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRenegBufferSize <var>taille</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLRenegBufferSize 131072</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
-<p>
-Cette directive permet d'activer/désactiver l'utilisation du moteur de
-protocole SSL/TLS pour le mandataire. On l'utilise en général à
-l'intérieur d'une section <code class="directive"><a href="../mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code> pour activer le protocole SSL/TLS
-dans le cadre d'un mandataire pour un serveur virtuel particulier. Par
-défaut, le moteur de protocole SSL/TLS est désactivé pour la fonction de
-mandataire du serveur principal et de tous les serveurs virtuels
-configurés.</p>
 
-<p>Notez que la directive SSLProxyEngine ne doit généralement pas être
-utilisée dans le cadre d'un serveur virtuel qui agit en tant que
-mandataire direct (via les directives &lt;Proxy&gt; ou
-&lt;ProxyRequest&gt;). SSLProxyEngine n'est pas nécessaire pour activer
-un serveur mandataire direct pour les requêtes SSL/TLS.</p>
+<p>Si une renégociation SSL est requise dans un contexte de répertoire,
+par exemple avec l'utilisation de <code class="directive"><a href="#sslverifyclient">SSLVerifyClient</a></code> dans un bloc Directory ou
+Location, mod_ssl doit mettre en tampon en mémoire tout corps de requête
+HTTP en attendant qu'une nouvelle initialisation de connexion SSL puisse
+être effectuée. Cette directive permet de définir la quantité de mémoire
+à allouer pour ce tampon.</p>
 
+<div class="warning"><p>
+Notez que dans de nombreuses configurations, le client qui envoie un
+corps de requête n'est pas forcément digne de confiance, et l'on doit
+par conséquent prendre en considération la possibilité d'une attaque de
+type déni de service lorsqu'on modifie la valeur de cette directive.
+</p></div>
 
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">&lt;VirtualHost _default_:443&gt;
-    SSLProxyEngine on
-    #...
-&lt;/VirtualHost&gt;</pre>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRenegBufferSize 262144</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxymachinecertificatechainfile" id="sslproxymachinecertificatechainfile">Directive</a> <a name="SSLProxyMachineCertificateChainFile" id="SSLProxyMachineCertificateChainFile">SSLProxyMachineCertificateChainFile</a></h2>
+<div class="directive-section"><h2><a name="sslrequire" id="sslrequire">Directive</a> <a name="SSLRequire" id="SSLRequire">SSLRequire</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier de certificats de CA encodés PEM concaténés permettant au
-mandataire de choisir un certificat</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateChainFile <em>nom-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Sans objet</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>N'autorise l'accès que lorsqu'une expression booléenne
+complexe et arbitraire est vraie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRequire <em>expression</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
-<p>
-Cette directive permet de définir le fichier global où est enregistrée
-la chaîne de certification pour tous les certificats clients utilisés.
-Elle est nécessaire si le serveur distant présente une liste de
-certificats de CA qui ne sont pas les signataires directs d'un des
-certificats clients configurés.
-</p>
-<p>
-Ce fichier contient tout simplement la concaténation des différents
-fichiers de certificats encodés PEM. Au démarrage, chaque certificat
-client configuré est examiné et une chaîne de certification est
-construite.
-</p>
-<div class="warning"><h3>Avertissement en matière de sécurité</h3>
-<p>Si cette directive est définie, tous les certificats contenus dans le
-fichier spécifié seront considérés comme étant de confiance, comme s'ils
-étaient aussi désignés dans la directive <code class="directive"><a href="#sslproxycacertificatefile">SSLProxyCACertificateFile</a></code>.</p>
-</div>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateChainFile /usr/local/apache2/conf/ssl.crt/proxyCA.pem</pre>
-</div>
+<div class="note"><h3>SSLRequire est obsolète</h3>
+<p><code>SSLRequire</code> est obsolète et doit en général être
+remplacée par l'expression <a href="mod_authz_core.html#reqexpr">Require</a>. La syntaxe <a href="../expr.html">ap_expr</a> de l'expression <code>Require</code> est
+une extension de la syntaxe de <code>SSLRequire</code>, avec les
+différences suivantes :</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxymachinecertificatefile" id="sslproxymachinecertificatefile">Directive</a> <a name="SSLProxyMachineCertificateFile" id="SSLProxyMachineCertificateFile">SSLProxyMachineCertificateFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Fichier contenant la concaténation des clés et certificats
-clients codés en PEM que le mandataire doit utiliser</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificateFile <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Sans objet</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
-<p>
-Cette directive permet de définir le fichier tout-en-un où sont stockés
-les clés et certificats permettant au serveur mandataire de
-s'authentifier auprès des serveurs distants.
-</p>
-<p>
-Le fichier spécifié est la simple concaténation des différents fichiers
-de certificats codés en PEM, classés par ordre de préférence. Cette
-directive s'utilise à la place ou en complément de la directive
-<code>SSLProxyMachineCertificatePath</code>.
+<p>Avec <code>SSLRequire</code>, les opérateurs de comparaison
+<code>&lt;</code>, <code>&lt;=</code>, ... sont strictement équivalents
+aux opérateurs <code>lt</code>, <code>le</code>, ... , et fonctionnent
+selon une méthode qui compare tout d'abord la longueur des deux chaînes,
+puis l'ordre alphabétique. Les expressions <a href="../expr.html">ap_expr</a>, quant à elles, possèdent deux jeux
+d'opérateurs de comparaison : les opérateurs <code>&lt;</code>,
+<code>&lt;=</code>, ... effectuent une comparaison alphabétique de
+chaînes, alors que les opérateurs <code>-lt</code>, <code>-le</code>,
+... effectuent une comparaison d'entiers. Ces derniers possèdent aussi
+des alias sans tiret initial : <code>lt</code>, <code>le</code>, ...
 </p>
-<div class="warning">
-<p>Actuellement, les clés privées chiffrées ne sont pas supportées.</p>
-</div>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificateFile /usr/local/apache2/conf/ssl.crt/proxy.pem</pre>
-</div>
 
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxymachinecertificatepath" id="sslproxymachinecertificatepath">Directive</a> <a name="SSLProxyMachineCertificatePath" id="SSLProxyMachineCertificatePath">SSLProxyMachineCertificatePath</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Répertoire des clés et certificats clients codés en PEM que
-le mandataire doit utiliser</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyMachineCertificatePath <em>chemin-répertoire</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Sans objet</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
+
+<p>Cette directive permet de spécifier une condition générale d'accès
+qui doit être entièrement satisfaite pour que l'accès soit autorisé.
+C'est une directive très puissante, car la condition d'accès spécifiée
+est une expression booléenne complexe et arbitraire contenant un nombre
+quelconque de vérifications quant aux autorisations d'accès.</p>
 <p>
-Cette directive permet de définir le répertoire où sont stockés les clés
-et certificats permettant au serveur mandataire de s'authentifier auprès
-des serveurs distants.
-</p>
-<p>Les fichiers de ce répertoire doivent être codés en PEM et ils sont
-accédés via des noms de fichier sous forme de condensés ou hash. Vous
-devez donc aussi créer des liens symboliques nommés
-<em>valeur-de-hashage</em><code>.N</code>, et vous devez toujours vous
-assurer que ce répertoire contient les liens symboliques appropriés.</p>
-<div class="warning">
-<p>Actuellement, les clés privées chiffrées ne sont pas supportées.</p>
-</div>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyMachineCertificatePath /usr/local/apache2/conf/proxy.crt/</pre>
-</div>
+L'<em>expression</em> doit respecter la syntaxe suivante (fournie ici
+sous la forme d'une notation dans le style de la grammaire BNF) :</p>
+<blockquote>
+<pre>expr     ::= "<strong>true</strong>" | "<strong>false</strong>"
+           | "<strong>!</strong>" expr
+           | expr "<strong>&amp;&amp;</strong>" expr
+           | expr "<strong>||</strong>" expr
+           | "<strong>(</strong>" expr "<strong>)</strong>"
+           | comp
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxyprotocol" id="sslproxyprotocol">Directive</a> <a name="SSLProxyProtocol" id="SSLProxyProtocol">SSLProxyProtocol</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit les protocoles SSL disponibles pour la fonction de
-mandataire</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyProtocol [+|-]<em>protocole</em> ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyProtocol all</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>Options</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
+comp     ::= word "<strong>==</strong>" word | word "<strong>eq</strong>" word
+           | word "<strong>!=</strong>" word | word "<strong>ne</strong>" word
+           | word "<strong>&lt;</strong>"  word | word "<strong>lt</strong>" word
+           | word "<strong>&lt;=</strong>" word | word "<strong>le</strong>" word
+           | word "<strong>&gt;</strong>"  word | word "<strong>gt</strong>" word
+           | word "<strong>&gt;=</strong>" word | word "<strong>ge</strong>" word
+           | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>"
+           | word "<strong>in</strong>" "<strong>PeerExtList(</strong>" word "<strong>)</strong>"
+           | word "<strong>=~</strong>" regex
+           | word "<strong>!~</strong>" regex
 
-<p>
-Cette directive permet de définir les protocoles SSL que mod_ssl peut
-utiliser lors de l'élaboration de son environnement de serveur pour la
-fonction de mandataire. Il ne se connectera qu'aux serveurs utilisant un
-des protocoles spécifiés.</p>
-<p>Veuillez vous reporter à la directive <code class="directive"><a href="#sslprotocol">SSLProtocol</a></code> pour plus d'informations.
-</p>
+wordlist ::= word
+           | wordlist "<strong>,</strong>" word
+
+word     ::= digit
+           | cstring
+           | variable
+           | function
+
+digit    ::= [0-9]+
+cstring  ::= "..."
+variable ::= "<strong>%{</strong>" varname "<strong>}</strong>"
+function ::= funcname "<strong>(</strong>" funcargs "<strong>)</strong>"</pre>
+</blockquote>
+<p>Pour <code>varname</code>, toute variable décrite dans <a href="#envvars">Variables d'environnement</a> pourra être utilisée.
+Pour <code>funcname</code>, vous trouverez la liste des fonctions
+disponibles dans la <a href="../expr.html#functions">documentation
+ap_expr</a>.</p>
 
+<p><em>expression</em> est interprétée et traduite
+sous une forme machine interne lors du chargement de la configuration,
+puis évaluée lors du traitement de la requête. Dans le contexte des
+fichiers .htaccess, <em>expression</em> est interprétée et exécutée
+chaque fois que le fichier .htaccess intervient lors du traitement de la
+requête.</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)-/                   \
+            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd."          \
+            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}    \
+            and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5          \
+            and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20       ) \
+           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxyverify" id="sslproxyverify">Directive</a> <a name="SSLProxyVerify" id="SSLProxyVerify">SSLProxyVerify</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de vérification du certificat du serveur
-distant</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerify <em>niveau</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyVerify none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
 
-<p>Lorsqu'un mandataire est configuré pour faire suivre les requêtes
-vers un serveur SSL distant, cette directive permet de configurer la
-vérification du certificat de ce serveur distant.</p>
 
-<p>
-Les valeurs de <em>niveau</em>x disponibles sont les suivantes :</p>
+<p>La fonction <code>PeerExtList(<em>identifiant objet</em>)</code>
+recherche une instance d'extension de certificat X.509 identifiée par
+<em>identifiant objet</em> (OID) dans le certificat client. L'expression est
+évaluée à true si la partie gauche de la chaîne correspond exactement à
+la valeur d'une extension identifiée par cet OID (Si plusieurs
+extensions possèdent le même OID, l'une d'entre elles au moins doit
+correspondre).
+</p>
+
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequire "foobar" in PeerExtList("1.2.3.4.5.6")</pre>
+</div>
+
+<div class="note"><h3>Notes à propos de la fonction PeerExtList</h3>
+
 <ul>
-<li><strong>none</strong>:
-     aucun certificat n'est requis pour le serveur distant</li>
-<li><strong>optional</strong>:
-     le serveur distant <em>peut</em> présenter un certificat valide</li>
-<li><strong>require</strong>:
-     le serveur distant <em>doit</em> présenter un certificat valide</li>
-<li><strong>optional_no_ca</strong>:
-     le serveur distant peut présenter un certificat valide<br />
-     mais il n'est pas nécessaire qu'il soit vérifiable (avec succès).</li>
-</ul>
-<p>En pratique, seuls les niveaux <strong>none</strong> et
-<strong>require</strong> sont vraiment intéressants, car le niveau
-<strong>optional</strong> ne fonctionne pas avec tous les serveurs, et
-le niveau <strong>optional_no_ca</strong> va tout à fait à l'encontre de
-l'idée que l'on peut se faire de l'authentification (mais peut tout de
-même être utilisé pour établir des pages de test SSL, etc...).</p>
 
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyVerify require</pre>
+<li><p>L'identifiant objet peut être spécifié soit comme un nom
+descriptif reconnu par la bibliothèque SSL, tel que
+<code>"nsComment"</code>, soit comme un OID numérique tel que
+<code>"1.2.3.4.5.6"</code>.</p></li>
+
+<li><p>Les expressions contenant des types connus de la bibliothèque
+SSL sont transformées en chaînes avant comparaison. Pour les extensions
+contenant un type non connu de la bibliothèque SSL, mod_ssl va essayer
+d'interpréter la valeur s'il s'agit d'un des types ASN.1 primaires UTF8String,
+IA5String, VisibleString, ou BMPString. Si l'extension correspond à un
+de ces types, la chaîne sera convertie en UTF-8 si nécessaire, puis
+comparée avec la partie gauche de l'expression.</p></li>
+
+</ul>
 </div>
 
+
+<h3>Voir aussi</h3>
+<ul>
+<li><a href="../env.html">Les variables d'environnement dans le
+serveur HTTP Apache</a>, pour d'autres exemples.
+</li>
+<li><a href="mod_authz_core.html#reqexpr">Require expr</a></li>
+<li><a href="../expr.html">Syntaxe générale des expressions dans le
+serveur HTTP Apache</a>
+</li>
+</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslproxyverifydepth" id="sslproxyverifydepth">Directive</a> <a name="SSLProxyVerifyDepth" id="SSLProxyVerifyDepth">SSLProxyVerifyDepth</a></h2>
+<div class="directive-section"><h2><a name="sslrequiressl" id="sslrequiressl">Directive</a> <a name="SSLRequireSSL" id="SSLRequireSSL">SSLRequireSSL</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de profondeur maximum dans les certificats de CA
-lors de la vérification du certificat du serveur distant</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLProxyVerifyDepth <em>niveau</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLProxyVerifyDepth 1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interdit l'accès lorsque la requête HTTP n'utilise pas
+SSL</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRequireSSL</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
 <tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
 <p>
-Cette directive permet de définir le niveau de profondeur maximum
-jusqu'auquel mod_ssl doit aller au cours de sa vérification avant de
-décider que le serveur distant ne possède pas de certificat valide.</p>
-<p>
-La profondeur correspond en fait au nombre maximum de fournisseurs de
-certificats intermédiaires, c'est à dire le nombre maximum de
-certificats
-de CA que l'on peut consulter lors de la vérification du certificat du
-serveur distant. Une profondeur de 0 signifie que seuls les certificats
-de serveurs distants auto-signés sont acceptés, et la profondeur par
-défaut de 1 que le certificat du serveur distant peut être soit
-auto-signé, soit signé par une CA connue directement du serveur (en
-d'autres termes, le certificat de CA est référencé par la directive
-<code class="directive"><a href="#sslproxycacertificatepath">SSLProxyCACertificatePath</a></code>),
-etc...</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLProxyVerifyDepth 10</pre>
+Cette directive interdit l'accès si HTTP sur SSL (c'est à dire HTTPS)
+n'est pas activé pour la connexion courante. Ceci est très pratique dans
+un serveur virtuel où SSL est activé ou dans un répertoire pour se
+protéger des erreurs de configuration qui pourraient donner accès à des
+ressources protégées. Lorsque cette directive est présente, toutes les
+requêtes qui n'utilisent pas SSL sont rejetées.</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequireSSL</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslrandomseed" id="sslrandomseed">Directive</a> <a name="SSLRandomSeed" id="SSLRandomSeed">SSLRandomSeed</a></h2>
+<div class="directive-section"><h2><a name="sslsessioncache" id="sslsessioncache">Directive</a> <a name="SSLSessionCache" id="SSLSessionCache">SSLSessionCache</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Source de déclenchement du Générateur de Nombres
-Pseudo-Aléatoires (PRNG)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRandomSeed <em>contexte</em> <em>source</em>
-[<em>nombre</em>]</code></td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type du cache de session SSL global et
+inter-processus</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionCache <em>type</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLSessionCache none</code></td></tr>
 <tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
 </table>
 <p>
-Cette directive permet de définir une ou plusieurs sources de
-déclenchement du Générateur de Nombres Pseudo-Aléatoires (PRNG) dans
-OpenSSL au démarrage du serveur (si <em>contexte</em> a pour valeur
-<code>startup</code>) et/ou juste avant l'établissement d'une nouvelle
-connexion SSL (si <em>contexte</em> a pour valeur <code>connect</code>).
-Cette directive ne peut être utilisée qu'au niveau du serveur global car
-le PRNG est un service global.</p>
+Cette directive permet de configurer le type de stockage du cache de
+session SSL global et inter-processus. Ce cache est une fonctionnalité
+optionnelle qui accélère le traitement parallèle des requêtes. Pour ce
+qui est des requêtes vers un même processus du serveur (via HTTP
+keep-alive), OpenSSL met en cache les informations de session SSL en
+interne. Mais comme les clients modernes demandent des images en ligne
+et d'autres données via des requêtes parallèles (un nombre de quatre
+requêtes parallèles est courant), ces requêtes vont être servies par
+<em>plusieurs</em> processus du serveur pré-déclenchés. Ici, un cache
+inter-processus permet d'éviter des négociations de session
+inutiles.</p>
 <p>
-Les différentes valeurs de <em>source</em> disponibles sont :</p>
+Les quatre <em>type</em>s de stockage suivants sont actuellement
+supportés :</p>
 <ul>
-<li><code>builtin</code>
-    <p>Cette source de déclenchement intégrée est toujours disponible.
-    Son utilisation consomme un minimum de cycles CPU en cours
-    d'exécution, et son utilisation ne présente de ce fait aucun
-    problème. La source utilisée pour déclencher le PRNG contient la
-    date courante, l'identifiant du processus courant et (si disponible)
-    un extrait de 1Ko aléatoirement choisi de la structure d'Apache pour
-    les échanges inter-processus. Ceci présente un inconvénient car le
-    caractère aléatoire de cette source n'est pas vraiment fort, et au
-    démarrage (lorsque la structure d'échanges n'est pas encore
-    disponible), cette source ne produit que quelques octets d'entropie.
-    Vous devez donc toujours utiliser une source de déclenchement
-    additionnelle, au moins pour le démarrage.</p></li>
-<li><code>file:/chemin/vers/source</code>
-    <p>
-    Cette variante utilise un fichier externe
-    <code>file:/chemin/vers/source</code> comme source de déclenchement
-    du PRNG. Lorsque <em>nombre</em> est spécifié, seuls les
-    <em>nombre</em> premiers octets du fichier forment l'entropie (et
-    <em>nombre</em> est fourni comme premier argument à
-    <code>/chemin/vers/source</code>). Lorsque <em>nombre</em> n'est pas
-    spécifié, l'ensemble du fichier forme l'entropie (et <code>0</code>
-    est fourni comme premier argument à
-    <code>/chemin/vers/source</code>). Utilisez cette source en
-    particulier au démarrage, par exemple avec un fichier de
-    périphérique <code>/dev/random</code> et/ou
-    <code>/dev/urandom</code> (qui sont en général présent sur les
-    plate-formes dérivées d'Unix modernes comme FreeBSD et Linux).</p>
-    <p><em>Soyez cependant prudent</em> : en général,
-    <code>/dev/random</code> ne fournit que l'entropie dont il dispose
-    réellement ; en d'autres termes, lorsque vous demandez 512 octets
-    d'entropie, si le périphérique ne dispose que de 100 octets, deux
-    choses peuvent se produire : sur certaines plates-formes, vous ne
-    recevez que les 100 octets, alors que sur d'autres, la lecture se
-    bloque jusqu'à ce qu'un nombre suffisant d'octets soit disponible
-    (ce qui peut prendre beaucoup de temps). Il est préférable ici
-    d'utiliser le périphérique <code>/dev/urandom</code>, car il ne se
-    bloque jamais et fournit vraiment la quantité de données demandées.
-    Comme inconvénient, les données reçues ne sont pas forcément de la
-    meilleure qualité.</p></li>
+<li><code>none</code>
+
+    <p>Cette valeur désactive le cache de session global et
+    inter-processus, ce qui va ralentir le serveur de manière sensible
+    et peut poser problème avec certains navigateurs, en particulier si
+    les certificats clients sont activés. Cette configuration n'est pas
+    recommandée.</p></li>
+
+<li><code>nonenotnull</code>
+
+    <p>Cette valeur désactive tout cache de session global et
+    inter-processus. Cependant, elle force OpenSSL à envoyer un
+    identifiant de session non nul afin de s'adapter aux clients bogués
+    qui en nécessitent un.</p></li>
+
+<li><code>dbm:/chemin/vers/fichier-données</code>
+
+    <p>Cette valeur utilise un fichier de hashage DBM sur disque local
+    pour synchroniser les caches OpenSSL locaux en mémoire des processus
+    du serveur. Ce cache de session peut être sujet à des problèmes de
+    fiabilité sous forte charge. Pour l'utiliser, le module
+    <code class="module"><a href="../mod/mod_socache_dbm.html">mod_socache_dbm</a></code> doit être chargé.</p></li>
+
+<li><code>shmcb:/chemin/vers/fichier-données</code>[<code>(</code><em>nombre</em><code>)</code>]
+
+    <p>Cette valeur utilise un tampon cyclique à hautes performances
+    (d'une taille d'environ <em>nombre</em> octets) dans un segment de
+    mémoire partagée en RAM (établi via
+    <code>/chemin/vers/fichier-données</code>, pour synchroniser les
+    caches OpenSSL locaux en mémoire des processus du serveur. C'est le
+    type de cache de session recommandé. Pour l'utiliser, le module
+    <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code> doit être chargé.</p></li>
+
+<li><code>dc:UNIX:/chemin/vers/socket</code>
+
+    <p>Cette valeur utilise les bibliothèques de mise en cache de
+    sessions distribuée sur <a href="http://www.distcache.org/">cache distant "distcache"</a>.
+    L'argument doit spécifier le serveur ou mandataire à utiliser en
+    utilisant la syntaxe d'adressage distcache ; par exemple,
+    <code>UNIX:/chemin/vers/socket</code> spécifie une socket de domaine
+    Unix (en général un mandataire de dc_client local) ;
+    <code>IP:serveur.example.com:9001</code> spécifie une adresse IP.
+    Pour l'utiliser, le module <code class="module"><a href="../mod/mod_socache_dc.html">mod_socache_dc</a></code> doit être
+    chargé.</p></li>
 
-<li><code>exec:/chemin/vers/programme</code>
-    <p>
-    Cette variante utilise un exécutable externe
-    <code>/chemin/vers/programme</code> comme source de déclenchement du
-    PRNG. Lorsque <em>nombre</em> est spécifié, seules les
-    <em>nombre</em> premiers octets de son flux <code>stdout</code>
-    forment l'entropie. Lorsque <em>nombre</em> n'est pas spécifié,
-    l'intégralité des données produites sur <code>stdout</code> forment
-    l'entropie. N'utilisez cette variante qu'au démarrage où une source
-    de déclenchement fortement aléatoire est nécessaire, en utilisant
-    un programme externe (comme dans l'exemple
-    ci-dessous avec l'utilitaire <code>truerand</code> basé sur la
-    bibliothèque <em>truerand</em> de AT&amp;T que vous trouverez
-    dans la distribution de mod_ssl). Bien entendu, l'utilisation de
-    cette variante dans un contexte "connection" ralentit le serveur de
-    manière trop importante, et en général, vous devez donc éviter
-    d'utiliser des programmes externes dans ce contexte.</p></li>
-<li><code>egd:/chemin/vers/socket-egd</code> (Unix seulement)
-    <p>Cette variante utilise le socket de domaine Unix du Démon
-    Générateur d'Entropie externe ou Entropy Gathering Daemon ou EGD
-    (voir <a href="http://www.lothar.com/tech/crypto/">http://www.lothar.com/tech
-    /crypto/</a>) pour déclencher le PRNG. N'utilisez cette variante que
-    si votre plate-forme ne possède pas de périphérique random ou
-    urandom.</p></li>
 </ul>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRandomSeed startup builtin
-SSLRandomSeed startup file:/dev/random
-SSLRandomSeed startup file:/dev/urandom 1024
-SSLRandomSeed startup exec:/usr/local/bin/truerand 16
-SSLRandomSeed connect builtin
-SSLRandomSeed connect file:/dev/random
-SSLRandomSeed connect file:/dev/urandom 1024</pre>
+
+<div class="example"><h3>Exemples</h3><pre class="prettyprint lang-config">SSLSessionCache dbm:/usr/local/apache/logs/ssl_gcache_data
+SSLSessionCache shmcb:/usr/local/apache/logs/ssl_gcache_data(512000)</pre>
+</div>
+
+<p>Le mutex <code>ssl-cache</code> permet de sérialiser l'accès au cache
+de session afin d'éviter toute corruption. Ce mutex peut être configuré
+via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslsessioncachetimeout" id="sslsessioncachetimeout">Directive</a> <a name="SSLSessionCacheTimeout" id="SSLSessionCacheTimeout">SSLSessionCacheTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de secondes avant l'expiration d'une session SSL
+dans le cache de sessions</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionCacheTimeout <em>secondes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLSessionCacheTimeout 300</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>S'applique aussi à la reprise de session TLS (RFC 5077) à
+partir de la version 2.4.10 du serveur HTTP Apache</td></tr>
+</table>
+<p>
+Cette directive permet de définir la durée de vie en secondes des
+informations stockées dans le cache de sessions SSL global et
+inter-processus, dans le cache OpenSSL interne en mémoire et pour
+les sessions réinitialisées par la reprise de session TLS (RFC 5077). elle peut
+être définie à une valeur d'environ 15 à des fins de test, mais à une
+valeur très supérieure comme 300 en production.</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLSessionCacheTimeout 600</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslrenegbuffersize" id="sslrenegbuffersize">Directive</a> <a name="SSLRenegBufferSize" id="SSLRenegBufferSize">SSLRenegBufferSize</a></h2>
+<div class="directive-section"><h2><a name="sslsessionticketkeyfile" id="sslsessionticketkeyfile">Directive</a> <a name="SSLSessionTicketKeyFile" id="SSLSessionTicketKeyFile">SSLSessionTicketKeyFile</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit la taille du tampon de renégociation
-SSL</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRenegBufferSize <var>taille</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLRenegBufferSize 131072</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Clé de chiffrement/déchiffrement permanente pour les
+tickets de session TLS</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionTicketKeyFile <em>chemin-fichier</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.0 du serveur HTTP
+Apache, sous réserve que l'on utilise une version 0.9.8h ou supérieure
+d'OpenSSL</td></tr>
 </table>
+<p>Cette directive permet de définir une clé secrète pour le chiffrement
+et le déchiffrement des tickets de session TLS selon les préconisations
+de la <a href="http://www.ietf.org/rfc/rfc5077.txt">RFC 5077</a>. Elle a
+été conçue à l'origine pour les environnements de clusters où les
+données des sessions TLS doivent être partagées entre plusieurs noeuds.
+Pour les configurations ne comportant qu'une seule instance de httpd, il
+est préférable d'utiliser les clés (aléatoires) générées par mod_ssl au
+démarrage du serveur.</p>
+<p>Le fichier doit contenir 48 octets de données aléatoires créées de
+préférence par une source à haute entropie. Sur un système de type UNIX,
+il est possible de créer le fichier contenant la clé de la manière
+suivante :</p>
 
-<p>Si une renégociation SSL est requise dans un contexte de répertoire,
-par exemple avec l'utilisation de <code class="directive"><a href="#sslverifyclient">SSLVerifyClient</a></code> dans un bloc Directory ou
-Location, mod_ssl doit mettre en tampon en mémoire tout corps de requête
-HTTP en attendant qu'une nouvelle initialisation de connexion SSL puisse
-être effectuée. Cette directive permet de définir la quantité de mémoire
-à allouer pour ce tampon.</p>
+<div class="example"><p><code>
+dd if=/dev/random of=/chemin/vers/fichier.tkey bs=1 count=48
+</code></p></div>
 
-<div class="warning"><p>
-Notez que dans de nombreuses configurations, le client qui envoie un
-corps de requête n'est pas forcément digne de confiance, et l'on doit
-par conséquent prendre en considération la possibilité d'une attaque de
-type déni de service lorsqu'on modifie la valeur de cette directive.
-</p></div>
+<p>Ces clés doivent être renouvelées fréquemment, car il s'agit du seul
+moyen d'invalider un ticket de session existant - OpenSSL ne permet pas
+actuellement de spécifier une limite à la durée de vie des tickets.</p>
 
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRenegBufferSize 262144</pre>
+<div class="warning">
+<p>Ce fichier contient des données sensibles et doit donc être protégé
+par des permissions similaires à celles du fichier spécifié par la
+directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>.</p>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslrequire" id="sslrequire">Directive</a> <a name="SSLRequire" id="SSLRequire">SSLRequire</a></h2>
+<div class="directive-section"><h2><a name="sslsessiontickets" id="sslsessiontickets">Directive</a> <a name="SSLSessionTickets" id="SSLSessionTickets">SSLSessionTickets</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>N'autorise l'accès que lorsqu'une expression booléenne
-complexe et arbitraire est vraie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRequire <em>expression</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive les tickets de session TLS</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionTickets on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLSessionTickets on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.11 du serveur HTTP
+Apache, sous réserve d'utiliser OpenSSL version 0.9.8f ou supérieure.
+</td></tr>
 </table>
-<div class="note"><h3>SSLRequire est obsolète</h3>
-<p><code>SSLRequire</code> est obsolète et doit en général être
-remplacée par l'expression <a href="mod_authz_core.html#reqexpr">Require</a>. La syntaxe <a href="../expr.html">ap_expr</a> de l'expression <code>Require</code> est
-une extension de la syntaxe de <code>SSLRequire</code>, avec les
-différences suivantes :</p>
+<p>Cette directive permet d'activer ou de désactiver l'utilisation des
+tickets de session TLS (RFC 5077).</p>
+<div class="warning">
+<p>Les tickets de session TLS sont activés par défaut. Les utiliser sans
+redémarrer le serveur selon une périodicité appropriée (par exemple
+quotidiennement) compromet cependant le niveau de confidentialité.</p>
+</div>
 
-<p>Avec <code>SSLRequire</code>, les opérateurs de comparaison
-<code>&lt;</code>, <code>&lt;=</code>, ... sont strictement équivalents
-aux opérateurs <code>lt</code>, <code>le</code>, ... , et fonctionnent
-selon une méthode qui compare tout d'abord la longueur des deux chaînes,
-puis l'ordre alphabétique. Les expressions <a href="../expr.html">ap_expr</a>, quant à elles, possèdent deux jeux
-d'opérateurs de comparaison : les opérateurs <code>&lt;</code>,
-<code>&lt;=</code>, ... effectuent une comparaison alphabétique de
-chaînes, alors que les opérateurs <code>-lt</code>, <code>-le</code>,
-... effectuent une comparaison d'entiers. Ces derniers possèdent aussi
-des alias sans tiret initial : <code>lt</code>, <code>le</code>, ...
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslsrpunknownuserseed" id="sslsrpunknownuserseed">Directive</a> <a name="SSLSRPUnknownUserSeed" id="SSLSRPUnknownUserSeed">SSLSRPUnknownUserSeed</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Source d'aléa pour utilisateur SRP inconnu</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSRPUnknownUserSeed <em>secret-string</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.4 du serveur HTTP
+Apache, si la version 1.0.1 ou supérieure d'OpenSSL est utilisée.</td></tr>
+</table>
+<p>
+Cette directive permet de définir la source d'aléa à utiliser
+pour les utilisateurs SRP inconnus, ceci afin de combler les manques en
+cas d'existence d'un tel utilisateur. Elle définit une chaîne secrète. Si
+cette directive n'est pas définie, Apache renverra une alerte
+UNKNOWN_PSK_IDENTITY aux clients qui fournissent un nom d'utilisateur
+inconnu.
 </p>
+<div class="example"><h3>Exemple</h3><p><code>
+SSLSRPUnknownUserSeed "secret"
+</code></p></div>
 
 </div>
-
-<p>Cette directive permet de spécifier une condition générale d'accès
-qui doit être entièrement satisfaite pour que l'accès soit autorisé.
-C'est une directive très puissante, car la condition d'accès spécifiée
-est une expression booléenne complexe et arbitraire contenant un nombre
-quelconque de vérifications quant aux autorisations d'accès.</p>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslsrpverifierfile" id="sslsrpverifierfile">Directive</a> <a name="SSLSRPVerifierFile" id="SSLSRPVerifierFile">SSLSRPVerifierFile</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de vérification SRP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSRPVerifierFile <em>file-path</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.4 du serveur HTTP
+Apache, si la version 1.0.1 ou supérieure d'OpenSSL est utilisée.</td></tr>
+</table>
 <p>
-L'<em>expression</em> doit respecter la syntaxe suivante (fournie ici
-sous la forme d'une notation dans le style de la grammaire BNF) :</p>
-<blockquote>
-<pre>expr     ::= "<strong>true</strong>" | "<strong>false</strong>"
-           | "<strong>!</strong>" expr
-           | expr "<strong>&amp;&amp;</strong>" expr
-           | expr "<strong>||</strong>" expr
-           | "<strong>(</strong>" expr "<strong>)</strong>"
-           | comp
-
-comp     ::= word "<strong>==</strong>" word | word "<strong>eq</strong>" word
-           | word "<strong>!=</strong>" word | word "<strong>ne</strong>" word
-           | word "<strong>&lt;</strong>"  word | word "<strong>lt</strong>" word
-           | word "<strong>&lt;=</strong>" word | word "<strong>le</strong>" word
-           | word "<strong>&gt;</strong>"  word | word "<strong>gt</strong>" word
-           | word "<strong>&gt;=</strong>" word | word "<strong>ge</strong>" word
-           | word "<strong>in</strong>" "<strong>{</strong>" wordlist "<strong>}</strong>"
-           | word "<strong>in</strong>" "<strong>PeerExtList(</strong>" word "<strong>)</strong>"
-           | word "<strong>=~</strong>" regex
-           | word "<strong>!~</strong>" regex
+Cette directive permet d'activer TLS-SRP et de définir le chemin du
+fichier de vérification OpenSSL SRP (Mot de passe distant sécurisé)
+contenant les noms d'utilisateurs TLS-SRP, les vérificateurs, les
+"grains de sel" (salts), ainsi que les paramètres de groupe.</p>
+<div class="example"><h3>Exemple</h3><p><code>
+SSLSRPVerifierFile "/path/to/file.srpv"
+</code></p></div>
+<p>
+Le fichier de vérification peut être créé via l'utilitaire en ligne de
+commande <code>openssl</code> :</p>
+<div class="example"><h3>Création du fichier de vérification SRP</h3><p><code>
+openssl srp -srpvfile passwd.srpv -userinfo "some info" -add username
+</code></p></div>
+<p>La valeur affectée au paramètre optionnel <code>-userinfo</code> est
+enregistrée dans la variable d'environnement
+<code>SSL_SRP_USERINFO</code>.</p>
 
-wordlist ::= word
-           | wordlist "<strong>,</strong>" word
 
-word     ::= digit
-           | cstring
-           | variable
-           | function
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingcache" id="sslstaplingcache">Directive</a> <a name="SSLStaplingCache" id="SSLStaplingCache">SSLStaplingCache</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du cache pour l'agrafage OCSP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingCache <em>type</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Si <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est à "on",
+cette directive permet de configurer le cache destiné à stocker les
+réponses OCSP incluses dans la négociation TLS. La configuration d'un
+cache est obligatoire pour pouvoir utiliser l'agrafage OCSP. A
+l'exception de <code>none</code> et <code>nonenotnull</code>, cette
+directive supporte les mêmes types de stockage que la directive
+<code class="directive"><a href="#sslsessioncache">SSLSessionCache</a></code>.</p>
 
-digit    ::= [0-9]+
-cstring  ::= "..."
-variable ::= "<strong>%{</strong>" varname "<strong>}</strong>"
-function ::= funcname "<strong>(</strong>" funcargs "<strong>)</strong>"</pre>
-</blockquote>
-<p>Pour <code>varname</code>, toute variable décrite dans <a href="#envvars">Variables d'environnement</a> pourra être utilisée.
-Pour <code>funcname</code>, vous trouverez la liste des fonctions
-disponibles dans la <a href="../expr.html#functions">documentation
-ap_expr</a>.</p>
+<p>Le mutex <code>ssl-stapling</code> permet de sérialiser l'accès au
+cache d'agrafage OCSP afin d'en prévenir la corruption. Ce mutex peut
+être configuré via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.</p>
 
-<p><em>expression</em> est interprétée et traduite
-sous une forme machine interne lors du chargement de la configuration,
-puis évaluée lors du traitement de la requête. Dans le contexte des
-fichiers .htaccess, <em>expression</em> est interprétée et exécutée
-chaque fois que le fichier .htaccess intervient lors du traitement de la
-requête.</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequire (    %{SSL_CIPHER} !~ m/^(EXP|NULL)-/                   \
-            and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd."          \
-            and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"}    \
-            and %{TIME_WDAY} -ge 1 and %{TIME_WDAY} -le 5          \
-            and %{TIME_HOUR} -ge 8 and %{TIME_HOUR} -le 20       ) \
-           or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/</pre>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingerrorcachetimeout" id="sslstaplingerrorcachetimeout">Directive</a> <a name="SSLStaplingErrorCacheTimeout" id="SSLStaplingErrorCacheTimeout">SSLStaplingErrorCacheTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie des réponses invalides dans le cache pour
+agrafage OCSP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingErrorCacheTimeout <em>secondes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingErrorCacheTimeout 600</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet de définir la durée de vie des réponses
+<em>invalides</em> dans le cache pour agrafage OCSP configuré via la
+directive <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>. Pour
+définir la durée de vie des réponses valides, voir la directive
+<code class="directive"><a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></code>.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingfaketrylater" id="sslstaplingfaketrylater">Directive</a> <a name="SSLStaplingFakeTryLater" id="SSLStaplingFakeTryLater">SSLStaplingFakeTryLater</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Génère une réponse "tryLater" pour les requêtes OCSP échouées</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingFakeTryLater on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingFakeTryLater on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Lorsque cette directive est activée, et si une requête vers un
+serveur OCSP à des fins d'inclusion dans une négociation TLS échoue,
+mod_ssl va générer une réponse "tryLater" pour le client (<code class="directive"><a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code> doit être
+activée).</p>
 
-<p>La fonction <code>PeerExtList(<em>identifiant objet</em>)</code>
-recherche une instance d'extension de certificat X.509 identifiée par
-<em>identifiant objet</em> (OID) dans le certificat client. L'expression est
-évaluée à true si la partie gauche de la chaîne correspond exactement à
-la valeur d'une extension identifiée par cet OID (Si plusieurs
-extensions possèdent le même OID, l'une d'entre elles au moins doit
-correspondre).
-</p>
-
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequire "foobar" in PeerExtList("1.2.3.4.5.6")</pre>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingforceurl" id="sslstaplingforceurl">Directive</a> <a name="SSLStaplingForceURL" id="SSLStaplingForceURL">SSLStaplingForceURL</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remplace l'URI du serveur OCSP spécifié dans l'extension
+AIA du certificat</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingForceURL <em>uri</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet de remplacer l'URI du serveur OCSP extraite de
+l'extension authorityInfoAccess (AIA) du certificat. Elle peut s'avérer
+utile lorsqu'on passe par un mandataire</p>
 
-<div class="note"><h3>Notes à propos de la fonction PeerExtList</h3>
-
-<ul>
-
-<li><p>L'identifiant objet peut être spécifié soit comme un nom
-descriptif reconnu par la bibliothèque SSL, tel que
-<code>"nsComment"</code>, soit comme un OID numérique tel que
-<code>"1.2.3.4.5.6"</code>.</p></li>
-
-<li><p>Les expressions contenant des types connus de la bibliothèque
-SSL sont transformées en chaînes avant comparaison. Pour les extensions
-contenant un type non connu de la bibliothèque SSL, mod_ssl va essayer
-d'interpréter la valeur s'il s'agit d'un des types ASN.1 primaires UTF8String,
-IA5String, VisibleString, ou BMPString. Si l'extension correspond à un
-de ces types, la chaîne sera convertie en UTF-8 si nécessaire, puis
-comparée avec la partie gauche de l'expression.</p></li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingrespondertimeout" id="sslstaplingrespondertimeout">Directive</a> <a name="SSLStaplingResponderTimeout" id="SSLStaplingResponderTimeout">SSLStaplingResponderTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Temps d'attente maximum pour les requêtes vers les serveurs
+OCSP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponderTimeout <em>secondes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingResponderTimeout 10</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet de définir le temps d'attente maximum lorsque
+mod_ssl envoie une requête vers un serveur OCSP afin d'obtenir une
+réponse destinée à être incluse dans les négociations TLS avec les
+clients (<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
+avoir été activée au préalable).</p>
 
-</ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingresponsemaxage" id="sslstaplingresponsemaxage">Directive</a> <a name="SSLStaplingResponseMaxAge" id="SSLStaplingResponseMaxAge">SSLStaplingResponseMaxAge</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Age maximum autorisé des réponses OCSP incluses dans la
+négociation TLS</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponseMaxAge <em>secondes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingResponseMaxAge -1</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet de définir l'âge maximum autorisé
+("fraîcheur") des réponses OCSP incluses dans la négociation TLS
+(<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
+avoir été activée au préalable). La valeur par défaut (<code>-1</code>)
+ne définit aucun âge maximum, ce qui signifie que les réponses OCSP sont
+considérées comme valides à partir du moment où le contenu de leur champ
+<code>nextUpdate</code> se trouve dans le futur.</p>
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingresponsetimeskew" id="sslstaplingresponsetimeskew">Directive</a> <a name="SSLStaplingResponseTimeSkew" id="SSLStaplingResponseTimeSkew">SSLStaplingResponseTimeSkew</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie maximale autorisée des réponses OCSP incluses dans la
+négociation TLS</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponseTimeSkew <em>secondes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingResponseTimeSkew 300</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet de spécifier l'intervalle de temps maximum que
+mod_ssl va calculer en faisant la différence entre les contenus des
+champs <code>nextUpdate</code> et <code>thisUpdate</code> des réponses
+OCSP incluses dans la négociation TLS. Pour pouvoir utiliser cette
+directive, <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
+être à "on".</p>
 
-<h3>Voir aussi</h3>
-<ul>
-<li><a href="../env.html">Les variables d'environnement dans le
-serveur HTTP Apache</a>, pour d'autres exemples.
-</li>
-<li><a href="mod_authz_core.html#reqexpr">Require expr</a></li>
-<li><a href="../expr.html">Syntaxe générale des expressions dans le
-serveur HTTP Apache</a>
-</li>
-</ul>
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslrequiressl" id="sslrequiressl">Directive</a> <a name="SSLRequireSSL" id="SSLRequireSSL">SSLRequireSSL</a></h2>
+<div class="directive-section"><h2><a name="sslstaplingreturnrespondererrors" id="sslstaplingreturnrespondererrors">Directive</a> <a name="SSLStaplingReturnResponderErrors" id="SSLStaplingReturnResponderErrors">SSLStaplingReturnResponderErrors</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Interdit l'accès lorsque la requête HTTP n'utilise pas
-SSL</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLRequireSSL</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Transmet au client les erreurs survenues lors des requêtes
+OCSP</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingReturnResponderErrors on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingReturnResponderErrors on</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
 </table>
-<p>
-Cette directive interdit l'accès si HTTP sur SSL (c'est à dire HTTPS)
-n'est pas activé pour la connexion courante. Ceci est très pratique dans
-un serveur virtuel où SSL est activé ou dans un répertoire pour se
-protéger des erreurs de configuration qui pourraient donner accès à des
-ressources protégées. Lorsque cette directive est présente, toutes les
-requêtes qui n'utilisent pas SSL sont rejetées.</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLRequireSSL</pre>
+<p>Lorsque cette directive est activée, mod_ssl va transmettre au client les
+réponses concernant les requêtes OCSP échouées (erreurs d'état, réponses
+périmées, etc...). Lorsqu'elle est à <code>off</code>, aucune réponse
+concernant les requêtes OCSP échouées ne sera incluse dans les
+négociation TLS avec les clients.</p>
+
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslstaplingstandardcachetimeout" id="sslstaplingstandardcachetimeout">Directive</a> <a name="SSLStaplingStandardCacheTimeout" id="SSLStaplingStandardCacheTimeout">SSLStaplingStandardCacheTimeout</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie des réponses OCSP dans le cache</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingStandardCacheTimeout <em>secondes</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingStandardCacheTimeout 3600</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet de définir la durée de vie des réponses OCSP
+dans le cache configuré via la directive <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>. Elle ne s'applique qu'aux
+réponse <em>valides</em>, alors que la directive <code class="directive"><a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></code> s'applique aux
+réponses invalides ou non disponibles.
+</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslsessioncache" id="sslsessioncache">Directive</a> <a name="SSLSessionCache" id="SSLSessionCache">SSLSessionCache</a></h2>
+<div class="directive-section"><h2><a name="sslstrictsnivhostcheck" id="sslstrictsnivhostcheck">Directive</a> <a name="SSLStrictSNIVHostCheck" id="SSLStrictSNIVHostCheck">SSLStrictSNIVHostCheck</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Type du cache de session SSL global et
-inter-processus</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionCache <em>type</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLSessionCache none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle de l'accès des clients non-SNI à un serveur virtuel à
+base de nom.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStrictSNIVHostCheck on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStrictSNIVHostCheck off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.12 d'Apache</td></tr>
 </table>
 <p>
-Cette directive permet de configurer le type de stockage du cache de
-session SSL global et inter-processus. Ce cache est une fonctionnalité
-optionnelle qui accélère le traitement parallèle des requêtes. Pour ce
-qui est des requêtes vers un même processus du serveur (via HTTP
-keep-alive), OpenSSL met en cache les informations de session SSL en
-interne. Mais comme les clients modernes demandent des images en ligne
-et d'autres données via des requêtes parallèles (un nombre de quatre
-requêtes parallèles est courant), ces requêtes vont être servies par
-<em>plusieurs</em> processus du serveur pré-déclenchés. Ici, un cache
-inter-processus permet d'éviter des négociations de session
-inutiles.</p>
-<p>
-Les quatre <em>type</em>s de stockage suivants sont actuellement
-supportés :</p>
-<ul>
-<li><code>none</code>
-
-    <p>Cette valeur désactive le cache de session global et
-    inter-processus, ce qui va ralentir le serveur de manière sensible
-    et peut poser problème avec certains navigateurs, en particulier si
-    les certificats clients sont activés. Cette configuration n'est pas
-    recommandée.</p></li>
-
-<li><code>nonenotnull</code>
-
-    <p>Cette valeur désactive tout cache de session global et
-    inter-processus. Cependant, elle force OpenSSL à envoyer un
-    identifiant de session non nul afin de s'adapter aux clients bogués
-    qui en nécessitent un.</p></li>
-
-<li><code>dbm:/chemin/vers/fichier-données</code>
-
-    <p>Cette valeur utilise un fichier de hashage DBM sur disque local
-    pour synchroniser les caches OpenSSL locaux en mémoire des processus
-    du serveur. Ce cache de session peut être sujet à des problèmes de
-    fiabilité sous forte charge. Pour l'utiliser, le module
-    <code class="module"><a href="../mod/mod_socache_dbm.html">mod_socache_dbm</a></code> doit être chargé.</p></li>
-
-<li><code>shmcb:/chemin/vers/fichier-données</code>[<code>(</code><em>nombre</em><code>)</code>]
+Cette directive permet de contrôler l'accès des clients non-SNI à un serveur
+virtuel à base de nom. Si elle est définie à <code>on</code> dans le
+serveur virtuel à base de nom par défaut, les
+clients non-SNI ne seront autorisés à accéder à aucun serveur virtuel
+appartenant à cette combinaison IP/port. Par
+contre, si elle est définie à <code>on</code> dans un serveur virtuel
+quelconque, les clients non-SNI ne se verront interdire l'accès qu'à ce
+serveur.
+</p>
 
-    <p>Cette valeur utilise un tampon cyclique à hautes performances
-    (d'une taille d'environ <em>nombre</em> octets) dans un segment de
-    mémoire partagée en RAM (établi via
-    <code>/chemin/vers/fichier-données</code>, pour synchroniser les
-    caches OpenSSL locaux en mémoire des processus du serveur. C'est le
-    type de cache de session recommandé. Pour l'utiliser, le module
-    <code class="module"><a href="../mod/mod_socache_shmcb.html">mod_socache_shmcb</a></code> doit être chargé.</p></li>
+<div class="warning"><p>
+Cette option n'est disponible que si httpd a été compilé avec une
+version d'OpenSSL supportant SNI.
+</p></div>
 
-<li><code>dc:UNIX:/chemin/vers/socket</code>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLStrictSNIVHostCheck on</pre>
+</div>
 
-    <p>Cette valeur utilise les bibliothèques de mise en cache de
-    sessions distribuée sur <a href="http://www.distcache.org/">cache distant "distcache"</a>.
-    L'argument doit spécifier le serveur ou mandataire à utiliser en
-    utilisant la syntaxe d'adressage distcache ; par exemple,
-    <code>UNIX:/chemin/vers/socket</code> spécifie une socket de domaine
-    Unix (en général un mandataire de dc_client local) ;
-    <code>IP:serveur.example.com:9001</code> spécifie une adresse IP.
-    Pour l'utiliser, le module <code class="module"><a href="../mod/mod_socache_dc.html">mod_socache_dc</a></code> doit être
-    chargé.</p></li>
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslusername" id="sslusername">Directive</a> <a name="SSLUserName" id="SSLUserName">SSLUserName</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de la variable servant à déterminer le nom de
+l'utilisateur</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLUserName <em>nom-var</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+</table>
+<p>
+Cette variable permet de définir le champ "user" de l'objet de la
+requête Apache. Ce champ est utilisé par des modules de plus bas niveau
+pour identifier l'utilisateur avec une chaîne de caractères. En
+particulier, l'utilisation de cette directive peut provoquer la
+définition de la variable d'environnement <code>REMOTE_USER</code>.
+La valeur de l'argument <em>nom-var</em> peut correspondre à toute <a href="#envvars">variable d'environnement SSL</a>.</p>
 
-</ul>
+<p>Notez que cette directive est sans effet si l'option
+<code>FakeBasicAuth</code> est utilisée (voir <a href="#ssloptions">SSLOptions</a>).</p>
+
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLUserName SSL_CLIENT_S_DN_CN</pre>
+</div>
 
-<div class="example"><h3>Exemples</h3><pre class="prettyprint lang-config">SSLSessionCache dbm:/usr/local/apache/logs/ssl_gcache_data
-SSLSessionCache shmcb:/usr/local/apache/logs/ssl_gcache_data(512000)</pre>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="sslusestapling" id="sslusestapling">Directive</a> <a name="SSLUseStapling" id="SSLUseStapling">SSLUseStapling</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'ajout des réponses OCSP à la négociation TLS</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLUseStapling on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLUseStapling off</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
+</table>
+<p>Cette directive permet d'activer l'"Agrafage OCSP" (OCSP stapling)
+selon la définition de l'extension TLS "Certificate Status Request"
+fournie dans la RFC 6066. Si elle est activée et si le client le
+demande, mod_ssl va inclure une réponse OCSP à propos de son propre
+certificat dans la négociation TLS. Pour pouvoir activer l'Agrafage
+OCSP, il est nécessaire de configurer un <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>.</p>
 
-<p>Le mutex <code>ssl-cache</code> permet de sérialiser l'accès au cache
-de session afin d'éviter toute corruption. Ce mutex peut être configuré
-via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.</p>
+<p>L'agrafage OCSP dispense le client de requérir le serveur OCSP
+directement ; il faut cependant noter que selon les spécifications de la
+RFC 6066, la réponse <code>CertificateStatus</code> du serveur ne peut
+inclure une réponse OCSP que pour un seul certificat. Pour les
+certificats de serveur comportant des certificats de CA intermédiaires
+dans leur chaîne (c'est un cas typique de nos jours), l'implémentation
+actuelle de l'agrafage OCSP n'atteint que partiellement l'objectif d'
+"économie en questions/réponse et en ressources". Pour plus de détails,
+voir la <a href="http://www.ietf.org/rfc/rfc6961.txt">RFC 6961</a> (TLS
+Multiple Certificate Status Extension).
+</p>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslsessioncachetimeout" id="sslsessioncachetimeout">Directive</a> <a name="SSLSessionCacheTimeout" id="SSLSessionCacheTimeout">SSLSessionCacheTimeout</a></h2>
+<div class="directive-section"><h2><a name="sslverifyclient" id="sslverifyclient">Directive</a> <a name="SSLVerifyClient" id="SSLVerifyClient">SSLVerifyClient</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre de secondes avant l'expiration d'une session SSL
-dans le cache de sessions</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionCacheTimeout <em>secondes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLSessionCacheTimeout 300</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de vérification du certificat client</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVerifyClient <em>niveau</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLVerifyClient none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>S'applique aussi à la reprise de session TLS (RFC 5077) à
-partir de la version 2.4.10 du serveur HTTP Apache</td></tr>
 </table>
 <p>
-Cette directive permet de définir la durée de vie en secondes des
-informations stockées dans le cache de sessions SSL global et
-inter-processus, dans le cache OpenSSL interne en mémoire et pour
-les sessions réinitialisées par la reprise de session TLS (RFC 5077). elle peut
-être définie à une valeur d'environ 15 à des fins de test, mais à une
-valeur très supérieure comme 300 en production.</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLSessionCacheTimeout 600</pre>
+Cette directive permet de définir le niveau de vérification du
+certificat pour l'authentification du client. Notez que cette directive
+peut être utilisée à la fois dans les contextes du serveur principal et
+du répertoire. Dans le contexte du serveur principal, elle s'applique au
+processus d'authentification du client utilisé au cours de la
+négociation SSL standard lors de l'établissement d'une connexion. Dans
+un contexte de répertoire, elle force une renégociation SSL avec le
+niveau de vérification du client spécifié, après la lecture d'une
+requête HTTP, mais avant l'envoi de la réponse HTTP.</p>
+<p>
+Les valeurs de <em>niveau</em> disponibles sont les suivantes :</p>
+<ul>
+<li><strong>none</strong>:
+     aucun certificat client n'est requis</li>
+<li><strong>optional</strong>:
+     le client <em>peut</em> présenter un certificat valide</li>
+<li><strong>require</strong>:
+     le client <em>doit</em> présenter un certificat valide</li>
+<li><strong>optional_no_ca</strong>:
+     le client peut présenter un certificat valide, mais il n'est pas
+     nécessaire que ce dernier soit vérifiable (avec succès).</li>
+</ul>
+<p>En pratique, seuls les niveaux <strong>none</strong> et
+<strong>require</strong> sont vraiment intéressants, car le niveau
+<strong>optional</strong> ne fonctionne pas avec tous les navigateurs,
+et le niveau <strong>optional_no_ca</strong> va vraiment à l'encontre de
+l'idée que l'on peut se faire de l'authentification (mais peut tout de
+même être utilisé pour établir des pages de test SSL, etc...)</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyClient require</pre>
 </div>
 
 </div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslsessionticketkeyfile" id="sslsessionticketkeyfile">Directive</a> <a name="SSLSessionTicketKeyFile" id="SSLSessionTicketKeyFile">SSLSessionTicketKeyFile</a></h2>
+<div class="directive-section"><h2><a name="sslverifydepth" id="sslverifydepth">Directive</a> <a name="SSLVerifyDepth" id="SSLVerifyDepth">SSLVerifyDepth</a></h2>
 <table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Clé de chiffrement/déchiffrement permanente pour les
-tickets de session TLS</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionTicketKeyFile <em>chemin-fichier</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Profondeur maximale des certificats de CA pour la
+vérification des certificats clients</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVerifyDepth <em>nombre</em></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLVerifyDepth 1</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
 <tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
 <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.0 du serveur HTTP
-Apache, sous réserve que l'on utilise une version 0.9.8h ou supérieure
-d'OpenSSL</td></tr>
 </table>
-<p>Cette directive permet de définir une clé secrète pour le chiffrement
-et le déchiffrement des tickets de session TLS selon les préconisations
-de la <a href="http://www.ietf.org/rfc/rfc5077.txt">RFC 5077</a>. Elle a
-été conçue à l'origine pour les environnements de clusters où les
-données des sessions TLS doivent être partagées entre plusieurs noeuds.
-Pour les configurations ne comportant qu'une seule instance de httpd, il
-est préférable d'utiliser les clés (aléatoires) générées par mod_ssl au
-démarrage du serveur.</p>
-<p>Le fichier doit contenir 48 octets de données aléatoires créées de
-préférence par une source à haute entropie. Sur un système de type UNIX,
-il est possible de créer le fichier contenant la clé de la manière
-suivante :</p>
+<p>
+Cette directive permet de spécifier la profondeur maximale à laquelle
+mod_ssl va effectuer sa vérification avant de décider que le client ne
+possède pas de certificat valide. Notez que cette directive peut être
+utilisée à la fois dans les contextes du serveur principal et de
+répertoire. Dans le contexte du serveur principal, elle s'applique au
+processus d'authentification du client utilisé au cours de la
+négociation SSL standard lors de l'établissement d'une connexion. Dans
+un contexte de répertoire, elle force une renégociation SSL avec le
+client selon la nouvelle profondeur spécifiée, après la lecture d'une
+requête HTTP, mais avant l'envoi de la réponse HTTP.</p>
+<p>
+La profondeur correspond au nombre maximum de fournisseurs de
+certificats intermédiaires, c'est à dire le nombre maximum de
+certificats de CA que l'on est autorisé à suivre lors de la vérification
+du certificat du client. Une profondeur de 0 signifie que seuls les
+certificats clients auto-signés sont acceptés ; la profondeur par défaut
+de 1 signifie que le certificat client peut être soit auto-signé, soit
+signé par une CA connue directement du serveur (c'est à dire que le
+certificat de la CA doit être référencé par la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>), etc...</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyDepth 10</pre>
+</div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="envvars" id="envvars">Variables d'environnement</a></h2>
+
+<p>Ce module peut être configuré pour fournir aux espaces de nommage SSI
+et CGI de nombreux éléments d'informations concernant SSL par le biais
+de variables d'environnement supplémentaires. Par défaut, et pour
+des raisons de performances, ces informations ne sont pas fournies (Voir
+la directive <code class="directive">SSLOptions</code> StdEnvVars ci-dessous).
+Les variables générées se trouvent dans la table ci-dessous.
+Ces informations peuvent également être disponible sous des noms différents
+à des fins de compatibilité ascendante. Reportez-vous au chapitre <a href="../ssl/ssl_compat.html">Compatibilité</a> pour plus de détails à
+propos des variables de compatibilité.</p>
+
+<table class="bordered">
+
+<tr>
+ <th><a name="table3">Nom de la variable :</a></th>
+ <th>Type de valeur :</th>
+ <th>Description :</th>
+</tr>
+<tr><td><code>HTTPS</code></td>                         <td>drapeau</td>
+<td>HTTPS est utilisé.</td></tr>
+<tr><td><code>SSL_PROTOCOL</code></td>                  <td>chaîne</td>
+<td>La version du protocole SSL (SSLv3, TLSv1, TLSv1.1, TLSv1.2)</td></tr>
+<tr><td><code>SSL_SESSION_ID</code></td>                <td>chaîne</td>
+<td>L'identifiant de session SSL codé en hexadécimal</td></tr>
+<tr><td><code>SSL_SESSION_RESUMED</code></td>           <td>chaîne</td>
+<td>Session SSL initiale ou reprise. Note : plusieurs requêtes peuvent
+être servies dans le cadre de la même session SSL (initiale ou reprise)
+si les connexions persistantes (HTTP KeepAlive) sont utilisées</td></tr>
+<tr><td><code>SSL_SECURE_RENEG</code></td>              <td>chaîne</td>
+<td><code>true</code> si la renégociation sécurisée est supportée,
+<code>false</code> dans le cas contraire</td></tr>
+<tr><td><code>SSL_CIPHER</code></td>                    <td>chaîne</td>
+<td>Le nom de l'algorithme de chiffrement</td></tr>
+<tr><td><code>SSL_CIPHER_EXPORT</code></td>             <td>chaîne</td>
+<td><code>true</code> si l'algorithme de chiffrement est un algorithme
+exporté</td></tr>
+<tr><td><code>SSL_CIPHER_USEKEYSIZE</code></td>         <td>nombre</td>
+<td>Nombre de bits de chiffrement (réellement utilisés)</td></tr>
+<tr><td><code>SSL_CIPHER_ALGKEYSIZE</code></td>         <td>nombre</td>
+<td>Nombre de bits de chiffrement (possible)</td></tr>
+<tr><td><code>SSL_COMPRESS_METHOD</code></td>           <td>chaîne</td>
+<td>Méthode de compression SSL négociée</td></tr>
+
+<tr><td><code>SSL_VERSION_INTERFACE</code></td>         <td>chaîne</td>
+<td>La version du programme mod_ssl</td></tr>
+<tr><td><code>SSL_VERSION_LIBRARY</code></td>           <td>chaîne</td>
+<td>La version du programme OpenSSL</td></tr>
+<tr><td><code>SSL_CLIENT_M_VERSION</code></td>          <td>chaîne</td>
+<td>La version du certificat client</td></tr>
+<tr><td><code>SSL_CLIENT_M_SERIAL</code></td>           <td>chaîne</td>
+<td>Le numéro de série du certificat client</td></tr>
+<tr><td><code>SSL_CLIENT_S_DN</code></td>               <td>chaîne</td>
+<td>Le DN sujet du certificat client</td></tr>
+<tr><td><code>SSL_CLIENT_S_DN_</code><em>x509</em></td> <td>chaîne</td>
+<td>Elément du DN sujet du client</td></tr>
+<tr><td><code>SSL_CLIENT_I_DN</code></td>               <td>chaîne</td>
+<td>DN de l'émetteur du certificat du client</td></tr>
+<tr><td><code>SSL_CLIENT_I_DN_</code><em>x509</em></td> <td>chaîne</td>
+<td>Elément du DN de l'émetteur du certificat du client</td></tr>
+<tr><td><code>SSL_CLIENT_V_START</code></td>            <td>chaîne</td>
+<td>Validité du certificat du client (date de début)</td></tr>
+<tr><td><code>SSL_CLIENT_V_END</code></td>              <td>chaîne</td>
+<td>Validité du certificat du client (date de fin)</td></tr>
+<tr><td><code>SSL_CLIENT_V_REMAIN</code></td>           <td>chaîne</td>
+<td>Nombre de jours avant expiration du certificat du client</td></tr>
+<tr><td><code>SSL_CLIENT_A_SIG</code></td>              <td>chaîne</td>
+<td>Algorithme utilisé pour la signature du certificat du client</td></tr>
+<tr><td><code>SSL_CLIENT_A_KEY</code></td>              <td>chaîne</td>
+<td>Algorithme utilisé pour la clé publique du certificat du client</td></tr>
+<tr><td><code>SSL_CLIENT_CERT</code></td>               <td>chaîne</td>
+<td>Certificat du client au format PEM</td></tr>
+<tr><td><code>SSL_CLIENT_CERT_CHAIN_</code><em>n</em></td>
+<td>chaîne</td>    <td>Certificats de la chaîne de certification du
+client au format PEM</td></tr>
+<tr><td><code>SSL_CLIENT_CERT_RFC4523_CEA</code></td>   <td>chaîne</td>
+<td>Numéro de série et fournisseur du certificat. le format correspond à
+celui de la CertificateExactAssertion dans la RFC4523</td></tr>
+<tr><td><code>SSL_CLIENT_VERIFY</code></td>             <td>chaîne</td>
+<td><code>NONE</code>, <code>SUCCESS</code>, <code>GENEROUS</code> ou
+<code>FAILED:</code><em>raison</em></td></tr>
+<tr><td><code>SSL_SERVER_M_VERSION</code></td>          <td>chaîne</td>
+<td>La version du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_M_SERIAL</code></td>           <td>chaîne</td>    <td>
+
+The serial of the server certificate</td></tr>
+<tr><td><code>SSL_SERVER_S_DN</code></td>               <td>chaîne</td>
+<td>DN sujet du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_S_DN_</code><em>x509</em></td> <td>chaîne</td>
+<td>Elément du DN sujet du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_I_DN</code></td>               <td>chaîne</td>
+<td>DN de l'émetteur du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_I_DN_</code><em>x509</em></td> <td>chaîne</td>
+<td>Elément du DN de l'émetteur du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_V_START</code></td>            <td>chaîne</td>
+<td>Validité du certificat du serveur (date de dédut)</td></tr>
+<tr><td><code>SSL_SERVER_V_END</code></td>              <td>chaîne</td>
+<td>Validité du certificat du serveur (date de fin)</td></tr>
+<tr><td><code>SSL_SERVER_A_SIG</code></td>              <td>chaîne</td>
+<td>Algorithme utilisé pour la signature du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_A_KEY</code></td>              <td>chaîne</td>
+<td>Algorithme utilisé pour la clé publique du certificat du serveur</td></tr>
+<tr><td><code>SSL_SERVER_CERT</code></td>               <td>chaîne</td>
+<td>Certificat du serveur au format PEM</td></tr>
+<tr><td><code>SSL_SRP_USER</code></td>                  <td>chaîne</td>
+<td>nom d'utilisateur SRP</td></tr>
+<tr><td><code>SSL_SRP_USERINFO</code></td>              <td>chaîne</td>
+<td>informations sur l'utilisateur SRP</td></tr>
+<tr><td><code>SSL_TLS_SNI</code></td>                   <td>string</td>
+<td>Contenu de l'extension SNI TLS (si supporté par ClientHello)</td></tr>
+</table>
+
+<p><em>x509</em> spécifie un élément de DN X.509 parmi
+<code>C,ST,L,O,OU,CN,T,I,G,S,D,UID,Email</code>. A partir de la version
+2.1 d'Apache, <em>x509</em> peut aussi comporter un suffixe numérique
+<code>_n</code>. Si le DN en question comporte plusieurs attributs de
+noms identiques, ce suffixe constitue un index débutant à zéro et
+permettant de sélectionner un
+attribut particulier. Par exemple, si le DN sujet du certificat du
+serveur comporte deux champs OU, on peut utiliser
+<code>SSL_SERVER_S_DN_OU_0</code> et <code>SSL_SERVER_S_DN_OU_1</code>
+pour référencer chacun d'entre eux. Un nom de variable sans suffixe
+<code>_n</code> est équivalent au même nom avec le suffixe
+<code>_0</code>, ce qui correspond au premier attribut (ou au seul)
+caractérisant le DN.
+Lorsque la table d'environnement est remplie en utilisant l'option
+<code>StdEnvVars</code> de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code>, le premier attribut (ou le
+seul) caractérisant le DN est enregistré avec un nom sans suffixe ;
+autrement dit, aucune entrée possédant comme suffixe <code>_0</code>
+n'est enregistrée.</p>
 
-<div class="example"><p><code>
-dd if=/dev/random of=/chemin/vers/fichier.tkey bs=1 count=48
-</code></p></div>
+<p>Le format des variables <em>*_DN</em> a changé depuis la version
+2.3.11 d'Apache HTTPD. Voir l'option <code>LegacyDNStringFormat</code>
+de la directive <code class="directive"><a href="#ssloptions">SSLOptions</a></code> pour
+plus de détails.</p>
 
-<p>Ces clés doivent être renouvelées fréquemment, car il s'agit du seul
-moyen d'invalider un ticket de session existant - OpenSSL ne permet pas
-actuellement de spécifier une limite à la durée de vie des tickets.</p>
+<p><code>SSL_CLIENT_V_REMAIN</code> n'est disponible qu'à partir de la
+version 2.1.</p>
 
-<div class="warning">
-<p>Ce fichier contient des données sensibles et doit donc être protégé
-par des permissions similaires à celles du fichier spécifié par la
-directive <code class="directive"><a href="#sslcertificatekeyfile">SSLCertificateKeyFile</a></code>.</p>
-</div>
+<p>Plusieurs variables d'environnement additionnelles peuvent être
+utilisées dans les expressions <code class="directive">SSLRequire</code>, ou
+dans les formats de journalisation personnalisés :</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslsessiontickets" id="sslsessiontickets">Directive</a> <a name="SSLSessionTickets" id="SSLSessionTickets">SSLSessionTickets</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active ou désactive les tickets de session TLS</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSessionTickets on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLSessionTickets on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible à partir de la version 2.4.11 du serveur HTTP
-Apache, sous réserve d'utiliser OpenSSL version 0.9.8f ou supérieure.
-</td></tr>
-</table>
-<p>Cette directive permet d'activer ou de désactiver l'utilisation des
-tickets de session TLS (RFC 5077).</p>
-<div class="warning">
-<p>Les tickets de session TLS sont activés par défaut. Les utiliser sans
-redémarrer le serveur selon une périodicité appropriée (par exemple
-quotidiennement) compromet cependant le niveau de confidentialité.</p>
-</div>
+<div class="note"><pre>HTTP_USER_AGENT        PATH_INFO             AUTH_TYPE
+HTTP_REFERER           QUERY_STRING          SERVER_SOFTWARE
+HTTP_COOKIE            REMOTE_HOST           API_VERSION
+HTTP_FORWARDED         REMOTE_IDENT          TIME_YEAR
+HTTP_HOST              IS_SUBREQ             TIME_MON
+HTTP_PROXY_CONNECTION  DOCUMENT_ROOT         TIME_DAY
+HTTP_ACCEPT            SERVER_ADMIN          TIME_HOUR
+THE_REQUEST            SERVER_NAME           TIME_MIN
+REQUEST_FILENAME       SERVER_PORT           TIME_SEC
+REQUEST_METHOD         SERVER_PROTOCOL       TIME_WDAY
+REQUEST_SCHEME         REMOTE_ADDR           TIME
+REQUEST_URI            REMOTE_USER</pre></div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslsrpunknownuserseed" id="sslsrpunknownuserseed">Directive</a> <a name="SSLSRPUnknownUserSeed" id="SSLSRPUnknownUserSeed">SSLSRPUnknownUserSeed</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Source d'aléa pour utilisateur SRP inconnu</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSRPUnknownUserSeed <em>secret-string</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.4 du serveur HTTP
-Apache, si la version 1.0.1 ou supérieure d'OpenSSL est utilisée.</td></tr>
-</table>
-<p>
-Cette directive permet de définir la source d'aléa à utiliser
-pour les utilisateurs SRP inconnus, ceci afin de combler les manques en
-cas d'existence d'un tel utilisateur. Elle définit une chaîne secrète. Si
-cette directive n'est pas définie, Apache renverra une alerte
-UNKNOWN_PSK_IDENTITY aux clients qui fournissent un nom d'utilisateur
-inconnu.
-</p>
-<div class="example"><h3>Exemple</h3><p><code>
-SSLSRPUnknownUserSeed "secret"
-</code></p></div>
+<p>Dans ces contextes, deux formats spéciaux peuvent aussi être utilisés
+:</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslsrpverifierfile" id="sslsrpverifierfile">Directive</a> <a name="SSLSRPVerifierFile" id="SSLSRPVerifierFile">SSLSRPVerifierFile</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Chemin du fichier de vérification SRP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLSRPVerifierFile <em>file-path</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.4 du serveur HTTP
-Apache, si la version 1.0.1 ou supérieure d'OpenSSL est utilisée.</td></tr>
-</table>
-<p>
-Cette directive permet d'activer TLS-SRP et de définir le chemin du
-fichier de vérification OpenSSL SRP (Mot de passe distant sécurisé)
-contenant les noms d'utilisateurs TLS-SRP, les vérificateurs, les
-"grains de sel" (salts), ainsi que les paramètres de groupe.</p>
-<div class="example"><h3>Exemple</h3><p><code>
-SSLSRPVerifierFile "/path/to/file.srpv"
-</code></p></div>
-<p>
-Le fichier de vérification peut être créé via l'utilitaire en ligne de
-commande <code>openssl</code> :</p>
-<div class="example"><h3>Création du fichier de vérification SRP</h3><p><code>
-openssl srp -srpvfile passwd.srpv -userinfo "some info" -add username
-</code></p></div>
-<p>La valeur affectée au paramètre optionnel <code>-userinfo</code> est
-enregistrée dans la variable d'environnement
-<code>SSL_SRP_USERINFO</code>.</p>
+<dl>
+  <dt><code>ENV:<em>nom_variable</em></code></dt>
+  <dd>Correspond à la variable d'environnement standard
+  <em>nom_variable</em>.</dd>
 
+  <dt><code>HTTP:<em>nom_en-tête</em></code></dt>
+  <dd>Correspond à la valeur de l'en-tête de requête dont le nom est
+  <em>nom_en-tête</em>.</dd>
+</dl>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logformats" id="logformats">Formats de journaux
+personnalisés</a></h2>
 
+<p>Lorsque <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> est compilé dans le serveur Apache
+ou même chargé (en mode DSO), des fonctions supplémentaires sont
+disponibles pour le <a href="mod_log_config.html#formats">Format de journal personnalisé</a> du
+module <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>. A ce titre, la fonction de
+format d'eXtension ``<code>%{</code><em>nom-var</em><code>}x</code>''
+peut être utilisée pour présenter en extension toute variable fournie
+par tout module, et en particulier celles fournies par mod_ssl et que
+vous trouverez dans la table ci-dessus.</p>
+<p>
+A des fins de compatibilité ascendante, il existe une fonction de format
+cryptographique supplémentaire
+``<code>%{</code><em>nom</em><code>}c</code>''. Vous trouverez toutes
+les informations à propos de cette fonction dans le chapitre <a href="../ssl/ssl_compat.html">Compatibilité</a>.</p>
+<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"</pre>
 </div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingcache" id="sslstaplingcache">Directive</a> <a name="SSLStaplingCache" id="SSLStaplingCache">SSLStaplingCache</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration du cache pour l'agrafage OCSP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingCache <em>type</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Si <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> est à "on",
-cette directive permet de configurer le cache destiné à stocker les
-réponses OCSP incluses dans la négociation TLS. La configuration d'un
-cache est obligatoire pour pouvoir utiliser l'agrafage OCSP. A
-l'exception de <code>none</code> et <code>nonenotnull</code>, cette
-directive supporte les mêmes types de stockage que la directive
-<code class="directive"><a href="#sslsessioncache">SSLSessionCache</a></code>.</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="notes" id="notes">Information à propos de la requête</a></h2>
 
-<p>Le mutex <code>ssl-stapling</code> permet de sérialiser l'accès au
-cache d'agrafage OCSP afin d'en prévenir la corruption. Ce mutex peut
-être configuré via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>.</p>
+<p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> enregistre des informations à propos de la
+requête que l'on peut restituer dans les journaux avec la chaîne de
+format <code>%{<em>nom</em>}n</code> via le module
+<code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingerrorcachetimeout" id="sslstaplingerrorcachetimeout">Directive</a> <a name="SSLStaplingErrorCacheTimeout" id="SSLStaplingErrorCacheTimeout">SSLStaplingErrorCacheTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie des réponses invalides dans le cache pour
-agrafage OCSP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingErrorCacheTimeout <em>secondes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingErrorCacheTimeout 600</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet de définir la durée de vie des réponses
-<em>invalides</em> dans le cache pour agrafage OCSP configuré via la
-directive <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>. Pour
-définir la durée de vie des réponses valides, voir la directive
-<code class="directive"><a href="#sslstaplingstandardcachetimeout">SSLStaplingStandardCacheTimeout</a></code>.</p>
+<p>Les informations enregistrées sont les suivantes :</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingfaketrylater" id="sslstaplingfaketrylater">Directive</a> <a name="SSLStaplingFakeTryLater" id="SSLStaplingFakeTryLater">SSLStaplingFakeTryLater</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Génère une réponse "tryLater" pour les requêtes OCSP échouées</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingFakeTryLater on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingFakeTryLater on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Lorsque cette directive est activée, et si une requête vers un
-serveur OCSP à des fins d'inclusion dans une négociation TLS échoue,
-mod_ssl va générer une réponse "tryLater" pour le client (<code class="directive"><a href="#sslstaplingreturnrespondererrors">SSLStaplingReturnResponderErrors</a></code> doit être
-activée).</p>
+<dl>
+  <dt><code>ssl-access-forbidden</code></dt>
+  <dd>Cette information contient la valeur <code>1</code> si l'accès a
+  été refusé suite à une directive <code class="directive">SSLRequire</code> ou
+  <code class="directive">SSLRequireSSL</code>.</dd>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingforceurl" id="sslstaplingforceurl">Directive</a> <a name="SSLStaplingForceURL" id="SSLStaplingForceURL">SSLStaplingForceURL</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Remplace l'URI du serveur OCSP spécifié dans l'extension
-AIA du certificat</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingForceURL <em>uri</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet de remplacer l'URI du serveur OCSP extraite de
-l'extension authorityInfoAccess (AIA) du certificat. Elle peut s'avérer
-utile lorsqu'on passe par un mandataire</p>
+  <dt><code>ssl-secure-reneg</code></dt>
+  <dd>Si <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> a été compilé avec une version
+  d'OpenSSL qui supporte la renégociation sécurisée, si SSL est utilisé
+  pour la connexion courante et si le client supporte lui aussi la
+  renégociation sécurisée, cette information contiendra la valeur
+  <code>1</code>. Si le client ne supporte pas la renégociation
+  sécurisée, l'information contiendra la valeur <code>0</code>. Si
+  <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> n'a pas été compilé avec une version
+  d'OpenSSL qui supporte la renégociation sécurisée, ou si SSL n'est pas
+  utilisé pour la connexion courante, le contenu de l'information ne
+  sera pas défini.</dd>
+</dl>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingrespondertimeout" id="sslstaplingrespondertimeout">Directive</a> <a name="SSLStaplingResponderTimeout" id="SSLStaplingResponderTimeout">SSLStaplingResponderTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Temps d'attente maximum pour les requêtes vers les serveurs
-OCSP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponderTimeout <em>secondes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingResponderTimeout 10</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet de définir le temps d'attente maximum lorsque
-mod_ssl envoie une requête vers un serveur OCSP afin d'obtenir une
-réponse destinée à être incluse dans les négociations TLS avec les
-clients (<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
-avoir été activée au préalable).</p>
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="authzproviders" id="authzproviders">Fournisseurs d'autorisation
+disponibles avec Require</a></h2>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingresponsemaxage" id="sslstaplingresponsemaxage">Directive</a> <a name="SSLStaplingResponseMaxAge" id="SSLStaplingResponseMaxAge">SSLStaplingResponseMaxAge</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Age maximum autorisé des réponses OCSP incluses dans la
-négociation TLS</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponseMaxAge <em>secondes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingResponseMaxAge -1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet de définir l'âge maximum autorisé
-("fraîcheur") des réponses OCSP incluses dans la négociation TLS
-(<code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
-avoir été activée au préalable). La valeur par défaut (<code>-1</code>)
-ne définit aucun âge maximum, ce qui signifie que les réponses OCSP sont
-considérées comme valides à partir du moment où le contenu de leur champ
-<code>nextUpdate</code> se trouve dans le futur.</p>
+  <p><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> propose quelques fournisseurs
+  d'autorisation à utiliser avec la directive <code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code> du module
+  <code class="module"><a href="../mod/mod_authz_core.html">mod_authz_core</a></code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingresponsetimeskew" id="sslstaplingresponsetimeskew">Directive</a> <a name="SSLStaplingResponseTimeSkew" id="SSLStaplingResponseTimeSkew">SSLStaplingResponseTimeSkew</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie maximale autorisée des réponses OCSP incluses dans la
-négociation TLS</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingResponseTimeSkew <em>secondes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingResponseTimeSkew 300</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet de spécifier l'intervalle de temps maximum que
-mod_ssl va calculer en faisant la différence entre les contenus des
-champs <code>nextUpdate</code> et <code>thisUpdate</code> des réponses
-OCSP incluses dans la négociation TLS. Pour pouvoir utiliser cette
-directive, <code class="directive"><a href="#sslusestapling">SSLUseStapling</a></code> doit
-être à "on".</p>
+  <h3><a name="reqssl" id="reqssl">Require ssl</a></h3>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingreturnrespondererrors" id="sslstaplingreturnrespondererrors">Directive</a> <a name="SSLStaplingReturnResponderErrors" id="SSLStaplingReturnResponderErrors">SSLStaplingReturnResponderErrors</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Transmet au client les erreurs survenues lors des requêtes
-OCSP</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingReturnResponderErrors on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingReturnResponderErrors on</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Lorsque cette directive est activée, mod_ssl va transmettre au client les
-réponses concernant les requêtes OCSP échouées (erreurs d'état, réponses
-périmées, etc...). Lorsqu'elle est à <code>off</code>, aucune réponse
-concernant les requêtes OCSP échouées ne sera incluse dans les
-négociation TLS avec les clients.</p>
+    <p>Le fournisseur <code>ssl</code> refuse l'accès si une connexion
+    n'est pas chiffrée avec SSL. L'effet est similaire à celui de la
+    directive <code class="directive">SSLRequireSSL</code>.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstaplingstandardcachetimeout" id="sslstaplingstandardcachetimeout">Directive</a> <a name="SSLStaplingStandardCacheTimeout" id="SSLStaplingStandardCacheTimeout">SSLStaplingStandardCacheTimeout</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Durée de vie des réponses OCSP dans le cache</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStaplingStandardCacheTimeout <em>secondes</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStaplingStandardCacheTimeout 3600</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet de définir la durée de vie des réponses OCSP
-dans le cache configuré via la directive <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>. Elle ne s'applique qu'aux
-réponse <em>valides</em>, alors que la directive <code class="directive"><a href="#sslstaplingerrorcachetimeout">SSLStaplingErrorCacheTimeout</a></code> s'applique aux
-réponses invalides ou non disponibles.
-</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslstrictsnivhostcheck" id="sslstrictsnivhostcheck">Directive</a> <a name="SSLStrictSNIVHostCheck" id="SSLStrictSNIVHostCheck">SSLStrictSNIVHostCheck</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Contrôle de l'accès des clients non-SNI à un serveur virtuel à
-base de nom.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLStrictSNIVHostCheck on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLStrictSNIVHostCheck off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.2.12 d'Apache</td></tr>
-</table>
-<p>
-Cette directive permet de contrôler l'accès des clients non-SNI à un serveur
-virtuel à base de nom. Si elle est définie à <code>on</code> dans le
-serveur virtuel à base de nom par défaut, les
-clients non-SNI ne seront autorisés à accéder à aucun serveur virtuel
-appartenant à cette combinaison IP/port. Par
-contre, si elle est définie à <code>on</code> dans un serveur virtuel
-quelconque, les clients non-SNI ne se verront interdire l'accès qu'à ce
-serveur.
-</p>
+    <pre class="prettyprint lang-config">Require ssl</pre>
 
-<div class="warning"><p>
-Cette option n'est disponible que si httpd a été compilé avec une
-version d'OpenSSL supportant SNI.
-</p></div>
 
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLStrictSNIVHostCheck on</pre>
-</div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslusername" id="sslusername">Directive</a> <a name="SSLUserName" id="SSLUserName">SSLUserName</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nom de la variable servant à déterminer le nom de
-l'utilisateur</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLUserName <em>nom-var</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
-<p>
-Cette variable permet de définir le champ "user" de l'objet de la
-requête Apache. Ce champ est utilisé par des modules de plus bas niveau
-pour identifier l'utilisateur avec une chaîne de caractères. En
-particulier, l'utilisation de cette directive peut provoquer la
-définition de la variable d'environnement <code>REMOTE_USER</code>.
-La valeur de l'argument <em>nom-var</em> peut correspondre à toute <a href="#envvars">variable d'environnement SSL</a>.</p>
+  
 
-<p>Notez que cette directive est sans effet si l'option
-<code>FakeBasicAuth</code> est utilisée (voir <a href="#ssloptions">SSLOptions</a>).</p>
+  <h3><a name="reqverifyclient" id="reqverifyclient">Require ssl-verify-client</a></h3>
 
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLUserName SSL_CLIENT_S_DN_CN</pre>
-</div>
+    <p>Le fournisseur <code>ssl</code> autorise l'accès si
+    l'utilisateur est authentifié via un certificat client valide. Ceci
+    n'a un effet que si <code>SSLVerifyClient optional</code> est actif.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslusestapling" id="sslusestapling">Directive</a> <a name="SSLUseStapling" id="SSLUseStapling">SSLUseStapling</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Active l'ajout des réponses OCSP à la négociation TLS</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLUseStapling on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLUseStapling off</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible si on utilise OpenSSL version 0.9.8h ou supérieure</td></tr>
-</table>
-<p>Cette directive permet d'activer l'"Agrafage OCSP" (OCSP stapling)
-selon la définition de l'extension TLS "Certificate Status Request"
-fournie dans la RFC 6066. Si elle est activée et si le client le
-demande, mod_ssl va inclure une réponse OCSP à propos de son propre
-certificat dans la négociation TLS. Pour pouvoir activer l'Agrafage
-OCSP, il est nécessaire de configurer un <code class="directive"><a href="#sslstaplingcache">SSLStaplingCache</a></code>.</p>
+    <p>Dans l'exemple suivant, l'accès est autorisé si le client est
+    authentifié via un certificat client ou par nom d'utilisateur/mot de
+    passe :</p>
 
-<p>L'agrafage OCSP dispense le client de requérir le serveur OCSP
-directement ; il faut cependant noter que selon les spécifications de la
-RFC 6066, la réponse <code>CertificateStatus</code> du serveur ne peut
-inclure une réponse OCSP que pour un seul certificat. Pour les
-certificats de serveur comportant des certificats de CA intermédiaires
-dans leur chaîne (c'est un cas typique de nos jours), l'implémentation
-actuelle de l'agrafage OCSP n'atteint que partiellement l'objectif d'
-"économie en questions/réponse et en ressources". Pour plus de détails,
-voir la <a href="http://www.ietf.org/rfc/rfc6961.txt">RFC 6961</a> (TLS
-Multiple Certificate Status Extension).
-</p>
+    <pre class="prettyprint lang-config">      Require ssl-verify-client<br />
+      Require valid-user</pre>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslverifyclient" id="sslverifyclient">Directive</a> <a name="SSLVerifyClient" id="SSLVerifyClient">SSLVerifyClient</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Niveau de vérification du certificat client</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVerifyClient <em>niveau</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLVerifyClient none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
-<p>
-Cette directive permet de définir le niveau de vérification du
-certificat pour l'authentification du client. Notez que cette directive
-peut être utilisée à la fois dans les contextes du serveur principal et
-du répertoire. Dans le contexte du serveur principal, elle s'applique au
-processus d'authentification du client utilisé au cours de la
-négociation SSL standard lors de l'établissement d'une connexion. Dans
-un contexte de répertoire, elle force une renégociation SSL avec le
-niveau de vérification du client spécifié, après la lecture d'une
-requête HTTP, mais avant l'envoi de la réponse HTTP.</p>
-<p>
-Les valeurs de <em>niveau</em> disponibles sont les suivantes :</p>
-<ul>
-<li><strong>none</strong>:
-     aucun certificat client n'est requis</li>
-<li><strong>optional</strong>:
-     le client <em>peut</em> présenter un certificat valide</li>
-<li><strong>require</strong>:
-     le client <em>doit</em> présenter un certificat valide</li>
-<li><strong>optional_no_ca</strong>:
-     le client peut présenter un certificat valide, mais il n'est pas
-     nécessaire que ce dernier soit vérifiable (avec succès).</li>
-</ul>
-<p>En pratique, seuls les niveaux <strong>none</strong> et
-<strong>require</strong> sont vraiment intéressants, car le niveau
-<strong>optional</strong> ne fonctionne pas avec tous les navigateurs,
-et le niveau <strong>optional_no_ca</strong> va vraiment à l'encontre de
-l'idée que l'on peut se faire de l'authentification (mais peut tout de
-même être utilisé pour établir des pages de test SSL, etc...)</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyClient require</pre>
-</div>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="sslverifydepth" id="sslverifydepth">Directive</a> <a name="SSLVerifyDepth" id="SSLVerifyDepth">SSLVerifyDepth</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Profondeur maximale des certificats de CA pour la
-vérification des certificats clients</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>SSLVerifyDepth <em>nombre</em></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>SSLVerifyDepth 1</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">AllowOverride:</a></th><td>AuthConfig</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ssl</td></tr>
-</table>
-<p>
-Cette directive permet de spécifier la profondeur maximale à laquelle
-mod_ssl va effectuer sa vérification avant de décider que le client ne
-possède pas de certificat valide. Notez que cette directive peut être
-utilisée à la fois dans les contextes du serveur principal et de
-répertoire. Dans le contexte du serveur principal, elle s'applique au
-processus d'authentification du client utilisé au cours de la
-négociation SSL standard lors de l'établissement d'une connexion. Dans
-un contexte de répertoire, elle force une renégociation SSL avec le
-client selon la nouvelle profondeur spécifiée, après la lecture d'une
-requête HTTP, mais avant l'envoi de la réponse HTTP.</p>
-<p>
-La profondeur correspond au nombre maximum de fournisseurs de
-certificats intermédiaires, c'est à dire le nombre maximum de
-certificats de CA que l'on est autorisé à suivre lors de la vérification
-du certificat du client. Une profondeur de 0 signifie que seuls les
-certificats clients auto-signés sont acceptés ; la profondeur par défaut
-de 1 signifie que le certificat client peut être soit auto-signé, soit
-signé par une CA connue directement du serveur (c'est à dire que le
-certificat de la CA doit être référencé par la directive <code class="directive"><a href="#sslcacertificatepath">SSLCACertificatePath</a></code>), etc...</p>
-<div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">SSLVerifyDepth 10</pre>
-</div>
+  
 
 </div>
 </div>
index 79b4d3b7c673232b54f7bbf61f81413f53c00d1b..ad377ed3b4e4080c4c2395fea82148a72625809d 100644 (file)
@@ -44,7 +44,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#substitutemaxlinelength">SubstituteMaxLineLength</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="Substitute" id="Substitute">Substitute</a> <a name="substitute" id="substitute">Directive</a></h2>
 <table class="directive">
@@ -158,6 +157,7 @@ Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"<
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_substitute.html" title="English">&nbsp;en&nbsp;</a> |
index cad854894156df1e8afaa4fc7f64ff534f55d999..073f639a431b3f9bc98ede67a80055ad482e125c 100644 (file)
@@ -48,7 +48,6 @@ du serveur HTTP Apache</td></tr></table>
 <li><img alt="" src="../images/down.gif" /> <a href="#substitutemaxlinelength">SubstituteMaxLineLength</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="substitute" id="substitute">Directive</a> <a name="Substitute" id="Substitute">Substitute</a></h2>
 <table class="directive">
@@ -175,6 +174,7 @@ Apache</td></tr>
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_substitute.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 1638989b766bf4d60818f3690b0470cc086ad480..59033112a304af17765a407236ba47c6964747b3 100644 (file)
@@ -48,7 +48,6 @@ and Group</td></tr>
 <ul class="seealso">
 <li><a href="../suexec.html">SuEXEC support</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">Directive</a></h2>
 <table class="directive">
@@ -73,6 +72,7 @@ and Group</td></tr>
 <li><code class="directive"><a href="../mod/mod_unixd.html#suexec">Suexec</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_suexec.html" title="English">&nbsp;en&nbsp;</a> |
index 235cf0a5cd27cc4d8d1fa8b23bf4e333d6fc4ddd..7c7b635f608893a7736d7cad0c545d4e3b85bef3 100644 (file)
@@ -49,7 +49,6 @@ le groupe sp
 <ul class="seealso">
 <li><a href="../suexec.html">Support de SuEXEC</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="suexecusergroup" id="suexecusergroup">Directive</a> <a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a></h2>
 <table class="directive">
@@ -78,6 +77,7 @@ doivent s'ex
 <li><code class="directive"><a href="../mod/mod_unixd.html#suexec">Suexec</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 294347caef004a832abc14557916940ad08495fa..a983caefec9423cb02d74f0cfcc73b384b447216 100644 (file)
@@ -53,7 +53,6 @@
 <ul class="seealso">
 <li><a href="../suexec.html">SuEXEC サポート</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">ディレクティブ</a></h2>
 <table class="directive">
@@ -77,6 +76,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 4ef54cd243a2c28e287d0782a24dfccce138ad79..f7c621224622eb8d7a9d430ca7711a9cc3afa970 100644 (file)
@@ -51,7 +51,6 @@
 <ul class="seealso">
 <li><a href="../suexec.html">SuEXEC Áö¿ø</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -75,6 +74,7 @@
 
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index b1dfb263cccb6672b259e7510d51256e99ac70a4..ca3fa01984e72725bd0abc6b9d65e82f5b65a1bd 100644 (file)
@@ -49,7 +49,6 @@
 <ul class="seealso">
 <li><a href="../suexec.html">SuEXEC Desteği</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="SuexecUserGroup" id="SuexecUserGroup">SuexecUserGroup</a> <a name="suexecusergroup" id="suexecusergroup">Yönergesi</a></h2>
 <table class="directive">
@@ -77,6 +76,7 @@
 <li><code class="directive"><a href="../mod/mod_unixd.html#suexec">Suexec</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index ebfd44de718aaa4a42646fdba0fd5d8a5f03318f..c1f5d711105669d4b79e441ada9d93b315f1bf3b 100644 (file)
@@ -44,7 +44,6 @@
 <ul class="seealso">
 <li><a href="../suexec.html">suEXEC support</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ChrootDir" id="ChrootDir">ChrootDir</a> <a name="chrootdir" id="chrootdir">Directive</a></h2>
 <table class="directive">
@@ -177,6 +176,7 @@ requests</td></tr>
 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_unixd.html" title="English">&nbsp;en&nbsp;</a> |
index 385612e3d18d711bd3d32b6c67c1550e7dabaeab..0203f25188eb14061994b10b395e12c6536aa2f6 100644 (file)
@@ -45,7 +45,6 @@ famille Unix.</td></tr>
 <ul class="seealso">
 <li><a href="../suexec.html">Support de suEXEC</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="chrootdir" id="chrootdir">Directive</a> <a name="ChrootDir" id="ChrootDir">ChrootDir</a></h2>
 <table class="directive">
@@ -192,6 +191,7 @@ requ
 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_unixd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index d435097e80a81a31346a1fdebefdb0b0082efae9..c80f0703a581b99b8f9962333e95ebe36f152476 100644 (file)
@@ -44,7 +44,6 @@
 <ul class="seealso">
 <li><a href="../suexec.html">suEXEC desteği</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="ChrootDir" id="ChrootDir">ChrootDir</a> <a name="chrootdir" id="chrootdir">Yönergesi</a></h2>
 <table class="directive">
 <li><code class="directive"><a href="../mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_unixd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 5e1bec00eaf9fda30273bd8efcb2b86859019968..0650f87957b7853a78410ddfd9c698294cfb7c98 100644 (file)
@@ -50,7 +50,6 @@ Filesystem</a></li>
 <li><a href="../howto/public_html.html">public_html
 tutorial</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">Directive</a></h2>
 <table class="directive">
@@ -179,6 +178,7 @@ UserDir enabled user1 user2 user3</pre>
 </li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_userdir.html" title="English">&nbsp;en&nbsp;</a> |
index ebb56d88a480b7d3df79077a3584e7ee34465c5c..b29b522bd5b28970c88840f4409a67273951df6e 100644 (file)
@@ -50,7 +50,6 @@ avec le syst
 <li><a href="../howto/public_html.html">Tutoriel
 public_html</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="userdir" id="userdir">Directive</a> <a name="UserDir" id="UserDir">UserDir</a></h2>
 <table class="directive">
@@ -190,6 +189,7 @@ UserDir enabled user1 user2 user3</pre>
 </li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_userdir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 94efdd1af4bc183c44ad0478151548fe11200827..efa0ccbf882584dbaeaa1600b033f62f79cf5624 100644 (file)
@@ -56,7 +56,6 @@
 <li><a href="../howto/public_html.html">public_html
 チュートリアル</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">ディレクティブ</a></h2>
 <table class="directive">
@@ -183,6 +182,7 @@ Apache はリダイレクトが成功するかどうかを決めることはで
 チュートリアル</a></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_userdir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 6a76d45a7473e538adba6ab9b78cd589a282739b..177b97da3258b7529172bdde5014c2032c429c20 100644 (file)
@@ -51,7 +51,6 @@
 <li><a href="../howto/public_html.html">public_html
 ÅõÅ丮¾ó</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -155,6 +154,7 @@ http://www.foo.com/bob/one/two.html
 ÅõÅ丮¾ó</a></li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_userdir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index e7f72d44e19bd252e8d24def9713ae4d724cdaa5..189a2edad7385a58b64b27154b4e60123ea5f787 100644 (file)
@@ -53,7 +53,6 @@
   <a href="../howto/public_html.html">public_html eğitmeni</a>
 </li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="UserDir" id="UserDir">UserDir</a> <a name="userdir" id="userdir">Yönergesi</a></h2>
 <table class="directive">
@@ -176,6 +175,7 @@ UserDir enabled birey1 birey2 birey3</pre>
 </li>
 </ul>
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_userdir.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 18412fa876fbe3a87c193e7ffba0221c72bcc6a1..b29cc71a15fc2c58615de77a47659ea7440397bf 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#logging">Logging</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logging" id="logging">Logging</a></h2>
-
-
-    <p><code class="module"><a href="../mod/mod_usertrack.html">mod_usertrack</a></code> sets a cookie which can be logged
-    via <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> configurable logging formats:</p>
-
-    <pre class="prettyprint lang-config">LogFormat "%{Apache}n %r %t" usertrack
-CustomLog logs/clickstream.log usertrack</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CookieDomain" id="CookieDomain">CookieDomain</a> <a name="cookiedomain" id="cookiedomain">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The domain to which the tracking cookie applies</td></tr>
@@ -207,6 +194,19 @@ CustomLog logs/clickstream.log usertrack</pre>
 
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logging" id="logging">Logging</a></h2>
+
+
+    <p><code class="module"><a href="../mod/mod_usertrack.html">mod_usertrack</a></code> sets a cookie which can be logged
+    via <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> configurable logging formats:</p>
+
+    <pre class="prettyprint lang-config">LogFormat "%{Apache}n %r %t" usertrack
+CustomLog logs/clickstream.log usertrack</pre>
+
+
 </div>
 </div>
 <div class="bottomlang">
index d4f3a76aef13ef535f653fffcbe501499d161e96..44874bc6d9d5209ba1b821e861a64c9dd2d3fb4c 100644 (file)
@@ -52,21 +52,6 @@ utilisateur sur un site
 <li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logging" id="logging">Journalisation</a></h2>
-
-
-    <p><code class="module"><a href="../mod/mod_usertrack.html">mod_usertrack</a></code> définit un cookie qui peut être
-    journalisé via les formats configurables du module
-    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> :</p>
-
-    <pre class="prettyprint lang-config">LogFormat "%{Apache}n %r %t" usertrack
-CustomLog logs/clickstream.log usertrack</pre>
-
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="cookiedomain" id="cookiedomain">Directive</a> <a name="CookieDomain" id="CookieDomain">CookieDomain</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le domaine auquel le cookie traceur
@@ -215,6 +200,21 @@ s'applique</td></tr>
 
 
 
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logging" id="logging">Journalisation</a></h2>
+
+
+    <p><code class="module"><a href="../mod/mod_usertrack.html">mod_usertrack</a></code> définit un cookie qui peut être
+    journalisé via les formats configurables du module
+    <code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code> :</p>
+
+    <pre class="prettyprint lang-config">LogFormat "%{Apache}n %r %t" usertrack
+CustomLog logs/clickstream.log usertrack</pre>
+
+
+
 </div>
 </div>
 <div class="bottomlang">
index 720157413320d7a55ef667cf00a9bee861f72f4b..8b447c4f094b1a916330ed8d56ff28cfaff79702 100644 (file)
@@ -56,7 +56,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#ifversion">&lt;IfVersion&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="IfVersion" id="IfVersion">&lt;IfVersion&gt;</a> <a name="ifversion" id="ifversion">Directive</a></h2>
 <table class="directive">
     <code>=</code>.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_version.html" title="English">&nbsp;en&nbsp;</a> |
index 3504c24f0eea292e0485920fbe5973e3886098b1..afc86d74fa8b1c4726717e539ba729b4b36dfe0f 100644 (file)
@@ -56,7 +56,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#ifversion">&lt;IfVersion&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="IfVersion" id="IfVersion">&lt;IfVersion&gt;</a> <a name="ifversion" id="ifversion">ディレクティブ</a></h2>
 <table class="directive">
     みなされます。</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_version.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index fb0f12aa2aee53d23d74a3120169dd3939ba5c31..13229fa516b8984609501744434ab6031aa61ebe 100644 (file)
@@ -64,7 +64,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#ifversion">&lt;IfVersion&gt;</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="IfVersion" id="IfVersion">&lt;IfVersion&gt;</a> <a name="ifversion" id="ifversion">Áö½Ã¾î</a></h2>
 <table class="directive">
     »ý°¢ÇÑ´Ù.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_version.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 7fb59b2f97ad3630b37233535d781bda7f33bd32..cb1baed83b2e4bf5d0b661c17333da2b9d216f76 100644 (file)
@@ -72,6 +72,96 @@ VirtualScriptAlias "/never/found/%0/cgi-bin/"</pre>
     virtual hosting</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a> <a name="virtualdocumentroot" id="virtualdocumentroot">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the document root
+for a given virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualDocumentRoot <em>interpolated-directory</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p>The <code class="directive">VirtualDocumentRoot</code> directive allows you to
+    determine where Apache HTTP Server will find your documents based on the
+    value of the server name. The result of expanding
+    <em>interpolated-directory</em> is used as the root of the
+    document tree in a similar manner to the <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directive's argument.
+    If <em>interpolated-directory</em> is <code>none</code> then
+    <code class="directive">VirtualDocumentRoot</code> is turned off. This directive
+    cannot be used in the same context as <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code>.</p>
+
+<div class="warning"><h3>Note</h3>
+<code class="directive">VirtualDocumentRoot</code> will override any <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives you may have put in the same 
+context or child contexts. Putting a <code class="directive">VirtualDocumentRoot</code> 
+in the global server scope will effectively override <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives in any virtual hosts defined later 
+on, unless you set <code class="directive">VirtualDocumentRoot</code> to <code>None</code> 
+in each virtual host.
+</div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a> <a name="virtualdocumentrootip" id="virtualdocumentrootip">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the document root
+for a given virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualDocumentRootIP <em>interpolated-directory</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+<p>The <code class="directive">VirtualDocumentRootIP</code> directive is like the
+    <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code>
+    directive, except that it uses the IP address of the server end
+    of the connection for directory interpolation instead of the server
+    name.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a> <a name="virtualscriptalias" id="virtualscriptalias">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the CGI directory for
+a given virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualScriptAlias <em>interpolated-directory</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p>The <code class="directive">VirtualScriptAlias</code> directive allows you to
+    determine where Apache httpd will find CGI scripts in a similar
+    manner to <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> does for other documents. It matches
+    requests for URIs starting <code>/cgi-bin/</code>, much like <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
+    <code>/cgi-bin/</code> would.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a> <a name="virtualscriptaliasip" id="virtualscriptaliasip">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the CGI directory for
+a given virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualScriptAliasIP <em>interpolated-directory</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p>The <code class="directive">VirtualScriptAliasIP</code> directive is like the
+    <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code>
+    directive, except that it uses the IP address of the server end
+    of the connection for directory interpolation instead of the server
+    name.</p>
+
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="interpol" id="interpol">Directory Name Interpolation</a></h2>
     
@@ -236,96 +326,6 @@ VirtualScriptAliasIP  "/usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin"</pre>
     <p>The <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code>
     directives <code>%V</code> and <code>%A</code> are useful
     in conjunction with this module.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a> <a name="virtualdocumentroot" id="virtualdocumentroot">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the document root
-for a given virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualDocumentRoot <em>interpolated-directory</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p>The <code class="directive">VirtualDocumentRoot</code> directive allows you to
-    determine where Apache HTTP Server will find your documents based on the
-    value of the server name. The result of expanding
-    <em>interpolated-directory</em> is used as the root of the
-    document tree in a similar manner to the <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directive's argument.
-    If <em>interpolated-directory</em> is <code>none</code> then
-    <code class="directive">VirtualDocumentRoot</code> is turned off. This directive
-    cannot be used in the same context as <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code>.</p>
-
-<div class="warning"><h3>Note</h3>
-<code class="directive">VirtualDocumentRoot</code> will override any <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives you may have put in the same 
-context or child contexts. Putting a <code class="directive">VirtualDocumentRoot</code> 
-in the global server scope will effectively override <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> directives in any virtual hosts defined later 
-on, unless you set <code class="directive">VirtualDocumentRoot</code> to <code>None</code> 
-in each virtual host.
-</div>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a> <a name="virtualdocumentrootip" id="virtualdocumentrootip">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the document root
-for a given virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualDocumentRootIP <em>interpolated-directory</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-<p>The <code class="directive">VirtualDocumentRootIP</code> directive is like the
-    <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code>
-    directive, except that it uses the IP address of the server end
-    of the connection for directory interpolation instead of the server
-    name.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a> <a name="virtualscriptalias" id="virtualscriptalias">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the CGI directory for
-a given virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualScriptAlias <em>interpolated-directory</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p>The <code class="directive">VirtualScriptAlias</code> directive allows you to
-    determine where Apache httpd will find CGI scripts in a similar
-    manner to <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> does for other documents. It matches
-    requests for URIs starting <code>/cgi-bin/</code>, much like <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
-    <code>/cgi-bin/</code> would.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a> <a name="virtualscriptaliasip" id="virtualscriptaliasip">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Dynamically configure the location of the CGI directory for
-a given virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>VirtualScriptAliasIP <em>interpolated-directory</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p>The <code class="directive">VirtualScriptAliasIP</code> directive is like the
-    <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code>
-    directive, except that it uses the IP address of the server end
-    of the connection for directory interpolation instead of the server
-    name.</p>
-
-    
 </div>
 </div>
 <div class="bottomlang">
index 26a9e83987cf152952857a9b0830c07a14415a0d..88cb894a2ff5e6749c94875d13344ce6018a745c 100644 (file)
@@ -76,6 +76,101 @@ VirtualScriptAlias /never/found/%0/cgi-bin/</pre>
 l'hébergement virtuel de masse</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="virtualdocumentroot" id="virtualdocumentroot">Directive</a> <a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet une configuration dynamique de la racine des
+documents d'un serveur virtuel donné</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualDocumentRoot <em>répertoire-interpolé</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p>La directive <code class="directive">VirtualDocumentRoot</code> vous
+    permet de spécifier où le serveur HTTP Apache pourra trouver vos
+    documents en se basant
+    sur le nom du serveur. Le résultat de l'expansion du
+    <em>répertoire-interpolé</em> est utilisé comme racine de
+    l'arborescence des documents d'une manière similaire à l'argument de
+    la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Si
+    <em>répertoire-interpolé</em> a pour valeur <code>none</code>, la
+    directive <code class="directive">VirtualDocumentRoot</code> est désactivée.
+    Cette directive ne peut pas être utilisée dans le même contexte que
+    la directive <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code>.</p>
+
+<div class="warning"><h3>Note</h3>
+La directive <code class="directive">VirtualDocumentRoot</code> l'emporte sur
+toute directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
+définie dans le même contexte ou dans des contextes enfants. Le fait de
+définir une directive <code class="directive">VirtualDocumentRoot</code> dans le
+contexte du serveur principal va effectivement l'emporter sur toute
+directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> définie dans
+un serveur virtuel quelconque, si vous n'avez pas défini
+<code class="directive">VirtualDocumentRoot</code> à <code>None</code> dans ce
+serveur virtuel.
+</div>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="virtualdocumentrootip" id="virtualdocumentrootip">Directive</a> <a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration dynamique de la racine des documents pour un
+serveur virtuel donné</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualDocumentRootIP <em>répertoire-interpolé</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+<p>La directive <code class="directive">VirtualDocumentRootIP</code> est
+identique à la directive <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> à l'exception
+près qu'elle utilise l'adresse IP du serveur virtuel pour
+l'interpolation du répertoire à la place du nom du serveur.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="virtualscriptalias" id="virtualscriptalias">Directive</a> <a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration dynamique du répertoire des scripts CGI pour
+un serveur virtuel donné</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualScriptAlias <em>répertoire-interpolé</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p>La directive <code class="directive">VirtualScriptAlias</code> vous
+    permet de spécifier où Apache httpd pourra trouver les scripts CGI selon une
+    méthode similaire à celle qu'utilise la directive <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> pour les
+    autres documents. Elle recherche des requêtes dont l'URI commence
+    par <code>/cgi-bin/</code>, comme le ferait la directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="virtualscriptaliasip" id="virtualscriptaliasip">Directive</a> <a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration dynamique du répertoire des scripts CGI pour
+un serveur virtuel donné</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualScriptAliasIP <em>répertoire-interpolé</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p>La directive <code class="directive">VirtualScriptAliasIP</code> est
+    identique à la directive <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code> à
+    l'exception près qu'elle utilise l'adresse IP du serveur virtuel
+    pour l'interpolation du répertoire à la place du nom du serveur.</p>
+
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="interpol" id="interpol">Interpolation du nom de répertoire</a></h2>
     
@@ -257,101 +352,6 @@ VirtualScriptAliasIP  /usr/local/apache/vhosts/%1/%2/%3/%4/cgi-bin</pre>
     <p>Les spécificateurs de format <code>%V</code> et <code>%A</code>
     de la directive <code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code> s'avèrent très utiles
     lorsqu'ils sont utilisés en conjonction avec ce module.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="virtualdocumentroot" id="virtualdocumentroot">Directive</a> <a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Permet une configuration dynamique de la racine des
-documents d'un serveur virtuel donné</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualDocumentRoot <em>répertoire-interpolé</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p>La directive <code class="directive">VirtualDocumentRoot</code> vous
-    permet de spécifier où le serveur HTTP Apache pourra trouver vos
-    documents en se basant
-    sur le nom du serveur. Le résultat de l'expansion du
-    <em>répertoire-interpolé</em> est utilisé comme racine de
-    l'arborescence des documents d'une manière similaire à l'argument de
-    la directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>. Si
-    <em>répertoire-interpolé</em> a pour valeur <code>none</code>, la
-    directive <code class="directive">VirtualDocumentRoot</code> est désactivée.
-    Cette directive ne peut pas être utilisée dans le même contexte que
-    la directive <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code>.</p>
-
-<div class="warning"><h3>Note</h3>
-La directive <code class="directive">VirtualDocumentRoot</code> l'emporte sur
-toute directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code>
-définie dans le même contexte ou dans des contextes enfants. Le fait de
-définir une directive <code class="directive">VirtualDocumentRoot</code> dans le
-contexte du serveur principal va effectivement l'emporter sur toute
-directive <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> définie dans
-un serveur virtuel quelconque, si vous n'avez pas défini
-<code class="directive">VirtualDocumentRoot</code> à <code>None</code> dans ce
-serveur virtuel.
-</div>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="virtualdocumentrootip" id="virtualdocumentrootip">Directive</a> <a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration dynamique de la racine des documents pour un
-serveur virtuel donné</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualDocumentRootIP <em>répertoire-interpolé</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-<p>La directive <code class="directive">VirtualDocumentRootIP</code> est
-identique à la directive <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> à l'exception
-près qu'elle utilise l'adresse IP du serveur virtuel pour
-l'interpolation du répertoire à la place du nom du serveur.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="virtualscriptalias" id="virtualscriptalias">Directive</a> <a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration dynamique du répertoire des scripts CGI pour
-un serveur virtuel donné</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualScriptAlias <em>répertoire-interpolé</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p>La directive <code class="directive">VirtualScriptAlias</code> vous
-    permet de spécifier où Apache httpd pourra trouver les scripts CGI selon une
-    méthode similaire à celle qu'utilise la directive <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> pour les
-    autres documents. Elle recherche des requêtes dont l'URI commence
-    par <code>/cgi-bin/</code>, comme le ferait la directive <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="virtualscriptaliasip" id="virtualscriptaliasip">Directive</a> <a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Configuration dynamique du répertoire des scripts CGI pour
-un serveur virtuel donné</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>VirtualScriptAliasIP <em>répertoire-interpolé</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p>La directive <code class="directive">VirtualScriptAliasIP</code> est
-    identique à la directive <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code> à
-    l'exception près qu'elle utilise l'adresse IP du serveur virtuel
-    pour l'interpolation du répertoire à la place du nom du serveur.</p>
-
-    
 </div>
 </div>
 <div class="bottomlang">
index 113dc50e2156a80f9acd0577b6dffd4dc14df50a..18e651bbb3ef70709247b108005b31f61b4b8730 100644 (file)
@@ -72,6 +72,93 @@ VirtualScriptAlias /nerede/bilinmiyor/%0/cgi-bin/</pre>
 Sanal Barındırma</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a> <a name="virtualdocumentroot" id="virtualdocumentroot">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualDocumentRoot <em>hesaplanan-dizin</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p><code class="directive">VirtualDocumentRoot</code> yönergesi sunucu ismine göre
+      belgelerin bulunacağı yeri Apache HTTP Sunucusunun saptamasını sağlar.
+      <code><em>hesaplanan-dizin</em></code>’in dönüşüm sonucu <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> yönergesinin değeriymiş gibi
+      belge ağacının kök dizini olarak kullanılır.
+      <code><em>hesaplanan-dizin</em></code> yerine <code>none</code>
+      belirtilmişse <code class="directive">VirtualDocumentRoot</code> iptal edilmiş
+      olur. Bu yönerge <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code> yönergesinin kullanıldığı bağlamda
+      yer alamaz.</p>
+
+    <div class="warning"><h3>Bilginize</h3>
+      <code class="directive">VirtualDocumentRoot</code> yönergesi aynı bağlamda veya
+      alt bağlamlarda da kullanılabilen <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> yönergelerini geçersiz kılar.
+      Genel sunucu etki alanına bir <code class="directive">VirtualDocumentRoot</code>
+      konulması, daha sonra yer alan her sanal konak tanımı içinde
+      <code class="directive">VirtualDocumentRoot</code> yönergesine <code>None</code>
+      atamadıkça bu sanal konaklarda yapılmış <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> atamalarını geçersiz kılacaktır.
+    </div>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a> <a name="virtualdocumentrootip" id="virtualdocumentrootip">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualDocumentRootIP <em>hesaplanan-dizin</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+  <p><code class="directive">VirtualDocumentRootIP</code> yönergesi, dizinin
+    saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP
+    adresini kullanması dışında <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> gibidir.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a> <a name="virtualscriptalias" id="virtualscriptalias">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualScriptAlias <em>hesaplanan-dizin</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p><code class="directive">VirtualScriptAlias</code> yönergesi, CGI betiklerinin
+      bulunacağı yeri Apache httpd’nin saptamasını sağlamak bakımından
+      <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code>
+      yönergesinin yaptığını yapar. <code>/cgi-bin/</code> ile başlayan
+      istekler için ise <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
+      yönergesinin yaptığını yapar.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a> <a name="virtualscriptaliasip" id="virtualscriptaliasip">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualScriptAliasIP <em>hesaplanan-dizin</em>|none</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
+<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
+<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
+</table>
+
+    <p><code class="directive">VirtualScriptAliasIP</code> yönergesi, dizinin
+      saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP
+      adresini kullanması dışında <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code> gibidir.</p>
+
+    
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="interpol" id="interpol">Dizin İsimlerinin Elde Edilmesi</a></h2>
     
@@ -233,93 +320,6 @@ VirtualScriptAliasIP  /usr/local/apache/sankonlar/%1/%2/%3/%4/cgi-bin</pre>
     <p><code class="directive"><a href="../mod/mod_log_config.html#logformat">LogFormat</a></code>  yönergesinin
       <code>%V</code> ve <code>%A</code> <a href="mod_log_config.html#formats">biçem belirteçleri</a> bu modülle
       birlikte kullanıldığında çok yararlı olurlar.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualDocumentRoot" id="VirtualDocumentRoot">VirtualDocumentRoot</a> <a name="virtualdocumentroot" id="virtualdocumentroot">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualDocumentRoot <em>hesaplanan-dizin</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualDocumentRoot none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p><code class="directive">VirtualDocumentRoot</code> yönergesi sunucu ismine göre
-      belgelerin bulunacağı yeri Apache HTTP Sunucusunun saptamasını sağlar.
-      <code><em>hesaplanan-dizin</em></code>’in dönüşüm sonucu <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> yönergesinin değeriymiş gibi
-      belge ağacının kök dizini olarak kullanılır.
-      <code><em>hesaplanan-dizin</em></code> yerine <code>none</code>
-      belirtilmişse <code class="directive">VirtualDocumentRoot</code> iptal edilmiş
-      olur. Bu yönerge <code class="directive"><a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></code> yönergesinin kullanıldığı bağlamda
-      yer alamaz.</p>
-
-    <div class="warning"><h3>Bilginize</h3>
-      <code class="directive">VirtualDocumentRoot</code> yönergesi aynı bağlamda veya
-      alt bağlamlarda da kullanılabilen <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> yönergelerini geçersiz kılar.
-      Genel sunucu etki alanına bir <code class="directive">VirtualDocumentRoot</code>
-      konulması, daha sonra yer alan her sanal konak tanımı içinde
-      <code class="directive">VirtualDocumentRoot</code> yönergesine <code>None</code>
-      atamadıkça bu sanal konaklarda yapılmış <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> atamalarını geçersiz kılacaktır.
-    </div>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualDocumentRootIP" id="VirtualDocumentRootIP">VirtualDocumentRootIP</a> <a name="virtualdocumentrootip" id="virtualdocumentrootip">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın belge kök dizinini devingen olarak yapılandırır.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualDocumentRootIP <em>hesaplanan-dizin</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualDocumentRootIP none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-  <p><code class="directive">VirtualDocumentRootIP</code> yönergesi, dizinin
-    saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP
-    adresini kullanması dışında <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code> gibidir.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualScriptAlias" id="VirtualScriptAlias">VirtualScriptAlias</a> <a name="virtualscriptalias" id="virtualscriptalias">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualScriptAlias <em>hesaplanan-dizin</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualScriptAlias none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p><code class="directive">VirtualScriptAlias</code> yönergesi, CGI betiklerinin
-      bulunacağı yeri Apache httpd’nin saptamasını sağlamak bakımından
-      <code class="directive"><a href="#virtualdocumentroot">VirtualDocumentRoot</a></code>
-      yönergesinin yaptığını yapar. <code>/cgi-bin/</code> ile başlayan
-      istekler için ise <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
-      yönergesinin yaptığını yapar.</p>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="VirtualScriptAliasIP" id="VirtualScriptAliasIP">VirtualScriptAliasIP</a> <a name="virtualscriptaliasip" id="virtualscriptaliasip">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Bir sanal konağın CGI dizinini devingen olarak yapılandırır.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>VirtualScriptAliasIP <em>hesaplanan-dizin</em>|none</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>VirtualScriptAliasIP none</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak</td></tr>
-<tr><th><a href="directive-dict.html#Status">Durum:</a></th><td>Eklenti</td></tr>
-<tr><th><a href="directive-dict.html#Module">Modül:</a></th><td>mod_vhost_alias</td></tr>
-</table>
-
-    <p><code class="directive">VirtualScriptAliasIP</code> yönergesi, dizinin
-      saptanmasında sunucu ismi yerine bağlantının sonlandığı sunucunun IP
-      adresini kullanması dışında <code class="directive"><a href="#virtualscriptalias">VirtualScriptAlias</a></code> gibidir.</p>
-
-    
 </div>
 </div>
 <div class="bottomlang">
index 0c5c65e07d15ae3c3a694e6189e64c91c9a953f1..a273e1a3058442ae822ca56711f22eeeb054d576 100644 (file)
@@ -53,7 +53,6 @@ core or, if a dynamic module, be loaded before the calling module.
 <li><img alt="" src="../images/down.gif" /> <a href="#watchdoginterval">WatchdogInterval</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="WatchdogInterval" id="WatchdogInterval">WatchdogInterval</a> <a name="watchdoginterval" id="watchdoginterval">Directive</a></h2>
 <table class="directive">
@@ -68,6 +67,7 @@ core or, if a dynamic module, be loaded before the calling module.
 second.</p>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_watchdog.html" title="English">&nbsp;en&nbsp;</a></p>
index 30cc39fe20a926faf3f8efb5bb6e057cf134f16e..76f7c777e5cf252712cd89513846d736403757b1 100644 (file)
@@ -59,6 +59,58 @@ for 2.2.x versions</td></tr></table>
 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Unsupported Encodings</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xml2EncAlias" id="xml2EncAlias">xml2EncAlias</a> <a name="xml2encalias" id="xml2encalias">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Recognise Aliases for encoding values</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2EncAlias <var>charset alias [alias ...]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
+</table>
+    <p>This server-wide directive aliases one or more encoding to another
+    encoding.  This enables encodings not recognised by libxml2 to be handled
+    internally by libxml2's encoding support using the translation table for
+    a recognised encoding.  This serves two purposes: to support character sets
+    (or names) not recognised either by libxml2 or iconv, and to skip
+    conversion for an encoding where it is known to be unnecessary.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xml2EncDefault" id="xml2EncDefault">xml2EncDefault</a> <a name="xml2encdefault" id="xml2encdefault">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets a default encoding to assume when absolutely no information
+can be <a href="#sniffing">automatically detected</a></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2EncDefault <var>name</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4.0 and later; available as a third-party
+module for earlier versions.</td></tr>
+</table>
+    <p>If you are processing data with known encoding but no encoding
+    information, you can set this default to help mod_xml2enc process
+    the data correctly.  For example, to work with the default value
+    of Latin1 (<var>iso-8859-1</var> specified in HTTP/1.0, use</p>
+    <pre class="prettyprint lang-config">xml2EncDefault iso-8859-1</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xml2StartParse" id="xml2StartParse">xml2StartParse</a> <a name="xml2startparse" id="xml2startparse">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Advise the parser to skip leading junk.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2StartParse <var>element [element ...]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
+</table>
+    <p>Specify that the markup parser should start at the first instance
+    of any of the elements specified.  This can be used as a workaround
+    where a broken backend inserts leading junk that messes up the parser (<a href="http://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/">example here</a>).</p>
+    <p>It should never be used for XML, nor well-formed HTML.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">Usage</a></h2>
     <p>There are two usage scenarios: with modules programmed to work
@@ -133,58 +185,6 @@ the server of an unnecessary conversion.</p>
 <p>If you are working with encodings that are not supported by any of
 the conversion methods available on your platform, you can still alias
 them to a supported encoding using <code class="directive">xml2EncAlias</code>.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xml2EncAlias" id="xml2EncAlias">xml2EncAlias</a> <a name="xml2encalias" id="xml2encalias">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Recognise Aliases for encoding values</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2EncAlias <var>charset alias [alias ...]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
-</table>
-    <p>This server-wide directive aliases one or more encoding to another
-    encoding.  This enables encodings not recognised by libxml2 to be handled
-    internally by libxml2's encoding support using the translation table for
-    a recognised encoding.  This serves two purposes: to support character sets
-    (or names) not recognised either by libxml2 or iconv, and to skip
-    conversion for an encoding where it is known to be unnecessary.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xml2EncDefault" id="xml2EncDefault">xml2EncDefault</a> <a name="xml2encdefault" id="xml2encdefault">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Sets a default encoding to assume when absolutely no information
-can be <a href="#sniffing">automatically detected</a></td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2EncDefault <var>name</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Version 2.4.0 and later; available as a third-party
-module for earlier versions.</td></tr>
-</table>
-    <p>If you are processing data with known encoding but no encoding
-    information, you can set this default to help mod_xml2enc process
-    the data correctly.  For example, to work with the default value
-    of Latin1 (<var>iso-8859-1</var> specified in HTTP/1.0, use</p>
-    <pre class="prettyprint lang-config">xml2EncDefault iso-8859-1</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xml2StartParse" id="xml2StartParse">xml2StartParse</a> <a name="xml2startparse" id="xml2startparse">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Advise the parser to skip leading junk.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>xml2StartParse <var>element [element ...]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Status:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
-</table>
-    <p>Specify that the markup parser should start at the first instance
-    of any of the elements specified.  This can be used as a workaround
-    where a broken backend inserts leading junk that messes up the parser (<a href="http://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/">example here</a>).</p>
-    <p>It should never be used for XML, nor well-formed HTML.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index e322d530bc2964b301b1880514c7927cd7091c9a..25f7b5eaad4917381a3862a73732de29f3178407 100644 (file)
@@ -61,6 +61,65 @@ Disponible en tant que module tiers dans les versions 2.2.x</td></tr></table>
 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Codages non supportés</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xml2encalias" id="xml2encalias">Directive</a> <a name="xml2EncAlias" id="xml2EncAlias">xml2EncAlias</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des alias pour les valeurs d'encodage</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>xml2EncAlias <var>jeu-de-caractères alias [alias ...]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
+</table>
+    <p>Cette directive de niveau serveur permet de définir un ou
+    plusieurs alias pour un encodage. Elle permet au support d'encodage de
+    libxml2 de traiter en interne des encodages non reconnus par libxml2
+    en utilisant la table de conversion pour un encodage reconnu. Elle
+    permet d'atteindre deux objectifs : supporter des jeux (ou noms) de
+    caractères non reconnus par libxml2 ou iconv, et éviter une
+    conversion pour un encodage lorsque cela n'est pas nécessaire.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xml2encdefault" id="xml2encdefault">Directive</a> <a name="xml2EncDefault" id="xml2EncDefault">xml2EncDefault</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit un encodage par défaut à utiliser lorsqu'aucune
+information ne peut être <a href="#sniffing">automatiquement détectée</a></td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>xml2EncDefault <var>nom</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.0 du serveur HTTP Apache
+; disponible depuis un module tiers dans les versions antérieures.</td></tr>
+</table>
+    <p>Si vous traitez des données dont l'encodage est connu, mais ne
+    contenant aucune information à propos de ce dernier, vous pouvez
+    définir une valeur par défaut afin d'aider mod_xml2enc à traiter
+    correctement les données. Par exemple, pour définir la valeur par
+    défaut Latin1 (<var>iso-8859-1</var> specifiée dans HTTP/1.0),
+    utilisez :</p>
+    <pre class="prettyprint lang-config">xml2EncDefault iso-8859-1</pre>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="xml2startparse" id="xml2startparse">Directive</a> <a name="xml2StartParse" id="xml2StartParse">xml2StartParse</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Indique à l'interpréteur à partir de quelle balise il doit
+commencer son traitement.</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>xml2StartParse <var>élément [élément ...]</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
+</table>
+    <p>Cette directive permet de spécifier à partir de quelle balise,
+    parmi les éléments spécifiés, l'interpréteur de balise doit
+    commencer son traitement. Ccei permet de contourner le problème des
+    serveurs d'arrière-plan qui insèrent des éléments non conformes en
+    début de données, ce qui a pour effet de perturber l'interpréteur (<a href="http://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/">voir un exemple ici</a>).</p>
+    <p>Elle ne doit être utilisée ni pour les documents XML, ni pour les
+    documents HTML correctement formatés.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="section">
 <h2><a name="usage" id="usage">Utilisation</a></h2>
     <p>Il existe deux scénarios d'utilisation : le cas des modules
@@ -146,65 +205,6 @@ n
 méthodes de conversion disponibles sur votre plateforme, vous pouvez
 tout de même leur associer un alias vers un code supporté via la
 directive <code class="directive">xml2EncAlias</code>.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xml2encalias" id="xml2encalias">Directive</a> <a name="xml2EncAlias" id="xml2EncAlias">xml2EncAlias</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit des alias pour les valeurs d'encodage</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>xml2EncAlias <var>jeu-de-caractères alias [alias ...]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
-</table>
-    <p>Cette directive de niveau serveur permet de définir un ou
-    plusieurs alias pour un encodage. Elle permet au support d'encodage de
-    libxml2 de traiter en interne des encodages non reconnus par libxml2
-    en utilisant la table de conversion pour un encodage reconnu. Elle
-    permet d'atteindre deux objectifs : supporter des jeux (ou noms) de
-    caractères non reconnus par libxml2 ou iconv, et éviter une
-    conversion pour un encodage lorsque cela n'est pas nécessaire.</p>
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xml2encdefault" id="xml2encdefault">Directive</a> <a name="xml2EncDefault" id="xml2EncDefault">xml2EncDefault</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Définit un encodage par défaut à utiliser lorsqu'aucune
-information ne peut être <a href="#sniffing">automatiquement détectée</a></td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>xml2EncDefault <var>nom</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibilité:</a></th><td>Disponible depuis la version 2.4.0 du serveur HTTP Apache
-; disponible depuis un module tiers dans les versions antérieures.</td></tr>
-</table>
-    <p>Si vous traitez des données dont l'encodage est connu, mais ne
-    contenant aucune information à propos de ce dernier, vous pouvez
-    définir une valeur par défaut afin d'aider mod_xml2enc à traiter
-    correctement les données. Par exemple, pour définir la valeur par
-    défaut Latin1 (<var>iso-8859-1</var> specifiée dans HTTP/1.0),
-    utilisez :</p>
-    <pre class="prettyprint lang-config">xml2EncDefault iso-8859-1</pre>
-
-
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="xml2startparse" id="xml2startparse">Directive</a> <a name="xml2StartParse" id="xml2StartParse">xml2StartParse</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Indique à l'interpréteur à partir de quelle balise il doit
-commencer son traitement.</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>xml2StartParse <var>élément [élément ...]</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Contexte:</a></th><td>configuration du serveur, serveur virtuel, répertoire, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Status">Statut:</a></th><td>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_xml2enc</td></tr>
-</table>
-    <p>Cette directive permet de spécifier à partir de quelle balise,
-    parmi les éléments spécifiés, l'interpréteur de balise doit
-    commencer son traitement. Ccei permet de contourner le problème des
-    serveurs d'arrière-plan qui insèrent des éléments non conformes en
-    début de données, ce qui a pour effet de perturber l'interpréteur (<a href="http://bahumbug.wordpress.com/2006/10/12/mod_proxy_html-revisited/">voir un exemple ici</a>).</p>
-    <p>Elle ne doit être utilisée ni pour les documents XML, ni pour les
-    documents HTML correctement formatés.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index ebdf4a5aabe16dbfea50fe03d934ee07821b3bda..7cfcff9d77819e2b3c78273bbc80821f9bf07b4c 100644 (file)
@@ -61,7 +61,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a>-<a name="coredumpdirectory" id="coredumpdirectory">Direktive</a></h2>
 <table class="directive">
@@ -723,6 +722,7 @@ verwendet wird, die Client-Verbindungen bearbeiten.</td></tr>
     </ul>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/mpm_common.html" title="Deutsch">&nbsp;de&nbsp;</a> |
index 8b1c87d5e984b7003c17f414c83675eba4d53f82..6052f3b20475c4e811e134a2a0cc0dc1ab953539 100644 (file)
@@ -58,7 +58,6 @@ more than one multi-processing module (MPM)</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">Directive</a></h2>
 <table class="directive">
@@ -751,6 +750,7 @@ client connections</td></tr>
     causes crashes with some common modules.</div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index a48c62f90d1409b9cfb2390e6c32492f95dadc17..e3bc56f29a6b78423ddf53a9326e13b2122174a1 100644 (file)
@@ -58,7 +58,6 @@ modules multi-processus (MPM)</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="coredumpdirectory" id="coredumpdirectory">Directive</a> <a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a></h2>
 <table class="directive">
@@ -829,6 +828,7 @@ du serveur HTTP Apache</td></tr>
     basse et provoque des crashes avec certains modules courants.</div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 741d6b6d44fcda799c624835a27052804ab780c3..4dc96d246f5b7035b4ed7ac80ba524db73e996cf 100644 (file)
@@ -62,7 +62,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">ディレクティブ</a></h2>
 <table class="directive">
@@ -744,6 +743,7 @@ simultaneously</td></tr>
     </ul>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 5712a0cd60d22486c44f0cd93a442ae616b029ef..dd7a00f9de35cece274124757f8771bb566c80a5 100644 (file)
@@ -58,7 +58,6 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#threadstacksize">ThreadStackSize</a></li>
 </ul>
 <ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="CoreDumpDirectory" id="CoreDumpDirectory">CoreDumpDirectory</a> <a name="coredumpdirectory" id="coredumpdirectory">Yönergesi</a></h2>
 <table class="directive">
@@ -772,6 +771,7 @@ açıklaması</a></li>
       da azaltmak bazı modüllerle çökmeye sebep olur.</div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../de/mod/mpm_common.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index d40d0bf10cad118b27c8c09efe4bd5a13e515c73..da54416178070bd0983b019dc178fa24d741aac5 100644 (file)
@@ -84,7 +84,6 @@
     ports Apache httpd uses</a>
 </li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MaxThreads" id="MaxThreads">MaxThreads</a> <a name="maxthreads" id="maxthreads">Directive</a></h2>
 <table class="directive">
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mpm_netware.html" title="English">&nbsp;en&nbsp;</a> |
index 0bf021b63de04e15df48f7300b17ca0643051afc..bca8fd012c8b0e100812ac369820c9c5db0d9976 100644 (file)
@@ -85,7 +85,6 @@ NetWare</td></tr>
 qu'utilise Apache httpd</a>
 </li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
-
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="maxthreads" id="maxthreads">Directive</a> <a name="MaxThreads" id="MaxThreads">MaxThreads</a></h2>
 <table class="directive">
@@ -107,6 +106,7 @@ qu'utilise Apache httpd</a>
     </code></p></div>
 
 </div>
+
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mpm_netware.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index a189f7cb1714b6d3ba7725ceea201eb4a2cb8300..e6d64b698188ac49f0fc6c144ce5a0df39af29b2 100644 (file)
   und Ports</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Kommentare</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="how-it-works" id="how-it-works">Arbeitsweise</a></h2>
-    <p>Ein einzelner Steuerprozess ist für den Start von
-    Kindprozessen verantwortlich, die auf Verbindungen warten und diese
-    bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere
-    <dfn>freie</dfn> oder unbeschäftigte Serverprozesse vorzuhalten,
-    die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise
-    müssen Clients nicht darauf warten, dass neue Kindprozesse
-    geforkt werden, bevor ihre Anfrage bearbeitet werden kann.</p>
-
-    <p><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
-    <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
-    <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code> und
-    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> regulieren,
-    wie der Elternprozess Kindprozesse zur Bedienung von Anfragen erstellt.
-    Im Allgemeinen ist der Apache sehr selbstregulierend, so dass die meisten
-    Angebote die Voreinstellung dieser Direktiven nicht verändern
-    müssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen
-    müssen, können <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> erhöhen, während
-    Systeme mit begrenztem Arbeitsspeicher möglicherweise
-    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> heruntersetzen
-    müssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf
-    Platte auslagern - und zurück) zu schützen. Weitere
-    Informationen zur Feinabstimmung der Prozesserstellung sind in den
-    <a href="../misc/perf-tuning.html">Performance-Hinweisen</a> zu
-    finden.</p>
-
-    <p>Währen der Elternprozess unter Unix normalerweise als
-    <code>root</code> gestartet wird, um sich an Port 80 binden zu können,
-    werden die Kindprozesse unter einem weniger privilegierten Benutzer
-    gestartet. Die Direktiven <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code>
-    und <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code> werden dazu
-    verwendet, die Privilegien der Apache-Kindprozesse festzulegen. Die
-    Kindprozesse müssen in der Lage sein, alle Inhalte zu lesen, die
-    sie ausliefern sollen, sollten darüber hinaus jedoch so wenig wie
-    möglich Rechte besitzen.</p>
-
-    <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
-    bestimmt, wie häufig der Server Prozesse erneuert, indem er alte
-    beendet und neue startet.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a>-<a name="maxspareservers" id="maxspareservers">Direktive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Beschreibung:</a></th><td>Maximale Anzahl der unbeschäftigten Kindprozesse des
 <li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="how-it-works" id="how-it-works">Arbeitsweise</a></h2>
+    <p>Ein einzelner Steuerprozess ist für den Start von
+    Kindprozessen verantwortlich, die auf Verbindungen warten und diese
+    bedienen, sobald sie eintreffen. Der Apache versucht immer, mehrere
+    <dfn>freie</dfn> oder unbeschäftigte Serverprozesse vorzuhalten,
+    die zur Bedienung eingehender Anfragen bereit stehen. Auf diese Weise
+    müssen Clients nicht darauf warten, dass neue Kindprozesse
+    geforkt werden, bevor ihre Anfrage bearbeitet werden kann.</p>
+
+    <p><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
+    <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
+    <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code> und
+    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> regulieren,
+    wie der Elternprozess Kindprozesse zur Bedienung von Anfragen erstellt.
+    Im Allgemeinen ist der Apache sehr selbstregulierend, so dass die meisten
+    Angebote die Voreinstellung dieser Direktiven nicht verändern
+    müssen. Systeme, die mehr als 256 gleichzeitige Anfragen bedienen
+    müssen, können <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> erhöhen, während
+    Systeme mit begrenztem Arbeitsspeicher möglicherweise
+    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> heruntersetzen
+    müssen, um den Server vor Flatterverhalten (Arbeitsspeicherinhalte auf
+    Platte auslagern - und zurück) zu schützen. Weitere
+    Informationen zur Feinabstimmung der Prozesserstellung sind in den
+    <a href="../misc/perf-tuning.html">Performance-Hinweisen</a> zu
+    finden.</p>
+
+    <p>Währen der Elternprozess unter Unix normalerweise als
+    <code>root</code> gestartet wird, um sich an Port 80 binden zu können,
+    werden die Kindprozesse unter einem weniger privilegierten Benutzer
+    gestartet. Die Direktiven <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code>
+    und <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code> werden dazu
+    verwendet, die Privilegien der Apache-Kindprozesse festzulegen. Die
+    Kindprozesse müssen in der Lage sein, alle Inhalte zu lesen, die
+    sie ausliefern sollen, sollten darüber hinaus jedoch so wenig wie
+    möglich Rechte besitzen.</p>
+
+    <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
+    bestimmt, wie häufig der Server Prozesse erneuert, indem er alte
+    beendet und neue startet.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/prefork.html" title="Deutsch">&nbsp;de&nbsp;</a> |
index 54b7457616e9cc7cb433580dd6553bf128d80e19..61606ae3fc1e01883dbab91f3e253081060a8ddf 100644 (file)
 uses</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="how-it-works" id="how-it-works">How it Works</a></h2>
-    <p>A single control process is responsible for launching child
-    processes which listen for connections and serve them when they
-    arrive. Apache httpd always tries to maintain several <dfn>spare</dfn>
-    or idle server processes, which stand ready to serve incoming
-    requests. In this way, clients do not need to wait for a new
-    child processes to be forked before their requests can be
-    served.</p>
-
-    <p>The <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
-    <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
-    <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>, and
-    <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> regulate how
-    the parent process creates children to serve requests. In general,
-    Apache httpd is very self-regulating, so most sites do not need to
-    adjust these directives from their default values. Sites which
-    need to serve more than 256 simultaneous requests may need to
-    increase <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>,
-    while sites with limited memory may need to decrease <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> to keep the server from
-    thrashing (swapping memory to disk and back). More information
-    about tuning process creation is provided in the <a href="../misc/perf-tuning.html">performance hints</a>
-    documentation.</p>
-
-    <p>While the parent process is usually started as <code>root</code>
-    under Unix in order to bind to port 80, the child processes are
-    launched by Apache httpd as a less-privileged user. The <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> and <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code> directives are used to set
-    the privileges of the Apache httpd child processes. The child processes
-    must be able to read all the content that will be served, but
-    should have as few privileges beyond that as possible.</p>
-
-    <p><code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>
-    controls how frequently the server recycles processes by killing
-    old ones and launching new ones.</p>
-
-    <p>This MPM uses the <code>mpm-accept</code> mutex to serialize
-    access to incoming connections when subject to the thundering herd
-    problem (generally, when there are multiple listening sockets).
-    The implementation aspects of this mutex can be configured with the
-    <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code> directive.  The <a href="../misc/perf-tuning.html">performance hints</a>
-    documentation has additional information about this mutex.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a> <a name="maxspareservers" id="maxspareservers">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of idle child server processes</td></tr>
@@ -182,6 +139,49 @@ uses</a></li>
 <li><code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="how-it-works" id="how-it-works">How it Works</a></h2>
+    <p>A single control process is responsible for launching child
+    processes which listen for connections and serve them when they
+    arrive. Apache httpd always tries to maintain several <dfn>spare</dfn>
+    or idle server processes, which stand ready to serve incoming
+    requests. In this way, clients do not need to wait for a new
+    child processes to be forked before their requests can be
+    served.</p>
+
+    <p>The <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
+    <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
+    <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>, and
+    <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> regulate how
+    the parent process creates children to serve requests. In general,
+    Apache httpd is very self-regulating, so most sites do not need to
+    adjust these directives from their default values. Sites which
+    need to serve more than 256 simultaneous requests may need to
+    increase <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>,
+    while sites with limited memory may need to decrease <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> to keep the server from
+    thrashing (swapping memory to disk and back). More information
+    about tuning process creation is provided in the <a href="../misc/perf-tuning.html">performance hints</a>
+    documentation.</p>
+
+    <p>While the parent process is usually started as <code>root</code>
+    under Unix in order to bind to port 80, the child processes are
+    launched by Apache httpd as a less-privileged user. The <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> and <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code> directives are used to set
+    the privileges of the Apache httpd child processes. The child processes
+    must be able to read all the content that will be served, but
+    should have as few privileges beyond that as possible.</p>
+
+    <p><code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>
+    controls how frequently the server recycles processes by killing
+    old ones and launching new ones.</p>
+
+    <p>This MPM uses the <code>mpm-accept</code> mutex to serialize
+    access to incoming connections when subject to the thundering herd
+    problem (generally, when there are multiple listening sockets).
+    The implementation aspects of this mutex can be configured with the
+    <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code> directive.  The <a href="../misc/perf-tuning.html">performance hints</a>
+    documentation has additional information about this mutex.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 7eb89f029825bc8a91e9cba6336b4c223c47d2ae..39f79ead128bb31f94295973f0dadc4a18d32747 100644 (file)
@@ -83,52 +83,6 @@ processus, sans thread</td></tr>
 qu'utilise le serveur HTTP Apache</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="how-it-works" id="how-it-works">Comment ça marche</a></h2>
-    <p>Un processus de contrôle unique a pour tâche de lancer les
-    processus enfants qui attendent les connexions et les traitent au
-    fur et à mesure qu'elles arrivent. Apache httpd essaie toujours de
-    maintenir plusieurs processus serveurs inactifs ou <dfn>en
-    réserve</dfn>, afin de pouvoir traiter les requêtes entrantes. De
-    cette façon, les clients n'ont pas besoin d'attendre le démarrage
-    d'un nouveau processus enfant pour que leurs requêtes puissent être
-    traitées.</p>
-
-    <p>Les directives <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>, <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code> et <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> permettent de contrôler
-    la manière dont le processus parent crée les processus enfants pour
-    traiter les requêtes. En général, Apache httpd s'auto-contrôle de manière
-    efficace, de sorte que la plupart des sites peuvent conserver les
-    valeurs par défaut des directives. Les sites qui doivent traiter
-    plus de 256 requêtes simultanées doivent augmenter la valeur de
-    <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>, alors que les
-    sites dont la ressource mémoire est limitée doivent la diminuer afin
-    d'éviter une hyperactivité du serveur (utilisation excessive de la
-    mémoire virtuelle sur disque). Vous trouverez plus d'informations à
-    propos du contrôle de la création de processus dans le document <a href="../misc/perf-tuning.html">conseils en matière de
-    performances</a></p>
-
-    <p>Alors que le processus parent est en général démarré en tant que
-    <code>root</code> sous Unix afin de pouvoir se mettre à l'écoute sur le port 80, les
-    processus enfants sont lancés par Apache httpd sous un utilisateur avec
-    privilèges restreints. On peut contrôler les privilèges accordés aux
-    processus enfants d'Apache httpd à l'aide des directives <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> et <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code>. Les processus enfants doivent
-    être en mesure de lire tous les contenus destinés à être servis,
-    mais leurs privilèges doivent être aussi bas que possible.</p>
-
-    <p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> permet de
-    contrôler la fréquence à laquelle le serveur recycle ses processus
-    en arrêtant les plus anciens et en en lançant de nouveaux.</p>
-
-    <p>Ce module MPM utilise le mutex <code>mpm-accept</code> pour
-    sérialiser l'accès aux connexions entrantes lorsque peut se
-    présenter un problème d'afflux de requêtes (en général quand il y a
-    plusieurs sockets en écoute). Les aspects de l'implémentation de ce
-    mutex peuvent être configurés via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>. Vous trouverez des informations
-    supplémentaires à propos de ce mutex dans la documentation à propos
-    des  <a href="../misc/perf-tuning.html">conseils en matière de
-    performances</a></p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="maxspareservers" id="maxspareservers">Directive</a> <a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Nombre maximum de processus serveurs enfants
@@ -197,6 +151,52 @@ inactifs</td></tr>
 <li><code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="how-it-works" id="how-it-works">Comment ça marche</a></h2>
+    <p>Un processus de contrôle unique a pour tâche de lancer les
+    processus enfants qui attendent les connexions et les traitent au
+    fur et à mesure qu'elles arrivent. Apache httpd essaie toujours de
+    maintenir plusieurs processus serveurs inactifs ou <dfn>en
+    réserve</dfn>, afin de pouvoir traiter les requêtes entrantes. De
+    cette façon, les clients n'ont pas besoin d'attendre le démarrage
+    d'un nouveau processus enfant pour que leurs requêtes puissent être
+    traitées.</p>
+
+    <p>Les directives <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>, <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code> et <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> permettent de contrôler
+    la manière dont le processus parent crée les processus enfants pour
+    traiter les requêtes. En général, Apache httpd s'auto-contrôle de manière
+    efficace, de sorte que la plupart des sites peuvent conserver les
+    valeurs par défaut des directives. Les sites qui doivent traiter
+    plus de 256 requêtes simultanées doivent augmenter la valeur de
+    <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code>, alors que les
+    sites dont la ressource mémoire est limitée doivent la diminuer afin
+    d'éviter une hyperactivité du serveur (utilisation excessive de la
+    mémoire virtuelle sur disque). Vous trouverez plus d'informations à
+    propos du contrôle de la création de processus dans le document <a href="../misc/perf-tuning.html">conseils en matière de
+    performances</a></p>
+
+    <p>Alors que le processus parent est en général démarré en tant que
+    <code>root</code> sous Unix afin de pouvoir se mettre à l'écoute sur le port 80, les
+    processus enfants sont lancés par Apache httpd sous un utilisateur avec
+    privilèges restreints. On peut contrôler les privilèges accordés aux
+    processus enfants d'Apache httpd à l'aide des directives <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> et <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code>. Les processus enfants doivent
+    être en mesure de lire tous les contenus destinés à être servis,
+    mais leurs privilèges doivent être aussi bas que possible.</p>
+
+    <p>La directive <code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code> permet de
+    contrôler la fréquence à laquelle le serveur recycle ses processus
+    en arrêtant les plus anciens et en en lançant de nouveaux.</p>
+
+    <p>Ce module MPM utilise le mutex <code>mpm-accept</code> pour
+    sérialiser l'accès aux connexions entrantes lorsque peut se
+    présenter un problème d'afflux de requêtes (en général quand il y a
+    plusieurs sockets en écoute). Les aspects de l'implémentation de ce
+    mutex peuvent être configurés via la directive <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code>. Vous trouverez des informations
+    supplémentaires à propos de ce mutex dans la documentation à propos
+    des  <a href="../misc/perf-tuning.html">conseils en matière de
+    performances</a></p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index f3a750ef37b07afec922d9868943ccd06ccbc48d..867ef5c05d6074fc601a4c6d6fd02775062c900d 100644 (file)
 が使用するアドレスとポートの設定</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="how-it-works" id="how-it-works">動作方法</a></h2>
-    <p>一つのコントロールプロセスが、
-    コネクションに対して listen して、しかるべき時に応答する
-    子プロセスを起動します。Apache は常に幾つかの<dfn>スペア</dfn>
-    かアイドルなサーバプロセスを維持していて、それらは入ってきた
-    リクエストに応答できるように待機しています。
-    このようにしてクライアントは、リクエストが応答される前に、
-    新しい子プロセスが fork されるのを待たなくてもよいように
-    なっています。</p>
-
-    <p>親プロセスがリクエストに応答するの子プロセスを
-    どのように生成するかは、
-    <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
-    <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
-    <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>,
-    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
-    で調整します。一般的に、Apache は非常に自律的なので、
-    大抵のサイトではこれらのディレクティブをデフォルト値から調整する
-    必要はないでしょう。
-    同時に 256 を超えるリクエストに応答しないといけないサイトでは、
-    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
-    を増やす必要があるでしょう。
-    一方、メモリの限られているサイトでは、スラッシング
-    (メモリとディスク間で何度もスワップ) が起こるのを防ぐために
-    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
-    を減らす必要があるでしょう。プロセス生成のチューニングに関する
-    詳しい情報は、<a href="../misc/perf-tuning.html">性能に関するヒント</a>
-    にあります。</p>
-
-    <p>通常 Unix では親プロセスは 80 番ポートにバインドするために
-    <code>root</code> で起動されますが、子プロセスやスレッドは
-    もっと低い権限のユーザで Apache によって起動されます。
-    <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> と
-    <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code>
-    ディレクティブは
-    Apache の子プロセスの権限を設定するのに用いられます。
-    子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、
-    可能な限り必要最小限の権限のみを持っているようにするべきです。</p>
-
-    <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
-    は、古いプロセスを停止して新しいプロセスを起動することによって、
-    どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a> <a name="maxspareservers" id="maxspareservers">ディレクティブ</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">説明:</a></th><td>アイドルな子サーバプロセスの最大個数</td></tr>
 <li><code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="how-it-works" id="how-it-works">動作方法</a></h2>
+    <p>一つのコントロールプロセスが、
+    コネクションに対して listen して、しかるべき時に応答する
+    子プロセスを起動します。Apache は常に幾つかの<dfn>スペア</dfn>
+    かアイドルなサーバプロセスを維持していて、それらは入ってきた
+    リクエストに応答できるように待機しています。
+    このようにしてクライアントは、リクエストが応答される前に、
+    新しい子プロセスが fork されるのを待たなくてもよいように
+    なっています。</p>
+
+    <p>親プロセスがリクエストに応答するの子プロセスを
+    どのように生成するかは、
+    <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>,
+    <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>,
+    <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code>,
+    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
+    で調整します。一般的に、Apache は非常に自律的なので、
+    大抵のサイトではこれらのディレクティブをデフォルト値から調整する
+    必要はないでしょう。
+    同時に 256 を超えるリクエストに応答しないといけないサイトでは、
+    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
+    を増やす必要があるでしょう。
+    一方、メモリの限られているサイトでは、スラッシング
+    (メモリとディスク間で何度もスワップ) が起こるのを防ぐために
+    <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code>
+    を減らす必要があるでしょう。プロセス生成のチューニングに関する
+    詳しい情報は、<a href="../misc/perf-tuning.html">性能に関するヒント</a>
+    にあります。</p>
+
+    <p>通常 Unix では親プロセスは 80 番ポートにバインドするために
+    <code>root</code> で起動されますが、子プロセスやスレッドは
+    もっと低い権限のユーザで Apache によって起動されます。
+    <code class="directive"><a href="../mod/mpm_common.html#user">User</a></code> と
+    <code class="directive"><a href="../mod/mpm_common.html#group">Group</a></code>
+    ディレクティブは
+    Apache の子プロセスの権限を設定するのに用いられます。
+    子プロセスはクライアントに送るコンテンツ全てを読めないといけませんが、
+    可能な限り必要最小限の権限のみを持っているようにするべきです。</p>
+
+    <p><code class="directive"><a href="../mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></code>
+    は、古いプロセスを停止して新しいプロセスを起動することによって、
+    どの程度の頻度でサーバがプロセスをリサイクルするかを制御します。</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |
index 1b8d6af1c9f922f1bd23f407f1ed37efb6d306cf..8459c1f41799dbe641a8507e9b32ecb753b43476 100644 (file)
     portların ayarlanması</a></li>
 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
 <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="how-it-works" id="how-it-works">Nasıl çalışır?</a></h2>
-    <p>Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri
-      devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache httpd
-      daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda
-      sunucu sürecini <dfn>yedekte tutmaya</dfn> veya boşta bekletmeye
-      çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk
-      süreçlerin çatallanmasını beklemek gerekmez.</p>
-
-    <p>Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl
-      gerçekleştireceği <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>, <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code> ve <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> yönergeleri ile düzenlenir. Apache httpd
-      kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu
-      sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez.
-      Aynı anda 256’dan fazla isteğe hizmet sunacak sitelerin <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> değerini arttırmaları
-      gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de
-      sunucunun belleği diske takaslamasını önlemek için bu değeri
-      azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha
-      fazla bilgi edinmek için <a href="../misc/perf-tuning.html">başarım
-      arttırma ipuçları</a> belgesine bakınız.</p>
-
-    <p>Unix altında 80. portu dinleyebilmek için ana sürecin
-      <code>root</code> tarafından çalıştırılmış olması gerekirse de çocuk
-      süreçler Apache httpd tarafından daha az yetkili bir kullanıcının
-      aidiyetinde çalıştırılırlar. Apache httpd’nin çocuk süreçlerinin
-      kullanıcı ve gruplarını ayarlamak için <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> ve <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code>
-      yönergeleri kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya
-      yetkili olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı
-      tutulmasına çalışılmalıdır.</p>
-
-    <p><code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>
-      yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı
-      ne kadar sıklıkla yapacağını denetler.</p>
-
-    <p>Bu MPM, gürleyen sürü sorunu ortaya çıktığında (genelde çok sayıda
-      dinlenen soket varlığında) gelen bağlantılara erişimi dizgileştirmek için
-      <code>mpm-accept</code> muteksini kullanır. Bu muteksin gerçeklenimle
-      ilgili hususları <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code> yönergesi ile
-      yapılandırılabilir. Bu muteks hakkında ek bilgi  için <a href="../misc/perf-tuning.html">başarımın arttırılması</a>
-      belgesine bakınız.</p>
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="MaxSpareServers" id="MaxSpareServers">MaxSpareServers</a> <a name="maxspareservers" id="maxspareservers">Yönergesi</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Boştaki çocuk süreçlerin azami sayısı</td></tr>
 <li><code class="directive"><a href="../mod/mpm_common.html#minsparethreads">MinSpareThreads</a></code></li>
 </ul>
 </div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="how-it-works" id="how-it-works">Nasıl çalışır?</a></h2>
+    <p>Bağlantıları dinleyip gerektiğinde onlara hizmet sunan çocuk süreçleri
+      devreye almak tek bir denetim sürecinin sorumluluğundadır. Apache httpd
+      daima, gelen isteklere hizmet vermeye hazır bekleyen en fazla sayıda
+      sunucu sürecini <dfn>yedekte tutmaya</dfn> veya boşta bekletmeye
+      çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk
+      süreçlerin çatallanmasını beklemek gerekmez.</p>
+
+    <p>Ana sürecin istekleri sunacak çocuk süreçleri oluşturma işlemini nasıl
+      gerçekleştireceği <code class="directive"><a href="../mod/mpm_common.html#startservers">StartServers</a></code>, <code class="directive"><a href="#minspareservers">MinSpareServers</a></code>, <code class="directive"><a href="#maxspareservers">MaxSpareServers</a></code> ve <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> yönergeleri ile düzenlenir. Apache httpd
+      kendiliğinden her duruma çok iyi uyum sağladığından, genelde, çoğu
+      sitenin bu yönergelerin öntanımlı değerlerini değiştirmesi gerekmez.
+      Aynı anda 256’dan fazla isteğe hizmet sunacak sitelerin <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> değerini arttırmaları
+      gerekebilir. Ancak, fiziksel belleği yeterli olmayan sitelerin de
+      sunucunun belleği diske takaslamasını önlemek için bu değeri
+      azaltmaları gerekebilir. Süreç oluşturmanın ayarlanması ile ilgili daha
+      fazla bilgi edinmek için <a href="../misc/perf-tuning.html">başarım
+      arttırma ipuçları</a> belgesine bakınız.</p>
+
+    <p>Unix altında 80. portu dinleyebilmek için ana sürecin
+      <code>root</code> tarafından çalıştırılmış olması gerekirse de çocuk
+      süreçler Apache httpd tarafından daha az yetkili bir kullanıcının
+      aidiyetinde çalıştırılırlar. Apache httpd’nin çocuk süreçlerinin
+      kullanıcı ve gruplarını ayarlamak için <code class="directive"><a href="../mod/mod_unixd.html#user">User</a></code> ve <code class="directive"><a href="../mod/mod_unixd.html#group">Group</a></code>
+      yönergeleri kullanılır. Çocuk süreçlerin sunacakları içeriği okumaya
+      yetkili olmaları gerekir, fakat bu yetkinin mümkün olduğunca kısıtlı
+      tutulmasına çalışılmalıdır.</p>
+
+    <p><code class="directive"><a href="../mod/mpm_common.html#maxconnectionsperchild">MaxConnectionsPerChild</a></code>
+      yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı
+      ne kadar sıklıkla yapacağını denetler.</p>
+
+    <p>Bu MPM, gürleyen sürü sorunu ortaya çıktığında (genelde çok sayıda
+      dinlenen soket varlığında) gelen bağlantılara erişimi dizgileştirmek için
+      <code>mpm-accept</code> muteksini kullanır. Bu muteksin gerçeklenimle
+      ilgili hususları <code class="directive"><a href="../mod/core.html#mutex">Mutex</a></code> yönergesi ile
+      yapılandırılabilir. Bu muteks hakkında ek bilgi  için <a href="../misc/perf-tuning.html">başarımın arttırılması</a>
+      belgesine bakınız.</p>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../de/mod/prefork.html" hreflang="de" rel="alternate" title="Deutsch">&nbsp;de&nbsp;</a> |