]> granicus.if.org Git - apache/commitdiff
Enclose parameters in quotation marks for <{Files,Directory,Location}{,Match}>
authorKen Coar <coar@apache.org>
Wed, 15 Apr 2015 17:46:53 +0000 (17:46 +0000)
committerKen Coar <coar@apache.org>
Wed, 15 Apr 2015 17:46:53 +0000 (17:46 +0000)
containers.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1673892 13f79535-47bb-0310-9956-ffa450edef68

361 files changed:
docs/manual/developer/lua.html.en
docs/manual/developer/lua.xml
docs/manual/env.html.en
docs/manual/env.xml
docs/manual/expr.html.en
docs/manual/expr.xml
docs/manual/handler.html.en
docs/manual/handler.xml
docs/manual/howto/cgi.html.en
docs/manual/howto/cgi.xml
docs/manual/howto/public_html.html.en
docs/manual/howto/public_html.xml
docs/manual/misc/perf-scaling.html.en
docs/manual/misc/perf-scaling.xml
docs/manual/misc/perf-tuning.html.en
docs/manual/misc/perf-tuning.xml
docs/manual/misc/security_tips.html.en
docs/manual/misc/security_tips.xml
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/core.xml
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_access_compat.xml
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_actions.xml
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_alias.xml
docs/manual/mod/mod_allowhandlers.html.en
docs/manual/mod/mod_allowhandlers.xml
docs/manual/mod/mod_allowmethods.html.en
docs/manual/mod/mod_allowmethods.html.fr
docs/manual/mod/mod_allowmethods.xml
docs/manual/mod/mod_asis.html.fr
docs/manual/mod/mod_asis.html.ja.utf8
docs/manual/mod/mod_asis.html.ko.euc-kr
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_auth_form.xml
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_dbd.xml
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_authn_socache.xml
docs/manual/mod/mod_authnz_fcgi.html.en
docs/manual/mod/mod_authnz_fcgi.xml
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_dbd.xml
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_authz_host.html.fr
docs/manual/mod/mod_authz_owner.html.fr
docs/manual/mod/mod_authz_owner.html.ja.utf8
docs/manual/mod/mod_authz_owner.html.ko.euc-kr
docs/manual/mod/mod_authz_user.html.fr
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_autoindex.xml
docs/manual/mod/mod_autoindex.xml.fr
docs/manual/mod/mod_autoindex.xml.ja
docs/manual/mod/mod_autoindex.xml.ko
docs/manual/mod/mod_autoindex.xml.meta
docs/manual/mod/mod_autoindex.xml.tr
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.xml
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_cache_socache.xml
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_charset_lite.xml
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_deflate.xml
docs/manual/mod/mod_dialup.html.en
docs/manual/mod/mod_dialup.html.fr
docs/manual/mod/mod_dialup.xml
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_dir.xml
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_example_hooks.xml
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_ext_filter.xml
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.xml
docs/manual/mod/mod_firehose.html.en
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_heartmonitor.html.en
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.ko.euc-kr
docs/manual/mod/mod_include.html.en
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_info.xml
docs/manual/mod/mod_isapi.html.en
docs/manual/mod/mod_isapi.html.ko.euc-kr
docs/manual/mod/mod_journald.html.en
docs/manual/mod/mod_lbmethod_heartbeat.html.en
docs/manual/mod/mod_ldap.html.en
docs/manual/mod/mod_ldap.html.fr
docs/manual/mod/mod_ldap.xml
docs/manual/mod/mod_log_config.html.en
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.xml
docs/manual/mod/mod_log_forensic.html.en
docs/manual/mod/mod_log_forensic.html.ja.utf8
docs/manual/mod/mod_log_forensic.html.tr.utf8
docs/manual/mod/mod_logio.html.en
docs/manual/mod/mod_logio.html.ja.utf8
docs/manual/mod/mod_logio.html.ko.euc-kr
docs/manual/mod/mod_logio.html.tr.utf8
docs/manual/mod/mod_lua.html.en
docs/manual/mod/mod_lua.html.fr
docs/manual/mod/mod_lua.xml
docs/manual/mod/mod_macro.html.en
docs/manual/mod/mod_macro.html.fr
docs/manual/mod/mod_macro.xml
docs/manual/mod/mod_mime.html.en
docs/manual/mod/mod_mime.html.ja.utf8
docs/manual/mod/mod_mime.xml
docs/manual/mod/mod_mime_magic.html.en
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_policy.html.en
docs/manual/mod/mod_policy.xml
docs/manual/mod/mod_privileges.html.en
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.xml
docs/manual/mod/mod_proxy_ajp.html.ja.utf8
docs/manual/mod/mod_proxy_balancer.html.en
docs/manual/mod/mod_proxy_balancer.html.ja.utf8
docs/manual/mod/mod_proxy_balancer.xml
docs/manual/mod/mod_proxy_connect.html.en
docs/manual/mod/mod_proxy_connect.html.ja.utf8
docs/manual/mod/mod_proxy_express.html.en
docs/manual/mod/mod_proxy_fcgi.html.en
docs/manual/mod/mod_proxy_fcgi.xml
docs/manual/mod/mod_proxy_ftp.html.en
docs/manual/mod/mod_proxy_html.html.en
docs/manual/mod/mod_proxy_http.html.fr
docs/manual/mod/mod_proxy_scgi.html.en
docs/manual/mod/mod_proxy_wstunnel.html.en
docs/manual/mod/mod_ratelimit.html.en
docs/manual/mod/mod_ratelimit.xml
docs/manual/mod/mod_reflector.html.en
docs/manual/mod/mod_reflector.xml
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_request.html.en
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_rewrite.xml
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_cookie.html.en
docs/manual/mod/mod_session_crypto.html.en
docs/manual/mod/mod_session_dbd.html.en
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.ja.utf8
docs/manual/mod/mod_speling.html.ko.euc-kr
docs/manual/mod/mod_ssl.html.en
docs/manual/mod/mod_ssl_ct.html.en
docs/manual/mod/mod_status.html.en
docs/manual/mod/mod_status.html.fr
docs/manual/mod/mod_status.html.ja.utf8
docs/manual/mod/mod_status.html.ko.euc-kr
docs/manual/mod/mod_status.html.tr.utf8
docs/manual/mod/mod_status.xml
docs/manual/mod/mod_substitute.html.en
docs/manual/mod/mod_substitute.xml
docs/manual/mod/mod_suexec.html.en
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_systemd.html.en
docs/manual/mod/mod_unique_id.html.fr
docs/manual/mod/mod_unique_id.html.ja.utf8
docs/manual/mod/mod_unique_id.html.ko.euc-kr
docs/manual/mod/mod_unixd.html.en
docs/manual/mod/mod_unixd.html.tr.utf8
docs/manual/mod/mod_userdir.html.en
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_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.tr.utf8
docs/manual/mod/mod_watchdog.html.en
docs/manual/mod/mod_xml2enc.html.en
docs/manual/mod/mpm_common.html.de
docs/manual/mod/mpm_common.html.en
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/prefork.html.de
docs/manual/mod/prefork.html.en
docs/manual/mod/prefork.html.ja.utf8
docs/manual/mod/prefork.html.tr.utf8
docs/manual/mod/worker.html.de
docs/manual/mod/worker.html.ja.utf8
docs/manual/mod/worker.html.tr.utf8
docs/manual/platform/windows.html.en
docs/manual/platform/windows.xml
docs/manual/rewrite/access.html.en
docs/manual/rewrite/access.xml
docs/manual/rewrite/remapping.html.en
docs/manual/rewrite/remapping.xml
docs/manual/rewrite/vhosts.html.en
docs/manual/rewrite/vhosts.xml
docs/manual/sections.html.en
docs/manual/sections.xml
docs/manual/vhosts/mass.html.en
docs/manual/vhosts/mass.xml

index f81d36503c3b1d33279c7e42bba89240d1f03db4..beec032f7f8b293c28a5db02a10e5b5c99e5e8c0 100644 (file)
@@ -456,10 +456,10 @@ end</pre>
     groups with different permissions:
 </p>
 <pre class="prettyprint lang-config">LuaAuthzProvider rights /path/to/lua/script.lua rights_handler
-&lt;Directory /www/private&gt;
+&lt;Directory "/www/private"&gt;
     Require rights member
 &lt;/Directory&gt;
-&lt;Directory /www/admin&gt;
+&lt;Directory "/www/admin"&gt;
     Require rights admin
 &lt;/Directory&gt;</pre>
 
index 06d9087624a50584b69a54bb4cd64cfcba0450c0..c85b445a605a12fe2a386f54b4c7d5c163567a61 100644 (file)
@@ -472,10 +472,10 @@ end
 </p>
 <highlight language="config">
 LuaAuthzProvider rights /path/to/lua/script.lua rights_handler
-&lt;Directory /www/private&gt;
+&lt;Directory "/www/private"&gt;
     Require rights member
 &lt;/Directory&gt;
-&lt;Directory /www/admin&gt;
+&lt;Directory "/www/admin"&gt;
     Require rights admin
 &lt;/Directory&gt;
 </highlight>
index 4df20490d88eeab69654fd56637d9e4cb5a62492..23b95e002503d84ce5ea01def04c84665083d104 100644 (file)
@@ -484,7 +484,7 @@ CustomLog logs/access_log common env=!image-request</pre>
         <pre class="prettyprint lang-config">SetEnvIf Referer "^http://www\.example\.com/" local_referal
 # Allow browsers that do not send Referer info
 SetEnvIf Referer "^$" local_referal
-&lt;Directory /web/images&gt;
+&lt;Directory "/web/images"&gt;
     Require env local_referal
 &lt;/Directory&gt;</pre>
 
index 5bfefb285f1c56edff72a8f91a415a6a0a3cf32b..d4375cf6888cd617d669e8be2291973cbba3021b 100644 (file)
@@ -526,7 +526,7 @@ CustomLog logs/access_log common env=!image-request
 SetEnvIf Referer "^http://www\.example\.com/" local_referal
 # Allow browsers that do not send Referer info
 SetEnvIf Referer "^$" local_referal
-&lt;Directory /web/images&gt;
+&lt;Directory "/web/images"&gt;
     Require env local_referal
 &lt;/Directory&gt;
         </highlight>
index 7defa17d227328fd60cb6db8f559f0a0a31845dc..46d0565c52e4f5d3f20e96391b1ca979932dbba8 100644 (file)
@@ -546,7 +546,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"</pr
 &lt;/If&gt;
 
 # Check result of URI mapping by running in Directory context with -f
-&lt;Directory /var/www&gt;
+&lt;Directory "/var/www"&gt;
     AddEncoding x-gzip gz
 &lt;If "-f '%{REQUEST_FILENAME}.unzipme' &amp;&amp; ! %{HTTP:Accept-Encoding} =~ /gzip/"&gt;
       SetOutputFilter INFLATE
index 99620c87f3cbb2f97b607933b0a32e4ddc9a6e98..774cdc9b19e5c1af794474c6c61395ee527ccd33 100644 (file)
@@ -599,7 +599,7 @@ listfunction ::= listfuncname "<strong>(</strong>" word "<strong>)</strong>"
 &lt;/If&gt;
 
 # Check result of URI mapping by running in Directory context with -f
-&lt;Directory /var/www&gt;
+&lt;Directory "/var/www"&gt;
     AddEncoding x-gzip gz
 &lt;If "-f '%{REQUEST_FILENAME}.unzipme' &amp;&amp; ! %{HTTP:Accept-Encoding} =~ /gzip/"&gt;
       SetOutputFilter INFLATE
index 5f1700350e2e6288a6a0c242ef5cbed951ef4755..72683d8fd3904752e9233cbaa29fb9e4cdf15a67 100644 (file)
@@ -117,7 +117,7 @@ AddHandler add-footer .html</pre>
       the <code>send-as-is</code> handler, regardless of their
       filename extensions.</p>
 
-      <pre class="prettyprint lang-config">&lt;Directory /web/htdocs/asis&gt;
+      <pre class="prettyprint lang-config">&lt;Directory "/web/htdocs/asis"&gt;
     SetHandler send-as-is
 &lt;/Directory&gt;</pre>
 
index 98dc9599bf1336f546fe22ffd1323c46f944f441..fd37d5603efac718c8d0fd769a073c6250c417d1 100644 (file)
@@ -127,7 +127,7 @@ AddHandler add-footer .html
       filename extensions.</p>
 
       <highlight language="config">
-&lt;Directory /web/htdocs/asis&gt;
+&lt;Directory "/web/htdocs/asis"&gt;
     SetHandler send-as-is
 &lt;/Directory&gt;
       </highlight>
index c47a64232f018ce43349c54ae0ca049c4fd4c298..5a7c34f8280ea10907920fa927dcd621ccf931d2 100644 (file)
       file, to specify that CGI execution was permitted in a particular
       directory:</p>
 
-      <pre class="prettyprint lang-config">&lt;Directory /usr/local/apache2/htdocs/somedir&gt;
+      <pre class="prettyprint lang-config">&lt;Directory "/usr/local/apache2/htdocs/somedir"&gt;
     Options +ExecCGI
 &lt;/Directory&gt;</pre>
 
       <code>.cgi</code> in users' directories, you can use the
       following configuration.</p>
 
-      <pre class="prettyprint lang-config">&lt;Directory /home/*/public_html&gt;
+      <pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html"&gt;
     Options +ExecCGI
     AddHandler cgi-script .cgi
 &lt;/Directory&gt;</pre>
       a user's directory where everything will be treated as a CGI
       program, you can use the following.</p>
 
-      <pre class="prettyprint lang-config">&lt;Directory /home/*/public_html/cgi-bin&gt;
+      <pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html/cgi-bin"&gt;
     Options ExecCGI
     SetHandler cgi-script
 &lt;/Directory&gt;</pre>
index bf6f4dc6c842fdf70cf5fc8ae375a6cea0e95593..9ca0e6b4361fe5f005b5da907ca3a5b282685ab5 100644 (file)
       directory:</p>
 
       <highlight language="config">
-&lt;Directory /usr/local/apache2/htdocs/somedir&gt;
+&lt;Directory "/usr/local/apache2/htdocs/somedir"&gt;
     Options +ExecCGI
 &lt;/Directory&gt;
       </highlight>
       following configuration.</p>
 
       <highlight language="config">
-&lt;Directory /home/*/public_html&gt;
+&lt;Directory "/home/*/public_html"&gt;
     Options +ExecCGI
     AddHandler cgi-script .cgi
 &lt;/Directory&gt;
       program, you can use the following.</p>
 
       <highlight language="config">
-&lt;Directory /home/*/public_html/cgi-bin&gt;
+&lt;Directory "/home/*/public_html/cgi-bin"&gt;
     Options ExecCGI
     SetHandler cgi-script
 &lt;/Directory&gt;
index fa55b63edb4df24f085420f6046221d48b71a172..a329b6e13ad63d13e029b1495af6a6efe5b87482 100644 (file)
     directive to make a particular subdirectory of a user's home directory
     cgi-enabled.</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /home/*/public_html/cgi-bin/&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html/cgi-bin/"&gt;
     Options ExecCGI
     SetHandler cgi-script
 &lt;/Directory&gt;</pre>
index fbcef0fb7f09715180599abc44790c3815c3b7ab..063501378b0c5cbc3d1c22f383915d5880c14f12 100644 (file)
     cgi-enabled.</p>
 
     <highlight language="config">
-&lt;Directory /home/*/public_html/cgi-bin/&gt;
+&lt;Directory "/home/*/public_html/cgi-bin/"&gt;
     Options ExecCGI
     SetHandler cgi-script
 &lt;/Directory&gt;
index 6a794830e07df5538eeb6c1d8b43d263df25ec87..be5acff59e22fdccb4885fa235787feeec221012 100644 (file)
@@ -1285,8 +1285,7 @@ Swap:       3903784      12540  3891244</pre></div>
       ServerName blog.sandla.org:8001
       ServerAdmin sander@temme.net
       DocumentRoot "/home/sctemme/inst/blog/httpd/htdocs"
-      &lt;Directory
-      "/home/sctemme/inst/blog/httpd/htdocs"&gt;
+      &lt;Directory "/home/sctemme/inst/blog/httpd/htdocs"&gt;
           Options +Indexes
           Require all granted
           RewriteEngine on
@@ -1418,7 +1417,7 @@ CacheMaxExpire 21600</pre>
                     Unfortunately there does currently not exist a way to cache
                     these headers. 
                 </p>
-<pre class="prettyprint lang-config">&lt;FilesMatch \.(jpe?g|png|gif|js|css|x?html|xml)&gt;
+<pre class="prettyprint lang-config">&lt;FilesMatch "\.(jpe?g|png|gif|js|css|x?html|xml)"&gt;
     FileETag None
 &lt;/FilesMatch&gt;</pre>
 
index 6fcb818da007961bfda09635d849dad431dd9e20..cb88b8bf11312c19fb4be7dcdcaf8b57407700d0 100644 (file)
@@ -1284,8 +1284,7 @@ Listen *:8001
       ServerName blog.sandla.org:8001
       ServerAdmin sander@temme.net
       DocumentRoot "/home/sctemme/inst/blog/httpd/htdocs"
-      &lt;Directory
-      "/home/sctemme/inst/blog/httpd/htdocs"&gt;
+      &lt;Directory "/home/sctemme/inst/blog/httpd/htdocs"&gt;
           Options +Indexes
           Require all granted
           RewriteEngine on
@@ -1420,7 +1419,7 @@ CacheMaxExpire 21600
                     these headers. 
                 </p>
 <highlight language="config">
-&lt;FilesMatch \.(jpe?g|png|gif|js|css|x?html|xml)&gt;
+&lt;FilesMatch "\.(jpe?g|png|gif|js|css|x?html|xml)"&gt;
     FileETag None
 &lt;/FilesMatch&gt;
 </highlight>
index 7b529c7b52cba9fa086c8bfe078a462354303d6a..4f36d3676f5e7da31de6c16365d314498e28dc05 100644 (file)
       using these directives, if possible.</p>
 
       <p>Note that it's possible to scope the directives, such as
-      within a <code>&lt;Location /server-status&gt;</code> section.
+      within a <code>&lt;Location "/server-status"&gt;</code> section.
       In this case the DNS lookups are only performed on requests
       matching the criteria. Here's an example which disables lookups
       except for <code>.html</code> and <code>.cgi</code> files:</p>
       filename component. For example, if you had:</p>
 
       <pre class="prettyprint lang-config">DocumentRoot /www/htdocs
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   Options SymLinksIfOwnerMatch
 &lt;/Directory&gt;</pre>
 
       security checking you can do something like this:</p>
 
       <pre class="prettyprint lang-config">DocumentRoot /www/htdocs
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   Options FollowSymLinks
 &lt;/Directory&gt;
 
-&lt;Directory /www/htdocs&gt;
+&lt;Directory "/www/htdocs"&gt;
   Options -FollowSymLinks +SymLinksIfOwnerMatch
 &lt;/Directory&gt;</pre>
 
       example,</p>
 
       <pre class="prettyprint lang-config">DocumentRoot /www/htdocs
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   AllowOverride all
 &lt;/Directory&gt;</pre>
 
index bb44c33a82a93c94690c3781f73995a3c42c5d3a..6853e68e27b729615dd1238f518c7d4777747ddb 100644 (file)
       using these directives, if possible.</p>
 
       <p>Note that it's possible to scope the directives, such as
-      within a <code>&lt;Location /server-status&gt;</code> section.
+      within a <code>&lt;Location "/server-status"&gt;</code> section.
       In this case the DNS lookups are only performed on requests
       matching the criteria. Here's an example which disables lookups
       except for <code>.html</code> and <code>.cgi</code> files:</p>
@@ -177,7 +177,7 @@ HostnameLookups off
 
       <highlight language="config">
 DocumentRoot /www/htdocs
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   Options SymLinksIfOwnerMatch
 &lt;/Directory&gt;
       </highlight>
@@ -192,11 +192,11 @@ DocumentRoot /www/htdocs
 
       <highlight language="config">
 DocumentRoot /www/htdocs
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   Options FollowSymLinks
 &lt;/Directory&gt;
 
-&lt;Directory /www/htdocs&gt;
+&lt;Directory "/www/htdocs"&gt;
   Options -FollowSymLinks +SymLinksIfOwnerMatch
 &lt;/Directory&gt;
       </highlight>
@@ -223,7 +223,7 @@ DocumentRoot /www/htdocs
 
       <highlight language="config">
 DocumentRoot /www/htdocs
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   AllowOverride all
 &lt;/Directory&gt;
       </highlight>
index 522083f66511b039e4fe222588c46a28d6870072..b3da0c96cf4ddfcaed5db8415c6a87269b4898a4 100644 (file)
 
     <p>In the server configuration file, put</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
     AllowOverride None
 &lt;/Directory&gt;</pre>
 
     work around this, add the following block to your server's
     configuration:</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
     Require all denied
 &lt;/Directory&gt;</pre>
 
     appropriate <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> blocks to
     allow access only in those areas you wish. For example,</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /usr/users/*/public_html&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/usr/users/*/public_html"&gt;
     Require all granted
 &lt;/Directory&gt;
-&lt;Directory /usr/local/httpd&gt;
+&lt;Directory "/usr/local/httpd"&gt;
     Require all granted
 &lt;/Directory&gt;</pre>
 
 
     <p>Pay particular attention to the interactions of <code class="directive"><a href="../mod/core.html#location">Location</a></code> and <code class="directive"><a href="../mod/core.html#directory">Directory</a></code> directives; for instance, even
-    if <code>&lt;Directory /&gt;</code> denies access, a <code>
-    &lt;Location /&gt;</code> directive might overturn it.</p>
+    if <code>&lt;Directory "/"&gt;</code> denies access, a <code>
+    &lt;Location "/"&gt;</code> directive might overturn it.</p>
 
     <p>Also be wary of playing games with the <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> directive; setting it to
     something like <code>./</code> would have the same effect, for root, as
index 5664ff9d3ef9e016e317ea753f833b675c4397f9..af003eb889bf323fce9689223d66171d13970f55 100644 (file)
     <p>In the server configuration file, put</p>
 
     <highlight language="config">
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
     AllowOverride None
 &lt;/Directory&gt;
     </highlight>
     configuration:</p>
 
     <highlight language="config">
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
     Require all denied
 &lt;/Directory&gt;
     </highlight>
     allow access only in those areas you wish. For example,</p>
 
     <highlight language="config">
-&lt;Directory /usr/users/*/public_html&gt;
+&lt;Directory "/usr/users/*/public_html"&gt;
     Require all granted
 &lt;/Directory&gt;
-&lt;Directory /usr/local/httpd&gt;
+&lt;Directory "/usr/local/httpd"&gt;
     Require all granted
 &lt;/Directory&gt;
     </highlight>
     <p>Pay particular attention to the interactions of <directive
     module="core">Location</directive> and <directive
     module="core">Directory</directive> directives; for instance, even
-    if <code>&lt;Directory /&gt;</code> denies access, a <code>
-    &lt;Location /&gt;</code> directive might overturn it.</p>
+    if <code>&lt;Directory "/"&gt;</code> denies access, a <code>
+    &lt;Location "/"&gt;</code> directive might overturn it.</p>
 
     <p>Also be wary of playing games with the <directive
     module="mod_userdir">UserDir</directive> directive; setting it to
index c574b61e1b2cd7a4111fbf92edc37f1c360862df..c287b322a32d589a303d658575540c306c202475 100644 (file)
@@ -124,6 +124,7 @@ Servers</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</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">
@@ -3660,7 +3661,6 @@ IP-Adressen angewendet werden</td></tr>
 </table><p>Die Dokumentation zu dieser Direktive wurde
             noch nicht übersetzt. Bitte schauen Sie in die englische
             Version.</p></div>
-
 </div>
 <div class="bottomlang">
 <p><span>Verfügbare Sprachen: </span><a href="../de/mod/core.html" title="Deutsch">&nbsp;de&nbsp;</a> |
index ce3ff4da0b9f1c43b1d9ac334e3543d954da9406..ae927b47c40e5873ea1b9848479a20b259f5ec3f 100644 (file)
@@ -121,6 +121,7 @@ available</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</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">
@@ -294,7 +295,7 @@ AcceptFilter https data</pre>
     <code>/usr/local/.acl</code> and <code>/usr/local/web/.acl</code>
     for directives, unless they have been disabled with</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
     AllowOverride None
 &lt;/Directory&gt;</pre>
 
@@ -533,7 +534,7 @@ NoDecode option available in 2.3.12 and later.</td></tr>
 
     <div class="note"><p>For security and performance reasons, do not set
     <code>AllowOverride</code> to anything other than <code>None</code>
-    in your <code>&lt;Directory /&gt;</code> block. Instead, find (or
+    in your <code>&lt;Directory "/"&gt;</code> block. Instead, find (or
     create) the <code>&lt;Directory&gt;</code> block that refers to the
     directory where you're actually planning to place a
     <code>.htaccess</code> file.</p>
@@ -836,9 +837,9 @@ named file-system directory, sub-directories, and their contents.</td></tr>
     any single character, and <code>*</code> matches any sequences of
     characters. You may also use <code>[]</code> character ranges. None
     of the wildcards match a `/' character, so <code>&lt;Directory
-    /*/public_html&gt;</code> will not match
+    "/*/public_html"&gt;</code> will not match
     <code>/home/user/public_html</code>, but <code>&lt;Directory
-    /home/*/public_html&gt;</code> will match. Example:</p>
+    "/home/*/public_html"&gt;</code> will match. Example:</p>
 
     <pre class="prettyprint lang-config">&lt;Directory "/usr/local/httpd/htdocs"&gt;
   Options Indexes FollowSymLinks
@@ -876,7 +877,7 @@ named file-system directory, sub-directories, and their contents.</td></tr>
     first, interspersed with the directives from the <a href="#accessfilename">.htaccess</a> files. For example,
     with</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
   AllowOverride None
 &lt;/Directory&gt;
 
@@ -918,12 +919,12 @@ named file-system directory, sub-directories, and their contents.</td></tr>
     be applied.</p>
 
    <p><strong>Note that the default access for
-    <code>&lt;Directory /&gt;</code> is to permit all access.
+    <code>&lt;Directory "/"&gt;</code> is to permit all access.
     This means that Apache httpd will serve any file mapped from an URL. It is
     recommended that you change this with a block such
     as</strong></p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/"&gt;
   Require all denied
 &lt;/Directory&gt;</pre>
 
@@ -991,7 +992,7 @@ the contents of file-system directories matching a regular expression.</td></tr>
     <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;DirectoryMatch ^/var/www/combined/(?&lt;sitename&gt;[^/]+)&gt;
+<pre class="prettyprint lang-config">&lt;DirectoryMatch "^/var/www/combined/(?&lt;sitename&gt;[^/]+)"&gt;
     Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/DirectoryMatch&gt;</pre>
 
@@ -1335,7 +1336,7 @@ ErrorDocument 403 /cgi-bin/forbidden.pl?referrer=%{escape:%{HTTP_REFERER}}</pre>
 
     <pre class="prettyprint lang-config">ErrorDocument 404 /cgi-bin/bad_urls.pl
 
-&lt;Directory /web/docs&gt;
+&lt;Directory "/web/docs"&gt;
   ErrorDocument 404 default
 &lt;/Directory&gt;</pre>
 
@@ -1817,7 +1818,7 @@ filenames</td></tr>
     <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;FilesMatch ^(?&lt;sitename&gt;[^/]+)&gt;
+<pre class="prettyprint lang-config">&lt;FilesMatch "^(?&lt;sitename&gt;[^/]+)"&gt;
     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/FilesMatch&gt;</pre>
 
@@ -1862,12 +1863,12 @@ media type in the HTTP Content-Type header field</td></tr>
     by using the value of <code>None</code>:</p>
 
     <pre class="prettyprint lang-config"># force all files to be image/gif:
-&lt;Location /images&gt;
+&lt;Location "/images"&gt;
   ForceType image/gif
 &lt;/Location&gt;
 
 # but normal mime-type associations here:
-&lt;Location /images/mixed&gt;
+&lt;Location "/images/mixed"&gt;
   ForceType None
 &lt;/Location&gt;</pre>
 
@@ -2649,7 +2650,7 @@ URLs</td></tr>
     /private1, /private1/ and /private1/file.txt will have the enclosed
     directives applied, but /private1other would not.
     </p>
-    <pre class="prettyprint lang-config">&lt;Location /private1&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/private1"&gt;
     #  ...
 &lt;/Location&gt;</pre>
 
@@ -2658,7 +2659,7 @@ URLs</td></tr>
     /private2/ and /private2/file.txt will have the enclosed
     directives applied, but /private2 and /private2other would not.
     </p>
-    <pre class="prettyprint lang-config">&lt;Location /private2<em>/</em>&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/private2<em>/</em>"&gt;
     # ...
 &lt;/Location&gt;</pre>
 
@@ -2668,7 +2669,7 @@ URLs</td></tr>
     <p>Use <code class="directive">&lt;Location&gt;</code> to apply
     directives to content that lives outside the filesystem.  For
     content that lives in the filesystem, use <code class="directive"><a href="#directory">&lt;Directory&gt;</a></code> and <code class="directive"><a href="#files">&lt;Files&gt;</a></code>.  An exception is
-    <code>&lt;Location /&gt;</code>, which is an easy way to
+    <code>&lt;Location "/"&gt;</code>, which is an easy way to
     apply a configuration to the entire server.</p>
     </div>
 
@@ -2704,7 +2705,7 @@ URLs</td></tr>
     directive. For example, to enable status requests, but allow them
     only from browsers at <code>example.com</code>, you might use:</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /status&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/status"&gt;
   SetHandler server-status
   Require host example.com
 &lt;/Location&gt;</pre>
@@ -2720,12 +2721,12 @@ URLs</td></tr>
       directive and the regex version of <code class="directive">&lt;Location&gt;</code> require you to explicitly specify multiple
       slashes if that is your intention.</p>
 
-      <p>For example, <code>&lt;LocationMatch ^/abc&gt;</code> would match
+      <p>For example, <code>&lt;LocationMatch "^/abc"&gt;</code> would match
       the request URL <code>/abc</code> but not the request URL <code>
       //abc</code>. The (non-regex) <code class="directive">&lt;Location&gt;</code> directive behaves similarly when used for
       proxy requests. But when (non-regex) <code class="directive">&lt;Location&gt;</code> is used for non-proxy requests it will
       implicitly match multiple slashes with a single slash. For example,
-      if you specify <code>&lt;Location /abc/def&gt;</code> and the
+      if you specify <code>&lt;Location "/abc/def"&gt;</code> and the
       request is to <code>/abc//def</code> then it will match.</p>
     </div>
 
@@ -2778,7 +2779,7 @@ matching URLs</td></tr>
     <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;LocationMatch ^/combined/(?&lt;sitename&gt;[^/]+)&gt;
+<pre class="prettyprint lang-config">&lt;LocationMatch "^/combined/(?&lt;sitename&gt;[^/]+)"&gt;
     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/LocationMatch&gt;</pre>
 
@@ -4212,7 +4213,7 @@ handler</td></tr>
     <p>You could also use this directive to configure a particular
     handler for files with a particular file extension. For example:</p>
 
-    <pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
+    <pre class="prettyprint lang-config">&lt;FilesMatch "\.php$"&gt;
     SetHandler application/x-httpd-php
 &lt;/FilesMatch&gt;</pre>
 
@@ -4639,7 +4640,6 @@ hostname or IP address</td></tr>
 
 
 </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 98d19156211102cba04716f32f2a895d19025d9c..61acd5605aa020b245ccfd8fd47a25a583744780 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</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">
@@ -4359,7 +4360,6 @@ hostname or IP address</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>
 <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 ea2eb10b5842b6e97be5dffceb5ea706f9db4f9f..8a3c7dcd7b9ad1f61bd675e4c8bc85eabe9b41ff 100644 (file)
@@ -123,6 +123,7 @@ disponibles</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</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">
@@ -4960,7 +4961,6 @@ Apache.</td></tr>
 
 
 </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 f8aee4e1174e34f1afcb743abfaddb540d7fda66..00e11a9aca77ece5f7fb98ca09b824baa79292ff 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</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">
@@ -3575,7 +3576,6 @@ of a request or the last 63, assuming the request itself is greater than
 </table><p>このディレクティブの解説文書は
             まだ翻訳されていません。英語版をご覧ください。
             </p></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 2466055c6e55291269eca8757a9553c52b8ddfd3..06df756384c816c5a09d0cb92430be345fc24dff 100644 (file)
 <li><img alt="" src="../images/down.gif" /> <a href="#warning">Warning</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">
@@ -4510,7 +4511,6 @@ gerçekleşmesi için sunucunun geçmesini bekleyeceği süre.</td></tr>
 <tr><th><a href="directive-dict.html#Compatibility">Uyumluluk:</a></th><td>2.5 and later</td></tr>
 </table><p>Bu yönergenin belgesi henüz Türkçeye çevrilmedi.
             Lütfen İngilizce sürümüne bakınız.</p></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 ffca5551de9fc48901514653b44ca3d0c2d341f5..113103e4e6d96539506683fb6d02e70a196809f5 100644 (file)
@@ -204,7 +204,7 @@ AcceptFilter https data
     for directives, unless they have been disabled with</p>
 
     <highlight language="config">
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
     AllowOverride None
 &lt;/Directory&gt;
     </highlight>
@@ -472,7 +472,7 @@ NoDecode option available in 2.3.12 and later.</compatibility>
 
     <note><p>For security and performance reasons, do not set
     <code>AllowOverride</code> to anything other than <code>None</code>
-    in your <code>&lt;Directory /&gt;</code> block. Instead, find (or
+    in your <code>&lt;Directory "/"&gt;</code> block. Instead, find (or
     create) the <code>&lt;Directory&gt;</code> block that refers to the
     directory where you're actually planning to place a
     <code>.htaccess</code> file.</p>
@@ -774,9 +774,9 @@ named file-system directory, sub-directories, and their contents.</description>
     any single character, and <code>*</code> matches any sequences of
     characters. You may also use <code>[]</code> character ranges. None
     of the wildcards match a `/' character, so <code>&lt;Directory
-    /*/public_html&gt;</code> will not match
+    "/*/public_html"&gt;</code> will not match
     <code>/home/user/public_html</code>, but <code>&lt;Directory
-    /home/*/public_html&gt;</code> will match. Example:</p>
+    "/home/*/public_html"&gt;</code> will match. Example:</p>
 
     <highlight language="config">
 &lt;Directory "/usr/local/httpd/htdocs"&gt;
@@ -819,7 +819,7 @@ named file-system directory, sub-directories, and their contents.</description>
     with</p>
 
     <highlight language="config">
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   AllowOverride None
 &lt;/Directory&gt;
 
@@ -862,13 +862,13 @@ named file-system directory, sub-directories, and their contents.</description>
     be applied.</p>
 
    <p><strong>Note that the default access for
-    <code>&lt;Directory /&gt;</code> is to permit all access.
+    <code>&lt;Directory "/"&gt;</code> is to permit all access.
     This means that Apache httpd will serve any file mapped from an URL. It is
     recommended that you change this with a block such
     as</strong></p>
 
     <highlight language="config">
-&lt;Directory /&gt;
+&lt;Directory "/"&gt;
   Require all denied
 &lt;/Directory&gt;
     </highlight>
@@ -938,7 +938,7 @@ the contents of file-system directories matching a regular expression.</descript
     (unnamed) backreferences are ignored. Use named groups instead.</p>
 
 <highlight language="config">
-&lt;DirectoryMatch ^/var/www/combined/(?&lt;sitename&gt;[^/]+)&gt;
+&lt;DirectoryMatch "^/var/www/combined/(?&lt;sitename&gt;[^/]+)"&gt;
     Require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/DirectoryMatch&gt;
 </highlight>
@@ -1286,7 +1286,7 @@ ErrorDocument 403 /cgi-bin/forbidden.pl?referrer=%{escape:%{HTTP_REFERER}}
     <highlight language="config">
 ErrorDocument 404 /cgi-bin/bad_urls.pl
 
-&lt;Directory /web/docs&gt;
+&lt;Directory "/web/docs"&gt;
   ErrorDocument 404 default
 &lt;/Directory&gt;
     </highlight>
@@ -1810,7 +1810,7 @@ filenames</description>
     (unnamed) backreferences are ignored. Use named groups instead.</p>
 
 <highlight language="config">
-&lt;FilesMatch ^(?&lt;sitename&gt;[^/]+)&gt;
+&lt;FilesMatch "^(?&lt;sitename&gt;[^/]+)"&gt;
     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/FilesMatch&gt;
 </highlight>
@@ -1853,12 +1853,12 @@ media type in the HTTP Content-Type header field</description>
 
     <highlight language="config">
 # force all files to be image/gif:
-&lt;Location /images&gt;
+&lt;Location "/images"&gt;
   ForceType image/gif
 &lt;/Location&gt;
 
 # but normal mime-type associations here:
-&lt;Location /images/mixed&gt;
+&lt;Location "/images/mixed"&gt;
   ForceType None
 &lt;/Location&gt;
     </highlight>
@@ -2651,7 +2651,7 @@ URLs</description>
     directives applied, but /private1other would not.
     </p>
     <highlight language="config">
-&lt;Location /private1&gt;
+&lt;Location "/private1"&gt;
     #  ...
 &lt;/Location&gt;
     </highlight>
@@ -2661,7 +2661,7 @@ URLs</description>
     directives applied, but /private2 and /private2other would not.
     </p>
     <highlight language="config">
-&lt;Location /private2<em>/</em>&gt;
+&lt;Location "/private2<em>/</em>"&gt;
     # ...
 &lt;/Location&gt;
     </highlight>
@@ -2674,7 +2674,7 @@ URLs</description>
     content that lives in the filesystem, use <directive
     type="section" module="core">Directory</directive> and <directive
     type="section" module="core">Files</directive>.  An exception is
-    <code>&lt;Location /&gt;</code>, which is an easy way to
+    <code>&lt;Location "/"&gt;</code>, which is an easy way to
     apply a configuration to the entire server.</p>
     </note>
 
@@ -2714,7 +2714,7 @@ URLs</description>
     only from browsers at <code>example.com</code>, you might use:</p>
 
     <highlight language="config">
-&lt;Location /status&gt;
+&lt;Location "/status"&gt;
   SetHandler server-status
   Require host example.com
 &lt;/Location&gt;
@@ -2731,14 +2731,14 @@ URLs</description>
       >Location</directive> require you to explicitly specify multiple
       slashes if that is your intention.</p>
 
-      <p>For example, <code>&lt;LocationMatch ^/abc&gt;</code> would match
+      <p>For example, <code>&lt;LocationMatch "^/abc"&gt;</code> would match
       the request URL <code>/abc</code> but not the request URL <code>
       //abc</code>. The (non-regex) <directive type="section"
       >Location</directive> directive behaves similarly when used for
       proxy requests. But when (non-regex) <directive type="section"
       >Location</directive> is used for non-proxy requests it will
       implicitly match multiple slashes with a single slash. For example,
-      if you specify <code>&lt;Location /abc/def&gt;</code> and the
+      if you specify <code>&lt;Location "/abc/def"&gt;</code> and the
       request is to <code>/abc//def</code> then it will match.</p>
     </note>
 </usage>
@@ -2791,7 +2791,7 @@ matching URLs</description>
     (unnamed) backreferences are ignored. Use named groups instead.</p>
 
 <highlight language="config">
-&lt;LocationMatch ^/combined/(?&lt;sitename&gt;[^/]+)&gt;
+&lt;LocationMatch "^/combined/(?&lt;sitename&gt;[^/]+)"&gt;
     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/LocationMatch&gt;
 </highlight>
@@ -4177,7 +4177,7 @@ handler</description>
     handler for files with a particular file extension. For example:</p>
 
     <highlight language="config">
-&lt;FilesMatch \.php$&gt;
+&lt;FilesMatch "\.php$"&gt;
     SetHandler application/x-httpd-php
 &lt;/FilesMatch&gt;
     </highlight>
index 6643e05365f5d549be08d0b1b40a4d0d5063ba76..964fca8cd7cb0b232182860427207224a0d64c46 100644 (file)
@@ -80,58 +80,6 @@ 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
@@ -197,6 +145,58 @@ 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 7f674fe799653df2d4d5c9a8a0ee95a73ac514cf..f9cd764124936a7f236e1841631524e9e05ea6a9 100644 (file)
@@ -50,7 +50,11 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr>
     <code class="program"><a href="../programs/httpd.html">httpd</a></code>.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Comment tout cela fonctionne</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#requirements">Prérequis</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#asyncrequestworkerfactor">AsyncRequestWorkerFactor</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
@@ -73,73 +77,11 @@ mobiliser des threads que pour les connexions en cours de traitement</td></tr>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Comment tout cela fonctionne</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#requirements">Prérequis</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <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.
@@ -217,6 +159,64 @@ 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 ce8c2543589155f915bb118a0a53bb869200037c..9eaf18ffbe6471d366e9e90b9a29f87b89dfdb53 100644 (file)
@@ -91,6 +91,7 @@ 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">
@@ -198,7 +199,7 @@ Allow from 2001:db8::a00:20ff:fea7:ccea/10</pre>
     other HTTP request header fields.</p>
 
     <pre class="prettyprint lang-config">SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
-&lt;Directory /docroot&gt;
+&lt;Directory "/docroot"&gt;
     Order Deny,Allow
     Deny from all
     Allow from env=let_me_in
@@ -358,7 +359,7 @@ Deny from foo.example.org</pre>
     directives because of its effect on the default access state. For
     example,</p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /www&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/www"&gt;
     Order Allow,Deny
 &lt;/Directory&gt;</pre>
 
@@ -426,11 +427,11 @@ Satisfy Any</pre>
     is to relax access restrictions for a subdirectory:
     </p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /var/www/private&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/var/www/private"&gt;
     Require valid-user
 &lt;/Directory&gt;
 
-&lt;Directory /var/www/private/public&gt;
+&lt;Directory "/var/www/private/public"&gt;
     Allow from all
     Satisfy Any
 &lt;/Directory&gt;</pre>
@@ -456,7 +457,6 @@ 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 b8ce55d4205ecb334707f948ed8575fe4f8b0498..4a729fd150c549bee5ced142207bb54cc78573f2 100644 (file)
@@ -96,6 +96,7 @@ 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">
@@ -480,7 +481,6 @@ 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 1a9ba5cfa328e505599193c93d9cdc3f4f5d556a..1b21dde70e68f17804cdabf91f7d200839112a0f 100644 (file)
@@ -92,6 +92,7 @@
 <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 d0acbc058772c584ad46f4fe26e18849f5110daf..390bef2380f63c062a729b2e8b3c8da720ea2f06 100644 (file)
@@ -198,7 +198,7 @@ Allow from 2001:db8::a00:20ff:fea7:ccea/10
 
     <highlight language="config">
 SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
-&lt;Directory /docroot&gt;
+&lt;Directory "/docroot"&gt;
     Order Deny,Allow
     Deny from all
     Allow from env=let_me_in
@@ -376,7 +376,7 @@ Deny from foo.example.org
     example,</p>
 
     <highlight language="config">
-&lt;Directory /www&gt;
+&lt;Directory "/www"&gt;
     Order Allow,Deny
 &lt;/Directory&gt;
     </highlight>
@@ -452,11 +452,11 @@ Satisfy Any
     </p>
 
     <highlight language="config">
-&lt;Directory /var/www/private&gt;
+&lt;Directory "/var/www/private"&gt;
     Require valid-user
 &lt;/Directory&gt;
 
-&lt;Directory /var/www/private/public&gt;
+&lt;Directory "/var/www/private/public"&gt;
     Allow from all
     Satisfy Any
 &lt;/Directory&gt;
index cf360ed5f15838c747f46e62cd09483f2376cf0f..75bf75220485f586c17414ea2c89c0635b60503d 100644 (file)
@@ -57,6 +57,7 @@
 <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 0dffd02393b6d3ce37386b971e1a139a84dbd3ab..bc2504336a1b7a857ba5d715debfc761901c84f2 100644 (file)
@@ -53,6 +53,7 @@
 <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">
@@ -95,7 +96,7 @@ Action my-file-type /cgi-bin/program.cgi</pre>
     if you want to use the <code class="directive">Action</code> directive in
     virtual locations.</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /news&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/news"&gt;
     SetHandler news-handler
     Action news-handler /cgi-bin/news.cgi virtual
 &lt;/Location&gt;</pre>
@@ -147,7 +148,6 @@ 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 6a489ce49cfb0922cb320aef0148aece6aef3063..7ef602376b40bd83e75587f4e7ce08473ed69f07 100644 (file)
@@ -56,6 +56,7 @@ 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">
@@ -157,7 +158,6 @@ 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 a22b43485cc0fdb2b48920598c672fd761817178..ba212c5a5577a42459cf9ae5f199740c1d2cdbb8 100644 (file)
@@ -59,6 +59,7 @@ 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">
@@ -168,7 +169,6 @@ 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 b3284ca2d7057c62f4efb855b543e9bf3c81e743..a287e021224c4a2efbeb8a6060fdb6e3ec39dbf0 100644 (file)
@@ -56,6 +56,7 @@
 <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 fc23f614a4e88fccf3236c070b997fb6275a0e81..d9a9457ca39d85b3ef454d573d88619d65cd8174 100644 (file)
@@ -99,7 +99,7 @@ Action my-file-type /cgi-bin/program.cgi
     virtual locations.</p>
 
     <highlight language="config">
-&lt;Location /news&gt;
+&lt;Location "/news"&gt;
     SetHandler news-handler
     Action news-handler /cgi-bin/news.cgi virtual
 &lt;/Location&gt;
index 5c6b4899ae7b3bbe0101c2b8ff923f6a3974a996..c18fe0219954201dd4852be336852aa4230204af 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>
     permit access to the target directory.</p>
 
     <pre class="prettyprint lang-config">Alias /image /ftp/pub/image
-&lt;Directory /ftp/pub/image&gt;
+&lt;Directory "/ftp/pub/image"&gt;
     Require all granted
 &lt;/Directory&gt;</pre>
 
     section the URL-path is omitted, and the file-path is interpreted
     using <a href="../expr.html">expression syntax</a>.</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /image&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/image"&gt;
     Alias /ftp/pub/image
 &lt;/Location&gt;
-&lt;LocationMatch /error/(?&lt;NUMBER&gt;[0-9]+)&gt;
+&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
     Alias /usr/local/apache/errors/%{env:MATCH_NUMBER}.html
 &lt;/LocationMatch&gt;</pre>
 
@@ -349,13 +390,13 @@ Redirect 303 /three http://example.com/other</pre>
     section with the URL-path omitted, then the URL parameter will be
     interpreted using <a href="../expr.html">expression syntax</a>.</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /one&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/one"&gt;
     Redirect permanent http://example.com/two
 &lt;/Location&gt;<br />
-&lt;Location /three&gt;
+&lt;Location "/three"&gt;
     Redirect 303 http://example.com/other
 &lt;/Location&gt;<br />
-&lt;LocationMatch /error/(?&lt;NUMBER&gt;[0-9]+)&gt;
+&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
     Redirect permanent http://example.com/errors/%{env:MATCH_NUMBER}.html
 &lt;/LocationMatch&gt;<br />
     </pre>
@@ -457,7 +498,7 @@ target as a CGI script</td></tr>
     server to run the script <code>/web/cgi-bin/foo</code>.  This configuration
     is essentially equivalent to:</p>
     <pre class="prettyprint lang-config">Alias /cgi-bin/ /web/cgi-bin/
-&lt;Location /cgi-bin &gt;
+&lt;Location "/cgi-bin" &gt;
     SetHandler cgi-script
     Options +ExecCGI
 &lt;/Location&gt;</pre>
@@ -483,7 +524,7 @@ target as a CGI script</td></tr>
     choose to place your CGI scripts in a directory already
     accessible from the web, do not use
     <code class="directive">ScriptAlias</code>.  Instead, use <code class="directive"><a href="../mod/core.html#directory">&lt;Directory&gt;</a></code>, <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code>, and <code class="directive"><a href="../mod/core.html#options">Options</a></code> as in:
-    <pre class="prettyprint lang-config">&lt;Directory /usr/local/apache2/htdocs/cgi-bin &gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/usr/local/apache2/htdocs/cgi-bin"&gt;
     SetHandler cgi-script
     Options ExecCGI
 &lt;/Directory&gt;</pre>
@@ -500,10 +541,10 @@ target as a CGI script</td></tr>
     section with the URL-path omitted, then the URL parameter will be
     interpreted using <a href="../expr.html">expression syntax</a>.</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /cgi-bin &gt;
+    <pre class="prettyprint lang-config">&lt;Location "/cgi-bin"&gt;
     ScriptAlias /web/cgi-bin/
 &lt;/Location&gt;
-&lt;LocationMatch /cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)&gt;
+&lt;LocationMatch "/cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)"&gt;
     ScriptAlias /web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi
 &lt;/LocationMatch&gt;<br />
     </pre>
@@ -556,47 +597,6 @@ 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 eb8fc640993dcf2c0b57b3f214e58a4124f77c26..da042c04cc25afd617360ea2afb9bd99e632416f 100644 (file)
@@ -68,7 +68,10 @@ redirection d'URL</td></tr>
     plutôt les outils fournis par le module <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li>
@@ -79,16 +82,53 @@ redirection d'URL</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li>
 <li><a href="../urlmapping.html">Mise en correspondance des URLs avec le
 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
@@ -567,46 +607,6 @@ 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 44129cbc4447f26145b6881dbf8e6efb4f03e818..eee433c765b8ad680bf5db022ff57babb0db0db8 100644 (file)
     で提供されるツールを使用してください。</p>
 
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#order">処理の順番</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#order">処理の順番</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li>
 <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>
@@ -354,34 +382,6 @@ 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 db6fb49c06ba731b231461597947b563ee5ca6a7..b98b4e9d214b901b1df2d038b0708b4cfaea50bb 100644 (file)
     <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>°¡ Á¦°øÇϴ ±â´ÉÀ» ÀÌ¿ëÇ϶ó.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#order">󸮠¼ø¼­</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#order">󸮠¼ø¼­</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li>
 <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>
       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 d6e65c8b44a02ce6ec100f90f15db8775aa5a680..636de7e1f1620c43facfe02eb6bd83f1385864e0 100644 (file)
@@ -55,7 +55,10 @@ eşlenmesini sağlar ve URL yönlendirmesi yapar.</td></tr>
       sağlanan araçlar kullanılır.</p>
 
   </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#order">İşlem Sırası</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#alias">Alias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#aliasmatch">AliasMatch</a></li>
@@ -66,16 +69,47 @@ eşlenmesini sağlar ve URL yönlendirmesi yapar.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptalias">ScriptAlias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptaliasmatch">ScriptAliasMatch</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#order">İşlem Sırası</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code></li>
 <li><a href="../urlmapping.html">URL’lerin Dosya sistemi ile Eşlenmesi</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="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>
+
+    <div class="example"><p><code>
+    Alias /foo/bar /baz<br />
+    Alias /foo /gaz
+    </code></p></div>
+
+    <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>
+
+  </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>
@@ -493,40 +527,6 @@ 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>
-
-    <div class="example"><p><code>
-    Alias /foo/bar /baz<br />
-    Alias /foo /gaz
-    </code></p></div>
-
-    <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>
-
-  </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 b4e2711c046222aaa56e69728c4aa22856f69ab1..d6572d439559a8898bf0f8a80a558e5a44d17556 100644 (file)
@@ -170,7 +170,7 @@ Alias /foo /gaq
 
     <highlight language="config">
 Alias /image /ftp/pub/image
-&lt;Directory /ftp/pub/image&gt;
+&lt;Directory "/ftp/pub/image"&gt;
     Require all granted
 &lt;/Directory&gt;
     </highlight>
@@ -185,10 +185,10 @@ Alias /image /ftp/pub/image
     using <a href="../expr.html">expression syntax</a>.</p>
 
     <highlight language="config">
-&lt;Location /image&gt;
+&lt;Location "/image"&gt;
     Alias /ftp/pub/image
 &lt;/Location&gt;
-&lt;LocationMatch /error/(?&lt;NUMBER&gt;[0-9]+)&gt;
+&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
     Alias /usr/local/apache/errors/%{env:MATCH_NUMBER}.html
 &lt;/LocationMatch&gt;
     </highlight>
@@ -393,13 +393,13 @@ Redirect 303 /three http://example.com/other
     interpreted using <a href="../expr.html">expression syntax</a>.</p>
 
     <highlight language="config">
-&lt;Location /one&gt;
+&lt;Location "/one"&gt;
     Redirect permanent http://example.com/two
 &lt;/Location&gt;<br />
-&lt;Location /three&gt;
+&lt;Location "/three"&gt;
     Redirect 303 http://example.com/other
 &lt;/Location&gt;<br />
-&lt;LocationMatch /error/(?&lt;NUMBER&gt;[0-9]+)&gt;
+&lt;LocationMatch "/error/(?&lt;NUMBER&gt;[0-9]+)"&gt;
     Redirect permanent http://example.com/errors/%{env:MATCH_NUMBER}.html
 &lt;/LocationMatch&gt;<br />
     </highlight>
@@ -506,7 +506,7 @@ target as a CGI script</description>
     is essentially equivalent to:</p>
     <highlight language="config">
 Alias /cgi-bin/ /web/cgi-bin/
-&lt;Location /cgi-bin &gt;
+&lt;Location "/cgi-bin" &gt;
     SetHandler cgi-script
     Options +ExecCGI
 &lt;/Location&gt;
@@ -537,7 +537,7 @@ Alias /cgi-bin/ /web/cgi-bin/
     module="core">SetHandler</directive>, and <directive
     module="core">Options</directive> as in:
     <highlight language="config">
-&lt;Directory /usr/local/apache2/htdocs/cgi-bin &gt;
+&lt;Directory "/usr/local/apache2/htdocs/cgi-bin"&gt;
     SetHandler cgi-script
     Options ExecCGI
 &lt;/Directory&gt;
@@ -555,10 +555,10 @@ Alias /cgi-bin/ /web/cgi-bin/
     interpreted using <a href="../expr.html">expression syntax</a>.</p>
 
     <highlight language="config">
-&lt;Location /cgi-bin &gt;
+&lt;Location "/cgi-bin"&gt;
     ScriptAlias /web/cgi-bin/
 &lt;/Location&gt;
-&lt;LocationMatch /cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)&gt;
+&lt;LocationMatch "/cgi-bin/errors/(?&lt;NUMBER&gt;[0-9]+)"&gt;
     ScriptAlias /web/cgi-bin/errors/%{env:MATCH_NUMBER}.cgi
 &lt;/LocationMatch&gt;<br />
     </highlight>
index e770dca70d42254aaa154b5f343b7ba7f1c75d77..855227eb019c6824f8bb17261fc68894c63f2308 100644 (file)
@@ -35,7 +35,7 @@
 <p>This module makes it easy to restrict which handlers may be used for a
 request. A possible configuration would be:</p>
 
-<pre class="prettyprint lang-config">&lt;Location /&gt;
+<pre class="prettyprint lang-config">&lt;Location "/"&gt;
   AllowHandlers not server-info server-status balancer-manager ldap-status
 &lt;/Location&gt;</pre>
 
@@ -54,6 +54,7 @@ returns 403 FORBIDDEN to the client. This can be used with directives like
 <li><code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code></li>
 <li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</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="AllowHandlers" id="AllowHandlers">AllowHandlers</a> <a name="allowhandlers" id="allowhandlers">Directive</a></h2>
 <table class="directive">
@@ -72,7 +73,7 @@ set. The special vallue <code>all</code> can be used to allow all
 handlers again in a later config section, even if some headers were denied
 earlier in the configuration merge order:</p>
 
-<pre class="prettyprint lang-config">&lt;Location /server-status&gt;
+<pre class="prettyprint lang-config">&lt;Location "/server-status"&gt;
   AllowHandlers all
   SetHandler server-status
 &lt;/Location&gt;</pre>
@@ -80,7 +81,6 @@ earlier in the configuration merge order:</p>
 
 
 </div>
-
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_allowhandlers.html" title="English">&nbsp;en&nbsp;</a></p>
index 2dcd165af5b55c90dd92d2a0134e8b645daeea9c..aa4d16ccc1f43c99cd51f1201c2b7f4f5a5e027a 100644 (file)
@@ -33,7 +33,7 @@
 request. A possible configuration would be:</p>
 
 <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
   AllowHandlers not server-info server-status balancer-manager ldap-status
 &lt;/Location&gt;
 </highlight>
@@ -65,7 +65,7 @@ handlers again in a later config section, even if some headers were denied
 earlier in the configuration merge order:</p>
 
 <highlight language="config">
-&lt;Location /server-status&gt;
+&lt;Location "/server-status"&gt;
   AllowHandlers all
   SetHandler server-status
 &lt;/Location&gt;
index b5eb35cdda1e4bde0be74af0ffc70bd751f4986e..f3c0459586be0b8ab5a138d2244485e9849c3fec 100644 (file)
@@ -36,7 +36,7 @@
 <p>This module makes it easy to restrict what HTTP methods can
 used on an server. The most common configuration would be:</p>
 
-<pre class="prettyprint lang-config">&lt;Location /&gt;
+<pre class="prettyprint lang-config">&lt;Location "/"&gt;
    AllowMethods GET POST OPTIONS
 &lt;/Location&gt;</pre>
 
@@ -47,6 +47,7 @@ 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">
@@ -64,7 +65,7 @@ RFC given in upper case. The GET and HEAD methods are treated as
 equivalent. The <code>reset</code> keyword can be used
 turn off <code class="module"><a href="../mod/mod_allowmethods.html">mod_allowmethods</a></code> in a deeper nested context:</p>
 
-<pre class="prettyprint lang-config">&lt;Location /svn&gt;
+<pre class="prettyprint lang-config">&lt;Location "/svn"&gt;
    AllowMethods reset
 &lt;/Location&gt;</pre>
 
@@ -79,7 +80,6 @@ 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 21bdb70d0cfbc021736ca10d92a0ee4b86d0be43..bc50398c7218cba6784f1dbad20d33c757fd74cb 100644 (file)
@@ -48,6 +48,7 @@ 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">
@@ -81,7 +82,6 @@ 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 d743b657c3921b1d7a33b6cf10369c5c097fe94b..3fe9a0027625027a793c9ffd16eebdbbeaf166ad 100644 (file)
@@ -43,7 +43,7 @@ in order for it to rebuild correctly.
 used on an server. The most common configuration would be:</p>
 
 <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
    AllowMethods GET POST OPTIONS
 &lt;/Location&gt;
 </highlight>
@@ -67,7 +67,7 @@ equivalent. The <code>reset</code> keyword can be used
 turn off <module>mod_allowmethods</module> in a deeper nested context:</p>
 
 <highlight language="config">
-&lt;Location /svn&gt;
+&lt;Location "/svn"&gt;
    AllowMethods reset
 &lt;/Location&gt;
 </highlight>
index 1f5b596479c79254d3f10b3f30c0b80fba3598cc..4251b5e99236af9b487f7f1270b7c5e9ab7c5965 100644 (file)
@@ -47,12 +47,12 @@ HTTP</td></tr>
     <p>Pour des raisons historiques, ce module traitera aussi tout
     fichier dont le type MIME est <code>httpd/send-as-is</code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#usage">Mode d'emploi</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
 <li><code class="module"><a href="../mod/mod_cern_meta.html">mod_cern_meta</a></code></li>
index 1af9c46ad5de3397604672b0f0d953affc4e92cd..b56bc628837b50135b1a21dbab31f3570e298e85 100644 (file)
     <p>歴史的な理由により、このモジュールは mime タイプ
     <code>httpd/send-as-is</code> のファイルも処理します。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<p>このモジュールにディレクティブはありません。</p>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#usage">使用法</a></li>
-</ul><h3>参照</h3>
+</ul><h3 class="directives">ディレクティブ</h3>
+<p>このモジュールにディレクティブはありません。</p>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
 <li><code class="module"><a href="../mod/mod_cern_meta.html">mod_cern_meta</a></code></li>
index f2de124cc636c335c48ca1ca1d281f636de11b8e..86ba6a51bc96d116309dd00c9cc2d3ad3da511d4 100644 (file)
     <p>°ú°Å¿¡ ÀÌ ¸ðµâÀº mime typeÀÌ <code>httpd/send-as-is</code>ÀÎ
     ÆÄÀϵµ Ã³¸®Çß´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#usage">»ç¿ë¹ý</a></li>
-</ul><h3>Âü°í</h3>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_headers.html">mod_headers</a></code></li>
 <li><code class="module"><a href="../mod/mod_cern_meta.html">mod_cern_meta</a></code></li>
index d4885e84349c6f90940d5ad68c1582be720331a8..0e78f816d62d1a952c6289c9a06fecc40db20f96 100644 (file)
@@ -57,6 +57,7 @@
 <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">
@@ -251,7 +252,6 @@ 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 92c5cbd031e73c275982ccb92edf15a9ad48edc4..c2aa3f9a64b6b0222f84aff42f7dc05fc18e2dfc 100644 (file)
@@ -61,6 +61,7 @@
 <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">
@@ -280,7 +281,6 @@ 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 a8934c7c475a87bc1ce648d1705079d26859602f..9f5538060278a978f0c036df3b452f862198490e 100644 (file)
@@ -66,6 +66,7 @@
 <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">
@@ -162,7 +163,6 @@ 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 5860430e8243050f4513e293b4c03298a3f215da..6edd089b4e257d84a7787d62f45131080bc6ec7b 100644 (file)
@@ -55,6 +55,7 @@
 <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">
@@ -155,7 +156,6 @@ 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 7e1a8cead45b4855475dd58f1ff4d434891031f3..6d5a605beb6160b406cb43dfaf55044a1be3033c 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
@@ -256,48 +298,6 @@ 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 7354f919c1cd7481d755a838397bb86449d79faf..ec7e2221d5631475ce852aa6b0705908d997868f 100644 (file)
@@ -50,7 +50,11 @@ MD5</td></tr>
     via <code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code> constitue une bien meilleure
     alternative.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation de l'authentification à base de
+condensés</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestalgorithm">AuthDigestAlgorithm</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestdomain">AuthDigestDomain</a></li>
@@ -61,11 +65,7 @@ MD5</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestqop">AuthDigestQop</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestshmemsize">AuthDigestShmemSize</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation de l'authentification à base de
-condensés</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li>
 <li><code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code></li>
@@ -74,6 +74,48 @@ 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
@@ -278,48 +320,6 @@ 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 e79a40399527b3ac51c2efd7c6ad6528f3ee73de..ccdc540b0768aa08026a1e7adb43c2e162c4e048 100644 (file)
     <p>ÀÌ ¸ðµâÀº HTTP Digest AuthenticationÀ» ±¸ÇöÇÑ´Ù.
     ±×·¯³ª ¸¹Àº Å×½ºÆ®¸¦ °ÅÄ¡Áö ¾ÊÀº ½ÇÇèÀûÀΠ¸ðµâÀÌ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#using">Digest Authentication »ç¿ëÇϱâ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#msie">MS Internet Explorer ¹®Á¦ ÇذáÇϱâ</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestalgorithm">AuthDigestAlgorithm</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestdomain">AuthDigestDomain</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestqop">AuthDigestQop</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authdigestshmemsize">AuthDigestShmemSize</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#using">Digest Authentication »ç¿ëÇϱâ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#msie">MS Internet Explorer ¹®Á¦ ÇذáÇϱâ</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <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>
 <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
@@ -246,75 +315,6 @@ 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 6eb6c9731a78ddb8ec856013bb633e0ad738314b..58375e3e37122fde7ebff6c52fa0edef13715223 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
@@ -266,7 +513,7 @@ parser has been added in 2.4.4.</td></tr>
     <p>When a URI is accessed that is served by the handler <code>form-logout-handler</code>,
     the page specified by this directive will be shown to the end user. For example:</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location /logout&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/logout"&gt;
     SetHandler form-logout-handler
     AuthFormLogoutLocation "http://example.com/loggedout.html"
     Session on
@@ -361,7 +608,7 @@ parser has been added in 2.4.4.</td></tr>
     by the <code class="module"><a href="../mod/mod_authn_file.html">mod_authn_file</a></code> module.  Make sure
     that the chosen provider module is present in the server.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location /secure&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/secure"&gt;
     AuthType form
     AuthName "private area"
     AuthFormProvider  dbm
@@ -451,253 +698,6 @@ 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 1d47e5d23472be6bda67360e674de28888d1de6d..6c88bd5dbb0cfffdc88684ead23f704b50797e05 100644 (file)
     </p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#basicconfig">Configuration de base</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#standalone">Page de connexion dédiée</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#inline">Connexion à la volée</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#inlinepreservebody">Connexion à la volée avec
+    conservation du contenu</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#loggingout">Déconnexion</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#urlencoding">Noms d'utilisateurs et mots de
+    passe</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authformauthoritative">AuthFormAuthoritative</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authformbody">AuthFormBody</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authformsize">AuthFormSize</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authformusername">AuthFormUsername</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#basicconfig">Configuration de base</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#standalone">Page de connexion dédiée</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#inline">Connexion à la volée</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#inlinepreservebody">Connexion à la volée avec
-    conservation du contenu</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#loggingout">Déconnexion</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#urlencoding">Noms d'utilisateurs et mots de
-    passe</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_session.html">mod_session</a></code></li>
 <li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li>
 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="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 à
-des modules de plus bas niveau</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormAuthoritative On|Off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormAuthoritative 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>Base</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
-</table>
-    <p>Normalement, chacun des modules d'autorisation spécifiés par la
-    directive <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> va tenter de
-    vérifier l'identité de l'utilisateur, et si ce dernier n'est trouvé
-    dans aucun fournisseur, l'accès sera refusé. En définissant
-    explicitement la directive
-    <code class="directive">AuthFormAuthoritative</code> à <code>Off</code> on
-    confie les processus d'authentification et d'autorisation à des
-    modules ne s'appuyant pas sur des fournisseurs, si <strong>aucun
-    identifiant utilisateur</strong> ou aucune <strong>règle</strong> ne
-    correspond à l'identifiant utilisateur fourni. Ceci ne peut s'avérer
-    nécessaire que si l'on combine <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> avec
-    des modules tiers qui ne se configurent pas avec la directive
-    <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code>.
-    Lorsqu'on utilise de tels modules, la chronologie du processus est
-    déterminée dans leur code source, et n'est pas configurable.</p>
+<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="authformbody" id="authformbody">Directive</a> <a name="AuthFormBody" id="AuthFormBody">AuthFormBody</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 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>AuthFormBody <var>nom du champ</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_body</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="#authformbody">AuthFormBody</a></code>
-    spécifie le nom du champ HTML qui, s'il existe, contiendra le corps
-    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>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>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformdisablenostore" id="authformdisablenostore">Directive</a> <a name="AuthFormDisableNoStore" id="AuthFormDisableNoStore">AuthFormDisableNoStore</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Désactive l'en-tête CacheControl no-store sur la page de
-connexion</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormDisableNoStore <var>On|Off</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormDisableNoStore 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>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>Le drapeau <code class="directive"><a href="#authformdisablenostore">AuthFormDisableNoStore</a></code> supprime
-    l'envoi d'un en-tête <code>Cache-Control no-store</code> lorsqu'une
-    page avec code d'erreur 401 est renvoyée, si l'utilisateur n'est pas
-    encore connecté. Avec cette en-tête, il est plus difficile pour une
-    application <code>ecmascript</code> de resoumettre un formulaire de connexion, et
-    ainsi révéler le nom d'utilisateur et le mot de passe à
-    l'application sous-jacente. Vous devez être conscient des risques
-    encourus si vous le désactivez.</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>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformfakebasicauth" id="authformfakebasicauth">Directive</a> <a name="AuthFormFakeBasicAuth" id="AuthFormFakeBasicAuth">AuthFormFakeBasicAuth</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Simule une en-tête d'authentification de base</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormFakeBasicAuth <var>On|Off</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormFakeBasicAuth 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>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>Le drapeau <code class="directive"><a href="#authformfakebasicauth">AuthFormFakeBasicAuth</a></code>
-    détermine si une en-tête d'<code>Authentification de base</code>
-    sera ajoutée aux en-têtes de la requête. On peut utiliser cette
-    méthode pour présenter le nom d'utilisateur et le mot de passe à
-    l'application sous-jacente, sans que cette dernière ait besoin de
-    connaître la manière dont le processus de connexion a été mené à
-    bien.</p>
+      <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>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="directive-section"><h2><a name="authformlocation" id="authformlocation">Directive</a> <a name="AuthFormLocation" id="AuthFormLocation">AuthFormLocation</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire qui contiendra l'URL vers
-laquelle l'utilisateur sera redirigé en cas de connexion
-réussie</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLocation <var>nom du champ</var></code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_location</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="#authformlocation">AuthFormLocation</a></code>
-    spécifie le nom du champ HTML qui, s'il existe, contiendra l'URL
-    vers laquelle rediriger le navigateur en cas de connexion
-    réussie.</p>
 
+      <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>
-<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>
-<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>
+      <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 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="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="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>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</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 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>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>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 à
+des modules de plus bas niveau</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormAuthoritative On|Off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormAuthoritative 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>Base</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_auth_form</td></tr>
+</table>
+    <p>Normalement, chacun des modules d'autorisation spécifiés par la
+    directive <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code> va tenter de
+    vérifier l'identité de l'utilisateur, et si ce dernier n'est trouvé
+    dans aucun fournisseur, l'accès sera refusé. En définissant
+    explicitement la directive
+    <code class="directive">AuthFormAuthoritative</code> à <code>Off</code> on
+    confie les processus d'authentification et d'autorisation à des
+    modules ne s'appuyant pas sur des fournisseurs, si <strong>aucun
+    identifiant utilisateur</strong> ou aucune <strong>règle</strong> ne
+    correspond à l'identifiant utilisateur fourni. Ceci ne peut s'avérer
+    nécessaire que si l'on combine <code class="module"><a href="../mod/mod_auth_form.html">mod_auth_form</a></code> avec
+    des modules tiers qui ne se configurent pas avec la directive
+    <code class="directive"><a href="#authformprovider">AuthFormProvider</a></code>.
+    Lorsqu'on utilise de tels modules, la chronologie du processus est
+    déterminée dans leur code source, et n'est pas configurable.</p>
 
 </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>
+<div class="directive-section"><h2><a name="authformbody" id="authformbody">Directive</a> <a name="AuthFormBody" id="AuthFormBody">AuthFormBody</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
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire contenant le 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>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#Syntax">Syntaxe:</a></th><td><code>AuthFormBody <var>nom du champ</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_body</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>La directive <code class="directive"><a href="#authformbody">AuthFormBody</a></code>
+    spécifie le nom du champ HTML qui, s'il existe, contiendra le corps
+    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
@@ -338,11 +445,193 @@ requ
 
 </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>
+<div class="directive-section"><h2><a name="authformdisablenostore" id="authformdisablenostore">Directive</a> <a name="AuthFormDisableNoStore" id="AuthFormDisableNoStore">AuthFormDisableNoStore</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#Description">Description:</a></th><td>Désactive l'en-tête CacheControl no-store sur la page de
+connexion</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormDisableNoStore <var>On|Off</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormDisableNoStore 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>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>Le drapeau <code class="directive"><a href="#authformdisablenostore">AuthFormDisableNoStore</a></code> supprime
+    l'envoi d'un en-tête <code>Cache-Control no-store</code> lorsqu'une
+    page avec code d'erreur 401 est renvoyée, si l'utilisateur n'est pas
+    encore connecté. Avec cette en-tête, il est plus difficile pour une
+    application <code>ecmascript</code> de resoumettre un formulaire de connexion, et
+    ainsi révéler le nom d'utilisateur et le mot de passe à
+    l'application sous-jacente. Vous devez être conscient des risques
+    encourus si vous le désactivez.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformfakebasicauth" id="authformfakebasicauth">Directive</a> <a name="AuthFormFakeBasicAuth" id="AuthFormFakeBasicAuth">AuthFormFakeBasicAuth</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Simule une en-tête d'authentification de base</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormFakeBasicAuth <var>On|Off</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>AuthFormFakeBasicAuth 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>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>Le drapeau <code class="directive"><a href="#authformfakebasicauth">AuthFormFakeBasicAuth</a></code>
+    détermine si une en-tête d'<code>Authentification de base</code>
+    sera ajoutée aux en-têtes de la requête. On peut utiliser cette
+    méthode pour présenter le nom d'utilisateur et le mot de passe à
+    l'application sous-jacente, sans que cette dernière ait besoin de
+    connaître la manière dont le processus de connexion a été mené à
+    bien.</p>
+
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="directive-section"><h2><a name="authformlocation" id="authformlocation">Directive</a> <a name="AuthFormLocation" id="AuthFormLocation">AuthFormLocation</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Le nom du champ de formulaire qui contiendra l'URL vers
+laquelle l'utilisateur sera redirigé en cas de connexion
+réussie</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthFormLocation <var>nom du champ</var></code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Défaut:</a></th><td><code>httpd_location</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="#authformlocation">AuthFormLocation</a></code>
+    spécifie le nom du champ HTML qui, s'il existe, contiendra l'URL
+    vers laquelle rediriger le navigateur en cas de connexion
+    réussie.</p>
+
+</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>
+<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>
@@ -497,295 +786,6 @@ connexion</td></tr>
     d'utilisateur 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="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>
 <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 57450fd5ae04d686cb03cbb6c16e0681821176f8..8f2dc1fe24f91f1f9eb95b9913fb7e1571c37094 100644 (file)
@@ -358,7 +358,7 @@ SessionCryptoPassphrase secret
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Location /secure&gt;
+&lt;Location "/secure"&gt;
     AuthType form
     AuthName "private area"
     AuthFormProvider  dbm
@@ -634,7 +634,7 @@ parser has been added in 2.4.4.</compatibility>
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Location /logout&gt;
+&lt;Location "/logout"&gt;
     SetHandler form-logout-handler
     AuthFormLogoutLocation "http://example.com/loggedout.html"
     Session on
index 8d8076f66fd6c51222646027d470f17c20088b67..ed7c11af71cc79da23b09f462cef5f4783e4d1d9 100644 (file)
 </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
@@ -165,49 +208,6 @@ 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 959aceac659f19fa0126006a8dc565022f7d86fa..2a645d6acfaec3a03fe10cc078f509fff8f63021 100644 (file)
@@ -59,7 +59,10 @@ authentifi
     module <code class="module"><a href="../mod/mod_authn_anon.html">mod_authn_anon</a></code> est invoqué en affectant la
     valeur <code>anon</code> à la directive <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous">Anonymous</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_logemail">Anonymous_LogEmail</a></li>
@@ -67,10 +70,52 @@ authentifi
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_nouserid">Anonymous_NoUserID</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<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>
+<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">
@@ -180,51 +225,6 @@ 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 c145264dc049aa3f14fb091893ce3bd744d25257..2e1033cff4bc63d2163397c39c660c8085a828c0 100644 (file)
     <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code> に
     <code>anon</code> という値を設定することで起動されます。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">例</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous">Anonymous</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_logemail">Anonymous_LogEmail</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_nouserid">Anonymous_NoUserID</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<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>
+<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">
     少なくとも一つの '@' と '.' を含んでいるかどうかを調べます
     (上の <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 686d382397d3281059c1e3c27fe9137634722a96..915848e0bc0546d43bc826ed88fbd8ff12977a7e 100644 (file)
     <p><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code>À» »ç¿ëÇÒ¶§ <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>ÀÇ
     °ªÀ¸·Î <code>anon</code>À» ¼³Á¤Çϸé ÀÌ ¸ðµâÀ» »ç¿ëÇÑ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">¿¹Á¦</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous">Anonymous</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_logemail">Anonymous_LogEmail</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_nouserid">Anonymous_NoUserID</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#anonymous_verifyemail">Anonymous_VerifyEmail</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<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>
+<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">
     Æ÷ÇÔÇÏ´ÂÁö °Ë»çÇÑ´Ù (À§ÀÇ <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 42800860bdd230a168e9c93f9a2afd45ca78cd2b..4192656142d8173507d1ed37285361d7692c350a 100644 (file)
 </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
@@ -176,78 +248,6 @@ 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 72d5537fe36b78e7734b370fe57b03199b420864..26b30bd01496a3231a682414406350f71ef7ecf3 100644 (file)
     <code class="module"><a href="../mod/mod_authn_core.html">mod_authn_core</a></code> sont communes à tous les
     fournisseurs d'authentification.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#authnalias">Création d'alias de fournisseurs
+d'authentification</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authname">AuthName</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authnprovideralias">&lt;AuthnProviderAlias&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authtype">AuthType</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#authnalias">Création d'alias de fournisseurs
-d'authentification</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+<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">
@@ -186,84 +264,6 @@ 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 703ddb9c189004f2fa8d9a116c916b4f6e09b242..065c53c56d6d8039be0a08de927ff397dbae07f4 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="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>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserPWQuery <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_authn_dbd</td></tr>
-</table>
-    <p>The <code class="directive">AuthDBDUserPWQuery</code> specifies an
-    SQL query to look up a password for a specified 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">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
-
-    <p>The first column value of the first row returned by the query
-    statement should be a string containing the encrypted password.
-    Subsequent rows will be ignored.  If no rows are returned, the user
-    will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
-    <p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
-    or higher, any additional column values in the first row returned by
-    the query statement will be stored as environment variables with
-    names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
-    </p>
-    <p>The encrypted password format depends on which authentication
-    frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
-    <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="directive-section"><h2><a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a> <a name="authdbduserrealmquery" id="authdbduserrealmquery">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 hash for a user and realm.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserRealmQuery <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_authn_dbd</td></tr>
-</table>
-    <p>The <code class="directive">AuthDBDUserRealmQuery</code> specifies an
-    SQL query to look up a password for a specified user and realm in a
-    digest authentication process.
-    The user's ID and the realm, in that order, will be passed as string
-    parameters when the SQL query is executed.  They may be referenced
-    within the query statement using <code>%s</code> format specifiers.</p>
-    <pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
-
-    <p>The first column value of the first row returned by the query
-    statement should be a string containing the encrypted password.
-    Subsequent rows will be ignored.  If no rows are returned, the user
-    will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
-    <p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
-    or higher, any additional column values in the first row returned by
-    the query statement will be stored as environment variables with
-    names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
-    </p>
-    <p>The encrypted password format depends on which authentication
-    frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
-    <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>
 
@@ -163,7 +99,7 @@ DBDKeep 8
 DBDMax  20
 DBDExptime 300
 
-&lt;Directory /usr/www/myhost/private&gt;
+&lt;Directory "/usr/www/myhost/private"&gt;
   # mod_authn_core and mod_auth_basic configuration
   # for mod_authn_dbd
   AuthType Basic
@@ -212,6 +148,70 @@ configuration required in some web applications.
   <p>Please read <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> documentation for more information
   about security on this scope.</p>
 </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>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserPWQuery <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_authn_dbd</td></tr>
+</table>
+    <p>The <code class="directive">AuthDBDUserPWQuery</code> specifies an
+    SQL query to look up a password for a specified 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">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
+
+    <p>The first column value of the first row returned by the query
+    statement should be a string containing the encrypted password.
+    Subsequent rows will be ignored.  If no rows are returned, the user
+    will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
+    <p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
+    or higher, any additional column values in the first row returned by
+    the query statement will be stored as environment variables with
+    names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
+    </p>
+    <p>The encrypted password format depends on which authentication
+    frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
+    <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="directive-section"><h2><a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a> <a name="authdbduserrealmquery" id="authdbduserrealmquery">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 hash for a user and realm.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthDBDUserRealmQuery <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_authn_dbd</td></tr>
+</table>
+    <p>The <code class="directive">AuthDBDUserRealmQuery</code> specifies an
+    SQL query to look up a password for a specified user and realm in a
+    digest authentication process.
+    The user's ID and the realm, in that order, will be passed as string
+    parameters when the SQL query is executed.  They may be referenced
+    within the query statement using <code>%s</code> format specifiers.</p>
+    <pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
+
+    <p>The first column value of the first row returned by the query
+    statement should be a string containing the encrypted password.
+    Subsequent rows will be ignored.  If no rows are returned, the user
+    will not be authenticated through <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
+    <p>If httpd was built against <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a> version 1.3.0
+    or higher, any additional column values in the first row returned by
+    the query statement will be stored as environment variables with
+    names of the form <code>AUTHENTICATE_<var>COLUMN</var></code>.
+    </p>
+    <p>The encrypted password format depends on which authentication
+    frontend (e.g. <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> or
+    <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>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_authn_dbd.html" title="English">&nbsp;en&nbsp;</a> |
index e4a127f9278a871c957e1d3b8706ded97db46bab..7274e6d071bb10c681928b0564198588f0c5e2e3 100644 (file)
@@ -48,18 +48,18 @@ SQL</td></tr>
     <code class="module"><a href="../mod/mod_auth_digest.html">mod_auth_digest</a></code>, on peut invoquer ce module en
     affectant la valeur <code>dbd</code> à la 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>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#authdbduserpwquery">AuthDBDUserPWQuery</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#authdbduserrealmquery">AuthDBDUserRealmQuery</a></li>
-</ul>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#socache">Performances et mise en cache</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple de configuration</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#exposed">Mise à disposition des informations de connexion</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Prévention contre les injections SQL</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#authdbduserpwquery">AuthDBDUserPWQuery</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#authdbduserrealmquery">AuthDBDUserRealmQuery</a></li>
+</ul>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_authn_core.html#authname">AuthName</a></code></li>
 <li><code class="directive"><a href="../mod/mod_authn_core.html#authtype">AuthType</a></code></li>
@@ -75,81 +75,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="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
-utilisateur</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserPWQuery <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_authn_dbd</td></tr>
-</table>
-    <p>La directive <code class="directive">AuthDBDUserPWQuery</code> permet de
-    spécifier une requête servant à vérifier le mot de passe d'un
-    utilisateur donné. L'identifiant utilisateur sera transmis comme
-    paramètre sous forme d'une seule chaîne de caractères lorsque la
-    requête sera exécutée. Cet identifiant est référencé dans la requête
-    en utilisant le spécificateur de format <code>%s</code>.</p>
-    <pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
-
-    <p>La première colonne du premier enregistrement renvoyé par la
-    requête se présentera sous la forme d'une chaîne de caractères
-    contenant le mot de passe chiffré. Les enregistrements suivants sont
-    ignorés. Si aucun enregistrement n'est renvoyé, l'utilisateur ne
-    sera pas authentifié par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
-    <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>, toute valeur de colonne supplémentaire
-    du premier enregistrement renvoyé par la requête sera stockée dans
-    une variable d'environnement dont le nom aura la forme
-    <code>AUTHENTICATE_<var>valeur-colonne</var></code>.
-    </p>
-    <p>Le format du mot de passe chiffré dépend du frontal
-    d'authentification utilisé (par exemple
-    <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
-    <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="directive-section"><h2><a name="authdbduserrealmquery" id="authdbduserrealmquery">Directive</a> <a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Requête SQL servant à vérifier une empreinte de mot de
-passe pour un utilisateur et un identifiant d'authentification.
-</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserRealmQuery <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_authn_dbd</td></tr>
-</table>
-    <p>La directive <code class="directive">AuthDBDUserRealmQuery</code> spécifie
-    une requête SQL servant à vérifier une empreinte de mot
-    de passe pour un utilisateur et un identifiant d'authentification
-    donnés au cours d'un processus d'authentification digest. Les
-    identifiants de l'utilisateur et de l'authentification
-    sont passés dans cet ordre comme paramètres à l'exécution de la
-    requête. Ils sont référencés dans la chaîne de la requête en
-    utilisant des spécificateurs de format <code>%s</code>.</p>
-    <pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
-
-    <p>La première colonne du premier enregistrement renvoyé par la
-    requête se présentera sous la forme d'une chaîne de caractères
-    contenant le mot de passe chiffré. Les enregistrements suivants
-    seront ignorés. Si aucun enregistrement n'est renvoyé, l'utilisateur
-    ne sera pas authentifié par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
-    <p>Si httpd a été compilé avec une version 1.3.0 ou supérieure de
-    l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne supplémentaire
-    du premier enregistrement renvoyé par la requête sera stockée dans
-    une variable d'environnement avec un nom de la forme
-    <code>AUTHENTICATE_<var>COLONNE</var></code>.
-    </p>
-    <p>Le format du mot de passe chiffré dépend du frontal
-    d'authentification utilisé (par exemple
-    <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
-    <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>
 
@@ -233,6 +158,81 @@ configuration n
   <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour plus d'informations à propos de la
   sécurité dans ce domaine.</p>
 </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
+utilisateur</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserPWQuery <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_authn_dbd</td></tr>
+</table>
+    <p>La directive <code class="directive">AuthDBDUserPWQuery</code> permet de
+    spécifier une requête servant à vérifier le mot de passe d'un
+    utilisateur donné. L'identifiant utilisateur sera transmis comme
+    paramètre sous forme d'une seule chaîne de caractères lorsque la
+    requête sera exécutée. Cet identifiant est référencé dans la requête
+    en utilisant le spécificateur de format <code>%s</code>.</p>
+    <pre class="prettyprint lang-config">AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"</pre>
+
+    <p>La première colonne du premier enregistrement renvoyé par la
+    requête se présentera sous la forme d'une chaîne de caractères
+    contenant le mot de passe chiffré. Les enregistrements suivants sont
+    ignorés. Si aucun enregistrement n'est renvoyé, l'utilisateur ne
+    sera pas authentifié par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
+    <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>, toute valeur de colonne supplémentaire
+    du premier enregistrement renvoyé par la requête sera stockée dans
+    une variable d'environnement dont le nom aura la forme
+    <code>AUTHENTICATE_<var>valeur-colonne</var></code>.
+    </p>
+    <p>Le format du mot de passe chiffré dépend du frontal
+    d'authentification utilisé (par exemple
+    <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
+    <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="directive-section"><h2><a name="authdbduserrealmquery" id="authdbduserrealmquery">Directive</a> <a name="AuthDBDUserRealmQuery" id="AuthDBDUserRealmQuery">AuthDBDUserRealmQuery</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Requête SQL servant à vérifier une empreinte de mot de
+passe pour un utilisateur et un identifiant d'authentification.
+</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>AuthDBDUserRealmQuery <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_authn_dbd</td></tr>
+</table>
+    <p>La directive <code class="directive">AuthDBDUserRealmQuery</code> spécifie
+    une requête SQL servant à vérifier une empreinte de mot
+    de passe pour un utilisateur et un identifiant d'authentification
+    donnés au cours d'un processus d'authentification digest. Les
+    identifiants de l'utilisateur et de l'authentification
+    sont passés dans cet ordre comme paramètres à l'exécution de la
+    requête. Ils sont référencés dans la chaîne de la requête en
+    utilisant des spécificateurs de format <code>%s</code>.</p>
+    <pre class="prettyprint lang-config">AuthDBDUserRealmQuery "SELECT password FROM authn WHERE user = %s AND realm = %s"</pre>
+
+    <p>La première colonne du premier enregistrement renvoyé par la
+    requête se présentera sous la forme d'une chaîne de caractères
+    contenant le mot de passe chiffré. Les enregistrements suivants
+    seront ignorés. Si aucun enregistrement n'est renvoyé, l'utilisateur
+    ne sera pas authentifié par <code class="module"><a href="../mod/mod_authn_dbd.html">mod_authn_dbd</a></code>.</p>
+    <p>Si httpd a été compilé avec une version 1.3.0 ou supérieure de
+    l'<a class="glossarylink" href="../glossary.html#apr" title="voir glossaire">APR</a>, toute valeur de colonne supplémentaire
+    du premier enregistrement renvoyé par la requête sera stockée dans
+    une variable d'environnement avec un nom de la forme
+    <code>AUTHENTICATE_<var>COLONNE</var></code>.
+    </p>
+    <p>Le format du mot de passe chiffré dépend du frontal
+    d'authentification utilisé (par exemple
+    <code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code> ou
+    <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>
 <div class="bottomlang">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authn_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 9eda1bf2083524612f0487426b2f514e8ec9167d..2ee2e9fa6d6fed7eaa7a57cc31e66dadcda98445 100644 (file)
@@ -82,7 +82,7 @@ DBDKeep 8
 DBDMax  20
 DBDExptime 300
 
-&lt;Directory /usr/www/myhost/private&gt;
+&lt;Directory "/usr/www/myhost/private"&gt;
   # mod_authn_core and mod_auth_basic configuration
   # for mod_authn_dbd
   AuthType Basic
index 66cf82cbc72854df51267c096a1a133fef175b81..59671c91cfd2f63091b084249a291a5ca0841bc6 100644 (file)
@@ -66,6 +66,7 @@
 <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">
@@ -137,7 +138,6 @@ 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 da49cd167045547180a68a1cd972da6597a8ce55..fba73c24d2f027ebc71118986251745cd45d0eed 100644 (file)
@@ -66,6 +66,7 @@ passe</a></li>
 <li><code class="program"><a href="../programs/htpasswd.html">htpasswd</a></code></li>
 <li><code class="program"><a href="../programs/htdbm.html">htdbm</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="authdbmtype" id="authdbmtype">Directive</a> <a name="AuthDBMType" id="AuthDBMType">AuthDBMType</a></h2>
 <table class="directive">
@@ -144,7 +145,6 @@ des utilisateurs et de leurs mots de passe</td></tr>
     utilitaire permettant de maintenir les fichiers DBM.</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 797ea0ced7f45f150bdd8bb7a9e3ef6754d015ce..1f2892ab154504b13c9a84f77147adefd0e2655d 100644 (file)
@@ -68,6 +68,7 @@
   <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 3b7cbd0492826ac1e072b951ce3d993fa55ce929..82b3e74b4ef9481ba72b74d1eff23000526af5e1 100644 (file)
@@ -64,6 +64,7 @@
   <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 e9f8a777552390dc3f240150470acecac176e15b..b221c885bac71994e6ab2219fca7da18c12952a5 100644 (file)
@@ -62,6 +62,7 @@
 <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">
@@ -127,7 +128,6 @@ 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 91dd1d299f73ef40699219f09373e6d63da151a5..2eba3a8034768d6dec70c2d1d1fe5f786cf2226a 100644 (file)
@@ -63,6 +63,7 @@ texte</td></tr>
 <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">
@@ -135,7 +136,6 @@ 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 71dde525f8a75c6f6dde658a93dddf998eb6f6b8..30070d0155e2bad5540e6102fc1b6e4ec135cc76 100644 (file)
@@ -67,6 +67,7 @@
 <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 a0c8410e8cf31a614537eee27bc329a7021328bc..e4cba5699f1395fa90b2d9afe0a36b1672ff8814 100644 (file)
@@ -63,6 +63,7 @@
 <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 fb4cd702ce34e09ef59a16ca1b274a47c619b628..6a13c31ef00faaee17f8998a6adae95065458faf 100644 (file)
@@ -53,6 +53,61 @@ the load on backends</td></tr>
 </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>
@@ -167,61 +222,6 @@ 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 836898740474824a9ab76685385cf2b0b2d64f4d..768b64c3415e850475c1082f29a6f4a35415668d 100644 (file)
@@ -38,7 +38,12 @@ la charge des serveurs d'arri
     <p>Maintient un cache des données d'authentification pour limiter
     les sollicitations du serveur d'arrière-plan.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#intro">Mise en cache des données d'authentification</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#usage">Utilisation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#dev">La mise en cache avec les modules tiers</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authncachecontext">AuthnCacheContext</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authncacheenable">AuthnCacheEnable</a></li>
@@ -46,12 +51,74 @@ la charge des serveurs d'arri
 <li><img alt="" src="../images/down.gif" /> <a href="#authncachesocache">AuthnCacheSOCache</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authncachetimeout">AuthnCacheTimeout</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#intro">Mise en cache des données d'authentification</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#usage">Utilisation</a></li>
-<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>
+<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">
@@ -184,73 +251,6 @@ 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 b5d3254f724cc7368c6a5a794709cea864b64c8b..e3718413886bc5f1e220cd302a2ee5caa7abb282 100644 (file)
@@ -72,7 +72,7 @@ the load on backends</description>
     <highlight language="config">
 #AuthnCacheSOCache is optional.  If specified, it is server-wide
 AuthnCacheSOCache dbm
-&lt;Directory /usr/www/myhost/private&gt;
+&lt;Directory "/usr/www/myhost/private"&gt;
     AuthType Basic
     AuthName "Cached Authentication Example"
     AuthBasicProvider socache dbd
index 55e3a674ff8423b7504c28e2d33093c4dbb53762..398d8129b8a322e0b122151ff82c4341979c6ea9 100644 (file)
@@ -65,127 +65,6 @@ 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>
 
@@ -246,7 +125,7 @@ while (FCGI::accept &gt;= 0) {
 
       Example configuration:
 <pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType Basic
   AuthName "Restricted"
   AuthBasicProvider FooAuthn
@@ -287,7 +166,7 @@ while (FCGI::accept &gt;= 0) {
 
       Example configuration:
 <pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10103/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType ...
   AuthName ...
   AuthBasicProvider ...
@@ -338,7 +217,7 @@ while (FCGI::accept &gt;= 0) {
 
       Example configuration:
 <pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType Basic
   AuthName "Restricted"
   AuthBasicProvider FooAuthnz
@@ -386,7 +265,7 @@ while (FCGI::accept &gt;= 0) {
 
       Example configuration:
 <pre class="prettyprint lang-config">AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10103/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType ...
   AuthName ...
   AuthnzFcgiCheckAuthnProvider FooAuthn \
@@ -527,6 +406,127 @@ 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 5cefa686e951afc750c4562045b4458c58b96a52..8430e6feb7186c12492b6957ac5d8dd08566afd3 100644 (file)
@@ -110,7 +110,7 @@ while (FCGI::accept >= 0) {
       Example configuration:
 <highlight language="config">
 AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10102/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType Basic
   AuthName "Restricted"
   AuthBasicProvider FooAuthn
@@ -153,7 +153,7 @@ while (FCGI::accept >= 0) {
       Example configuration:
 <highlight language="config">
 AuthnzFcgiDefineProvider authz FooAuthz fcgi://localhost:10103/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType ...
   AuthName ...
   AuthBasicProvider ...
@@ -206,7 +206,7 @@ while (FCGI::accept >= 0) {
       Example configuration:
 <highlight language="config">
 AuthnzFcgiDefineProvider authnz FooAuthnz fcgi://localhost:10103/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType Basic
   AuthName "Restricted"
   AuthBasicProvider FooAuthnz
@@ -257,7 +257,7 @@ while (FCGI::accept >= 0) {
       Example configuration:
 <highlight language="config">
 AuthnzFcgiDefineProvider authn FooAuthn fcgi://localhost:10103/
-&lt;Location /protected/&gt;
+&lt;Location "/protected/"&gt;
   AuthType ...
   AuthName ...
   AuthnzFcgiCheckAuthnProvider FooAuthn \
index a371fd83eeacba51cdd2bf3ffa8a5ef9962a7932..465ec9b022d818c1797b85d17a658c0a36fc1a94 100644 (file)
@@ -101,620 +101,6 @@ 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="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>
-
-</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>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>
-
-</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>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
-
-#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>
-
-
-
-</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>
-
-</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 <em>ldap-attribute</em>, <em>ldap-user</em>, and <em>ldap-group</em> (single-level only)
-    authorization checks use comparisons.</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>
-
-    <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>
-
-</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="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> If the verbatim username can't directly bind, but needs some
-     cosmetic transformation, see <code class="directive"><a href="#authldapinitialbindpattern">
-     AuthLDAPInitialBindPattern</a></code>.</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>
-
-     <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>
-
-<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> 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>
-
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
-
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</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>
-
-<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 0</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, defaulted to 10 in 2.4.x and early 2.5</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="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, keep 
-   <code class="directive">AuthLDAPMaxSubGroupDepth</code> set to zero.</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 <code class="directive"><a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></code>. 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> This directive only has effect when this module is used for 
-    authentication.</p>
-
-</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> This directive only has effect when this module is used for
-    authentication.</p>
-
-</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> The <em>ldap-filter</em> and <em>ldap-dn</em> authorization
-    checks use searches.</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> 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>
-
-</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="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><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>
-
-<dl>
-<dt>ldap</dt>
-
-        <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>
-
-<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>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>
-
-<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>
-
-<dt>attribute</dt>
-
-        <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>
-
-        <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>
-
-<dt>filter</dt>
-
-        <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. The keyword
-        <code>none</code> disables the use of a filter; this is 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>
-
-    <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>
-
-    <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>
-
-<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>
 
@@ -1000,424 +386,1038 @@ Require ldap-user "Joe Manager"</pre>
     ldap-user</code> line is needed to support all values of the attribute
     in the user's entry.</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 <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>
+
+
+
+<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>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>
+
+
+    <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
+
+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
+
+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
+
+dn: cn=Temporary Employees, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Jim Swenson, o=Example
+uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
+
+    <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>
+
+
+    <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>
+
+
+<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
+
+    <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>
+
+    <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>
+
+
+    <p>Behavior of this directive is modified by the <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>
+    directive.</p>
+
+
+<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
+
+    <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>
+
+    <p>The following directive would grant access to anyone with
+    the attribute employeeType = active</p>
+
+    <pre class="prettyprint lang-config">Require ldap-attribute "employeeType=active"</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>
+
+
+
+
+<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
+
+    <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 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>
+
+
+    <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>
+
+    <p>When using an <a href="../expr.html">expression</a> within the filter, care
+    must be taken to ensure that LDAP filters are escaped correctly to guard against
+    LDAP injection. The ldap function can be used for this purpose.</p>
+
+<pre class="prettyprint lang-config">&lt;LocationMatch "^/dav/(?&lt;SITENAME&gt;[^/]+)/"&gt;
+  Require ldap-filter "(memberOf=cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}},ou=Websites,o=Example)"
+&lt;/LocationMatch&gt;</pre>
+
+
+
+
+<h3><a name="reqsearch" id="reqsearch">Require ldap-search</a></h3>
+
+    <p>The <code>Require ldap-search</code> directive allows the
+    administrator to grant access based on a generic LDAP search filter using an
+    <a href="../expr.html">expression</a>. If there is exactly one match to the search filter,
+    regardless of the distinguished name, access is granted.</p>
+
+    <p>The following directive would grant access to URLs that match the given objects in the
+    LDAP server:</p>
+
+<pre class="prettyprint lang-config">&lt;LocationMatch "^/dav/(?&lt;SITENAME&gt;[^/]+)/"&gt;
+Require ldap-search "(cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}} Website)"
+&lt;/LocationMatch&gt;</pre>
+
+
+    <p>Note: care must be taken to ensure that any expressions are properly escaped to guard
+    against LDAP injection. The <strong>ldap</strong> function can be used as per the example
+    above.</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>
+
+      <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>
+
+      <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>
+
+      <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>
+
+      </li>
+
+      <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>
+
+      </li>
 
+      <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>
 
 
-<h3><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
+        <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>
 
-    <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>
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
 
-    <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>
+        <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>
 
-    <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>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>
 
-dn: cn=Managers, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Bob Ellis, o=Example
-uniqueMember: cn=Tom Jackson, o=Example
+    <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>
 
-dn: cn=Administrators, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Barbara Jenson, o=Example
-uniqueMember: cn=Fred User, o=Example
+    <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>
 
-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>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>
 
-dn: cn=Temporary Employees, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Jim Swenson, o=Example
-uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
+    <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>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>
+    <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>
 
-    <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>
+    <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>
 
+    <p>This has the potential to dramatically simplify the coding and
+    configuration required in some web applications.</p>
 
-<h3><a name="reqdn" id="reqdn">Require ldap-dn</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="activedirectory" id="activedirectory">Using Active Directory</a></h2>
 
-    <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>
+    <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>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>
+    <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>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>Behavior of this directive is modified by the <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>
-    directive.</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="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
 
-    <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>
+    <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 anyone with
-    the attribute employeeType = active</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">Using Microsoft
+    FrontPage with mod_authnz_ldap</a></h2>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute "employeeType=active"</pre>
+    <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>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>
 
-    <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>
+<h3><a name="howitworks" id="howitworks">How It Works</a></h3>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" "status=active"</pre>
+    <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>
 
+    <p>Once directives have been added as specified above,
+    FrontPage users will be able to perform all management
+    operations from the FrontPage client.</p>
 
 
+<h3><a name="fpcaveats" id="fpcaveats">Caveats</a></h3>
 
-<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
+    <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>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>
+      <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>
 
-    <p>The following directive would grant access to anyone having a cell phone
-    and is in the marketing department</p>
+      
+      <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>
 
-    <pre class="prettyprint lang-config">Require ldap-filter "&amp;(cell=*)(department=marketing)"</pre>
+      <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 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>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="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>When using an <a href="../expr.html">expression</a> within the filter, care
-    must be taken to ensure that LDAP filters are escaped correctly to guard against
-    LDAP injection. The ldap function can be used for this purpose.</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>
 
-<pre class="prettyprint lang-config">&lt;LocationMatch "^/dav/(?&lt;SITENAME&gt;[^/]+)/"&gt;
-  Require ldap-filter "(memberOf=cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}},ou=Websites,o=Example)"
-&lt;/LocationMatch&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="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>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
 
+#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>
 
-<h3><a name="reqsearch" id="reqsearch">Require ldap-search</a></h3>
 
-    <p>The <code>Require ldap-search</code> directive allows the
-    administrator to grant access based on a generic LDAP search filter using an
-    <a href="../expr.html">expression</a>. If there is exactly one match to the search filter,
-    regardless of the distinguished name, access is granted.</p>
 
-    <p>The following directive would grant access to URLs that match the given objects in 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="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>
 
-<pre class="prettyprint lang-config">&lt;LocationMatch "^/dav/(?&lt;SITENAME&gt;[^/]+)/"&gt;
-Require ldap-search "(cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}} Website)"
-&lt;/LocationMatch&gt;</pre>
+    <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>Note: care must be taken to ensure that any expressions are properly escaped to guard
-    against LDAP injection. The <strong>ldap</strong> function can be used as per the example
-    above.</p>
+    <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>
 
+    <p> The <em>ldap-attribute</em>, <em>ldap-user</em>, and <em>ldap-group</em> (single-level only)
+    authorization checks use comparisons.</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>
+    <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 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>
+    <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>
+<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>
-        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>
+</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>
+</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>
-        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>
+</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>
+</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>
-        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>
+     <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 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>
+     <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>
-        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>
+    <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>
-        <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>
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
 
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
 
-        <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>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
+    <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>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>
+<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 0</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, defaulted to 10 in 2.4.x and early 2.5</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=jmanager))</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, keep 
+   <code class="directive">AuthLDAPMaxSubGroupDepth</code> set to zero.</p>
+   </div>
 
-        <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>
 
-    <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="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 <code class="directive"><a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></code>. 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> This directive only has effect when this module is used for 
+    authentication.</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>
+</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> This directive only has effect when this module is used for
+    authentication.</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>
+</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>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> The <em>ldap-filter</em> and <em>ldap-dn</em> authorization
+    checks use searches.</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>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>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> 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>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>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>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="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="activedirectory" id="activedirectory">Using Active Directory</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>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><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>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>
+<dl>
+<dt>ldap</dt>
 
-    <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>
+        <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>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>
+<dt>host:port</dt>
 
-<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
-AuthLDAPBindPassword password
-AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</pre>
+        <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>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>Users will need to enter their User Principal Name as a login, in
-    the form <em>somebody@nz.example.com</em>.</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>
 
-</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>
+<dt>basedn</dt>
 
-    <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>
+        <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>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>
+<dt>attribute</dt>
 
+        <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>
 
-<h3><a name="howitworks" id="howitworks">How It Works</a></h3>
+<dt>scope</dt>
 
-    <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>
+        <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>Once directives have been added as specified above,
-    FrontPage users will be able to perform all management
-    operations from the FrontPage client.</p>
+<dt>filter</dt>
 
+        <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. The keyword
+        <code>none</code> disables the use of a filter; this is required
+        by some primitive LDAP servers.</dd>
+</dl>
 
-<h3><a name="fpcaveats" id="fpcaveats">Caveats</a></h3>
+    <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>
 
-    <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>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>
 
-      <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>
+    <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>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>
+<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>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>See above for examples of <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code> URLs.</p>
 
 </div>
 </div>
index a3f86653b527c7276e3d8b7c50beae219090ad44..c2ee3e026319f134bbb6a02d67a43a079b8dbfe3 100644 (file)
@@ -63,7 +63,21 @@ HTTP de base.</td></tr>
     invoqué en affectant la valeur <code>ldap</code> à la directive
     <code class="directive"><a href="../mod/mod_auth_basic.html#authbasicprovider">AuthBasicProvider</a></code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#contents">Sommaire</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#operation">Mode opératoire</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives requises</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#usingtls">Utilisation de TLS</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#usingssl">Utilisation de SSL</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#exposed">Mise à disposition des informations de
+connexion</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#activedirectory">Utilisation d'Active
+Directory</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#frontpage">Utilisation de Microsoft
+    FrontPage avec mod_authnz_ldap</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authldapauthorizeprefix">AuthLDAPAuthorizePrefix</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authldapbindauthoritative">AuthLDAPBindAuthoritative</a></li>
@@ -85,21 +99,7 @@ HTTP de base.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authldapurl">AuthLDAPUrl</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#contents">Sommaire</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#operation">Mode opératoire</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives requises</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#usingtls">Utilisation de TLS</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#usingssl">Utilisation de SSL</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#exposed">Mise à disposition des informations de
-connexion</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#activedirectory">Utilisation d'Active
-Directory</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#frontpage">Utilisation de Microsoft
-    FrontPage avec mod_authnz_ldap</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code></li>
 <li><code class="module"><a href="../mod/mod_auth_basic.html">mod_auth_basic</a></code></li>
@@ -107,888 +107,191 @@ 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="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>
+<div class="section">
+<h2><a name="contents" id="contents">Sommaire</a></h2>
 
-    <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>
+    <ul>
+      <li>
+        <a href="#operation">Mode opératoire</a>
 
-</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>
+        <ul>
+          <li><a href="#authenphase">La phase
+         d'authentification</a></li>
 
-<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>
+          <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="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="#requiredirectives">Les directives requises</a>
 
-    <p>Si la valeur commence par exec:, la commande résultante sera
-    exécutée, et la première ligne renvoyée sur la sortie standard sera
-    utilisée comme mot de passe.</p>
-<pre class="prettyprint lang-config">#Mot de passe utilisé tel quel
-AuthLDAPBindPassword secret
+        <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>
+         <li><a href="#reqsearch">Require ldap-search</a></li>
+        </ul>
+      </li>
 
-#Exécute /path/to/program pour obtenir le mot de passe
-AuthLDAPBindPassword exec:/path/to/program
+      <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>
 
-#Exécute /path/to/otherProgram avec un argument pour obtenir le mot de passe
-AuthLDAPBindPassword "exec:/path/to/otherProgram argument1"</pre>
+        <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>
 
+    <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>
 
-</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>
+<h3><a name="authenphase" id="authenphase">La phase d'authentification</a></h3>
 
-    <p>Le fichier contient des lignes au format suivant :</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>
 
-    <div class="example"><p><code>
-      <var>extension de langage</var> <var>jeu de caractères</var>
-      [<var>Nom du langage</var>] ...
-    </code></p></div>
+    <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>L'extension est insensible à la casse. Les lignes vides et les
-    lignes commençant par un dièse (<code>#</code>) sont ignorées.</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>
-<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>
+      <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 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>Les directives utilisées durant la phase de recherche/connexion
+    sont les suivantes :</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>
+    <table>
+      
+      <tr>
+        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
 
-    <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>
+        <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>
 
-<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>
+      <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="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>
+        <td>Un DN optionnel pour se connecter durant la phase de
+       recherche.</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="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>
+      <tr>
+        <td><code class="directive"><a href="#authldapbindpassword">AuthLDAPBindPassword</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="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>
+        <td>Un mot de passe optionnel pour se connecter durant la phase
+       de recherche.</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="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>
+<h3><a name="authorphase" id="authorphase">La phase d'autorisation</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>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>
 
-     <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>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>
 
-<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>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>
 
-    <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>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>
 
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
+      <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>
 
-    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
+      <li>Avec la directive <a href="#reqsearch">
+      <code>Require ldap-search</code></a>, l'autorisation d'accès
+      est accordée si le filtre de recherche renvoie avec succès
+      un seul objet correspondant aux critères avec tout nom distinctif
+      (DN).</li>
 
+      <li>dans tous les autres cas, refus ou restriction de
+      l'accès.</li>
+    </ul>
 
-    <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>
-
-<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 0</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 ; la valeur par défaut était 10 dans les versions 2.4.x et les
-premières versions 2.5</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>
-
-   <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>
-
-
-</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 <code class="directive"><a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></code>. 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>
-    <p>Cette directive n'a d'effet que si l'on utilise ce module pour
-    l'authentification.</p>
-
-</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>
-    <p>Cette directive n'a d'effet que si l'on utilise ce module pour
-    l'authentification.</p>
-
-</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>Les vérifications d'autorisation <em>ldap-filter</em> et
-    <em>ldap-dn</em> utilisent des recherches.</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="#authldapcompareasuser">AuthLDAPCompareAsUser</a></code>
-    est aussi activée.</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>
-
-
-<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>
-
-</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>
-
-</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>
-
-<dl>
-<dt>ldap</dt>
-
-        <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>
-
-          <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>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>
-
-<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>
-
-        <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>
-
-<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>
-
-<dt>filtre</dt>
-
-        <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. Le mot-clé <code>none</code> permet de désactiver
-       l'utilisation des filtres, ce qui peut s'avérer nécessaire avec
-       certains serveurs LDAP primitifs.</dd>
-</dl>
-
-    <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>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>
-
-    <p>Voir plus haut pour des exemples d'URLs définies par 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="contents" id="contents">Sommaire</a></h2>
-
-    <ul>
-      <li>
-        <a href="#operation">Mode opératoire</a>
-
-        <ul>
-          <li><a href="#authenphase">La phase
-         d'authentification</a></li>
-
-          <li><a href="#authorphase">La phase d'autorisation</a></li>
-        </ul>
-      </li>
-
-      <li>
-        <a href="#requiredirectives">Les directives requises</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>
-         <li><a href="#reqsearch">Require ldap-search</a></li>
-        </ul>
-      </li>
-
-      <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>
-
-        <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>
-
-    <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>
-
-<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>
-
-    <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>
-
-    <table>
-      
-      <tr>
-        <td><code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code></td>
-
-        <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>
-
-      <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>
-
-      <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>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>Avec la directive <a href="#reqsearch">
-      <code>Require ldap-search</code></a>, l'autorisation d'accès
-      est accordée si le filtre de recherche renvoie avec succès
-      un seul objet correspondant aux critères avec tout nom distinctif
-      (DN).</li>
-
-      <li>dans tous les autres cas, refus ou restriction de
-      l'accès.</li>
-    </ul>
-
-    <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>
+    <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>
 
     <ul>
         <li>L'accès est accordé à tous les utilisateurs authentifiés si
        <code>Require ldap-group</code>.</td>
       </tr>
 
-      <tr>
-        <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
+      <tr>
+        <td><code class="directive"><a href="#authldapsubgroupclass">AuthLDAPSubGroupClass</a></code></td>
+
+        <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="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
+
+    <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>A partir de la version 2.4.8, les directives require LDAP
+    supportent les <a href="../expr.html">expressions</a>.</p>
+
+<h3><a name="requser" id="requser">Require ldap-user</a></h3>
+
+    <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>
+
+
+    <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>
+
+
+
+<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>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>
+
+
+    <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
+
+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
+
+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
+
+dn: cn=Temporary Employees, o=Example
+objectClass: groupOfUniqueNames
+uniqueMember: cn=Jim Swenson, o=Example
+uniqueMember: cn=Elliot Rhodes, o=Example</pre></div>
+
+    <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>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>
+
+
+<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
+
+    <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>
+
+    <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>
+
+
+    <p>Le comportement ce cette directive est modifié par la directive
+    <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
+
+
+<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
+
+    <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>
+
+
+    <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>
+
+    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
+
+
+
+
+<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</a></h3>
+
+    <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>
+
+    <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>
+
+    <pre class="prettyprint lang-config">Require ldap-filter &amp;(cell=*)(department=marketing)</pre>
+
+
+    <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>
+
+    <p>Lorsqu'on utilise une <a href="../expr.html">expression
+    rationnelle</a> au sein d'un filtre, il faut bien s'assurer que les
+    filtres LDAP sont correctement échappés afin de se prémunir contre
+    toute injection LDAP. A cet effet, il est possible d'utiliser la
+    fonction ldap.</p>
+
+<pre class="prettyprint lang-config">&lt;LocationMatch ^/dav/(?&lt;SITENAME&gt;[^/]+)/&gt;
+  Require ldap-filter (memberOf=cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}},ou=Websites,o=Example)
+&lt;/LocationMatch&gt;</pre>
+
+
+
+
+<h3><a name="reqsearch" id="reqsearch">Require ldap-search</a></h3>
+
+    <p>La directive <code>Require ldap-search</code> permet à
+    l'administrateur d'autoriser l'accès en fonction d'un filtre de
+    recherche LDAP générique contenant une <a href="../expr.html">expression rationnelle</a>. Si le filtre de
+    recherche renvoie une et une seule correspondance, l'accès est
+    accordé sans tenir compte du DN.</p>
+
+    <p>La directive suivante accorderait l'accès aux URLs correspondant
+    aux objets spécifiés dans le serveur LDAP :</p>
+
+<pre class="prettyprint lang-config">&lt;LocationMatch ^/dav/(?&lt;SITENAME&gt;[^/]+)/&gt;
+Require ldap-search (cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}} Website)
+&lt;/LocationMatch&gt;</pre>
+
+
+    <p>Note : il faut bien s'assurer que les
+    expressions sont correctement échappés afin de se prémunir contre
+    toute injection LDAP. A cet effet, il est possible d'utiliser la
+    fonction <strong>ldap</strong> comme dans l'exemple ci-dessus.</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="requiredirectives" id="requiredirectives">Les directives requises</a></h2>
+<h2><a name="examples" id="examples">Exemples</a></h2>
 
-    <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>
+    <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>
 
-    <p>A partir de la version 2.4.8, les directives require LDAP
-    supportent les <a href="../expr.html">expressions</a>.</p>
+      </li>
 
-<h3><a name="requser" id="requser">Require ldap-user</a></h3>
+      <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>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>
+      </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>
 
-    <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>
+      </li>
 
-    <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>
+      <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>
 
+      <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><a name="reqgroup" id="reqgroup">Require ldap-group</a></h3>
+      </li>
 
-    <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>
+      <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>
 
-    <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>
+      </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>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>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>
 
-dn: cn=Managers, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Bob Ellis, o=Example
-uniqueMember: cn=Tom Jackson, o=Example
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
 
-dn: cn=Administrators, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Barbara Jenson, o=Example
-uniqueMember: cn=Fred User, o=Example
+        <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>
 
-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
+        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
 
-dn: cn=Temporary Employees, o=Example
-objectClass: groupOfUniqueNames
-uniqueMember: cn=Jim Swenson, o=Example
-uniqueMember: cn=Elliot Rhodes, o=Example</pre></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>
 
-    <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 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>
 
+    <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>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>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>
 
+    <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>
 
-<h3><a name="reqdn" id="reqdn">Require ldap-dn</a></h3>
+    <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>
 
-    <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>
+    <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>
+
+    <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>
+
+    <p>Ceci a pour effet de simplifier considérablement le code et 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="section">
+<h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
+Directory</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>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>
+    <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>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>
 
-    <p>Le comportement ce cette directive est modifié par la directive
-    <code class="directive"><a href="#authldapcomparednonserver">AuthLDAPCompareDNOnServer</a></code>.</p>
+    <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>
 
+<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
+AuthLDAPBindPassword password
+AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</pre>
 
-<h3><a name="reqattribute" id="reqattribute">Require ldap-attribute</a></h3>
 
-    <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>Les utilisateurs devront s'authentifier en entrant leur UPN, de
+    la forme<em>untel@nz.example.com</em>.</p>
 
-    <p>La directive suivante accorderait l'autorisation d'accès à tout
-    utilisateur dont l'attribut employeeType a pour valeur "actif" :</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>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute employeeType=active</pre>
+    <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>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>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>
+<h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
 
-    <pre class="prettyprint lang-config">Require ldap-attribute city="San Jose" status=active</pre>
+    <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>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>
 
-<h3><a name="reqfilter" id="reqfilter">Require ldap-filter</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>
 
-    <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>
+      <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>
 
-    <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>
+      
+      <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>
 
-    <pre class="prettyprint lang-config">Require ldap-filter &amp;(cell=*)(department=marketing)</pre>
+      <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>
 
-    <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 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>Lorsqu'on utilise une <a href="../expr.html">expression
-    rationnelle</a> au sein d'un filtre, il faut bien s'assurer que les
-    filtres LDAP sont correctement échappés afin de se prémunir contre
-    toute injection LDAP. A cet effet, il est possible d'utiliser la
-    fonction 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="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>
 
-<pre class="prettyprint lang-config">&lt;LocationMatch ^/dav/(?&lt;SITENAME&gt;[^/]+)/&gt;
-  Require ldap-filter (memberOf=cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}},ou=Websites,o=Example)
-&lt;/LocationMatch&gt;</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>Si la valeur commence par exec:, la commande résultante sera
+    exécutée, et la première ligne renvoyée sur la sortie standard sera
+    utilisée comme mot de passe.</p>
+<pre class="prettyprint lang-config">#Mot de passe utilisé tel quel
+AuthLDAPBindPassword secret
 
+#Exécute /path/to/program pour obtenir le mot de passe
+AuthLDAPBindPassword exec:/path/to/program
 
-<h3><a name="reqsearch" id="reqsearch">Require ldap-search</a></h3>
+#Exécute /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-search</code> permet à
-    l'administrateur d'autoriser l'accès en fonction d'un filtre de
-    recherche LDAP générique contenant une <a href="../expr.html">expression rationnelle</a>. Si le filtre de
-    recherche renvoie une et une seule correspondance, l'accès est
-    accordé sans tenir compte du DN.</p>
 
-    <p>La directive suivante accorderait l'accès aux URLs correspondant
-    aux objets spécifiés dans le serveur LDAP :</p>
 
-<pre class="prettyprint lang-config">&lt;LocationMatch ^/dav/(?&lt;SITENAME&gt;[^/]+)/&gt;
-Require ldap-search (cn=%{ldap:%{unescape:%{env:MATCH_SITENAME}} Website)
-&lt;/LocationMatch&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="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>Note : il faut bien s'assurer que les
-    expressions sont correctement échappés afin de se prémunir contre
-    toute injection LDAP. A cet effet, il est possible d'utiliser la
-    fonction <strong>ldap</strong> comme dans l'exemple ci-dessus.</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>
 
+    <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>
 
-</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>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>
 
-    <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>
+    <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>
 
-      </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>
-        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>
+<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>
+</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>
-        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>
+</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>
 
-      </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">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>
 
-      <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>
+</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>
+     <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>
-      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>
+     <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>
+     <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>
 
-      <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>
+<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>
-        <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>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>
 
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) $1@example.com</pre>
 
-        <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>
+    <pre class="prettyprint lang-config">AuthLDAPInitialBindPattern (.+) cn=$1,dc=example,dc=com</pre>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=fuser))</code></p></div>
 
-        <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>
+    <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>
 
-        <div class="example"><p><code>(&amp;(|(qpagePagerID=*)(uid=jmanager))(uid=jmanager))</code></p></div>
+<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 0</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 ; la valeur par défaut était 10 dans les versions 2.4.x et les
+premières versions 2.5</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>
 
-        <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>
+   <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>
 
-    <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>
 
-    <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>
+</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 <code class="directive"><a href="#authldapremoteuserisdn">AuthLDAPRemoteUserIsDN</a></code>. 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>
+    <p>Cette directive n'a d'effet que si l'on utilise ce module pour
+    l'authentification.</p>
 
-    <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="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>
+    <p>Cette directive n'a d'effet que si l'on utilise ce module pour
+    l'authentification.</p>
 
-    <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>
+</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>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>
+    <p>Les vérifications d'autorisation <em>ldap-filter</em> et
+    <em>ldap-dn</em> utilisent des recherches.</p>
 
-    <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>
+    <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>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>
+     <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>Ceci a pour effet de simplifier considérablement le code et 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="section">
-<h2><a name="activedirectory" id="activedirectory">Utilisation d'Active
-Directory</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>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>
+</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>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>
+</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 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>
+<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>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>
+<dl>
+<dt>ldap</dt>
 
-<pre class="prettyprint lang-config">AuthLDAPBindDN apache@example.com
-AuthLDAPBindPassword password
-AuthLDAPURL ldap://10.0.0.1:3268/?userPrincipalName?sub</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>
 
-    <p>Les utilisateurs devront s'authentifier en entrant leur UPN, de
-    la forme<em>untel@nz.example.com</em>.</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="frontpage" id="frontpage">Utilisation de Microsoft
-    FrontPage avec mod_authnz_ldap</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>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>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>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>
+<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>
 
-<h3><a name="howitworks" id="howitworks">Comment ça marche</a></h3>
+        <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>
 
-    <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>
+<dt>portée</dt>
 
-    <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>
+        <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>
 
+<dt>filtre</dt>
 
-<h3><a name="fpcaveats" id="fpcaveats">Avertissements</a></h3>
+        <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. Le mot-clé <code>none</code> permet de désactiver
+       l'utilisation des filtres, ce qui peut s'avérer nécessaire avec
+       certains serveurs LDAP primitifs.</dd>
+</dl>
 
-    <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>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>
 
-      <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>
+    <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>
 
-      
-      <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>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>
 
-      <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>
+<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>Voir plus haut pour des exemples d'URLs définies par la directive
+    <code class="directive"><a href="#authldapurl">AuthLDAPURL</a></code>.</p>
 
 </div>
 </div>
index 490563ef3968134e68c004a5d8c57add4dfaa7df..a9eb23b231f5fc856961a37e418c8ed9685458e8 100644 (file)
 </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="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="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="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
@@ -427,210 +631,6 @@ 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="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="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>
 <div class="bottomlang">
index 0374e8c3cc1a81cd1c67de072b1ac82dbbbfb50d..c51e596dc317d7e4bfd91ffe395ef50364d35626 100644 (file)
@@ -47,7 +47,13 @@ d'Apache HTTPD</td></tr></table>
     permet aussi l'application d'une logique élaborée au déroulement du
     processus d'autorisation.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#logic">Conteneurs d'autorisation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives Require</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#authzalias">Création des alias du fournisseur
+d'autorisation</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authmerging">AuthMerging</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authzprovideralias">&lt;AuthzProviderAlias&gt;</a></li>
@@ -57,13 +63,209 @@ d'Apache HTTPD</td></tr></table>
 <li><img alt="" src="../images/down.gif" /> <a href="#requireany">&lt;RequireAny&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#requirenone">&lt;RequireNone&gt;</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#logic">Conteneurs d'autorisation</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives Require</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#authzalias">Création des alias du fournisseur
-d'autorisation</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+<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="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 construire 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>, soit 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=Administrateurs,o=Airius
+                &lt;RequireAny&gt;
+                Require group ventes
+                Require ldap-attribute dept="ventes"
+                &lt;/RequireAny&gt;
+            &lt;/RequireAll&gt;
+        &lt;/RequireAny&gt;
+        &lt;RequireNone&gt;
+            Require group temps
+            Require ldap-group cn=Employés temporaires,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 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="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 diverses 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
+
+    #Opération logique implicite : OU inclusif
+    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="directive-section"><h2><a name="authmerging" id="authmerging">Directive</a> <a name="AuthMerging" id="AuthMerging">AuthMerging</a></h2>
 <table class="directive">
@@ -438,208 +640,6 @@ 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="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 construire 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>, soit 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=Administrateurs,o=Airius
-                &lt;RequireAny&gt;
-                Require group ventes
-                Require ldap-attribute dept="ventes"
-                &lt;/RequireAny&gt;
-            &lt;/RequireAll&gt;
-        &lt;/RequireAny&gt;
-        &lt;RequireNone&gt;
-            Require group temps
-            Require ldap-group cn=Employés temporaires,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 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="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 diverses 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
-
-    #Opération logique implicite : OU inclusif
-    Require ldap-group-alias1
-    Require ldap-group-alias2
-&lt;/Directory&gt;</pre>
-
-    
-
 </div>
 </div>
 <div class="bottomlang">
index c494f7a0afd721e203fcc908076f494dec0d2947..157a1fa34030f80643b5949c41ebacccdca125f2 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>
 
@@ -240,7 +156,7 @@ DBDKeep 8
 DBDMax  20
 DBDExptime 300
 
-&lt;Directory /usr/www/my.site/team-private/&gt;
+&lt;Directory "/usr/www/my.site/team-private/"&gt;
   # mod_authn_core and mod_auth_basic configuration
   # for mod_authn_dbd
   AuthType Basic
@@ -262,7 +178,7 @@ DBDExptime 300
   # to /team-private/login.html
   ErrorDocument 401 /login-info.html
 
-  &lt;Files login.html&gt;
+  &lt;Files "login.html"&gt;
     # don't require user to already be logged in!
     AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
 
@@ -275,7 +191,7 @@ DBDExptime 300
     AuthzDBDLoginToReferer On
   &lt;/Files&gt;
 
-  &lt;Files logout.html&gt;
+  &lt;Files "logout.html"&gt;
     # dbd-logout action executes a statement to log user out
     Require dbd-logout
     AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
@@ -294,6 +210,90 @@ DBDExptime 300
   <p>Please read <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> documentation for more information
   about security on this scope.</p>
 </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">
 <p><span>Available Languages: </span><a href="../en/mod/mod_authz_dbd.html" title="English">&nbsp;en&nbsp;</a> |
index 2f306d22afd89e0f9677ed164b42af91f0c52c09..3cb7f82ded27b9fb88267ef09692f7bbd7a75fb1 100644 (file)
@@ -50,20 +50,20 @@ d'Apache</td></tr></table>
     pilote de la base de données sous-jacente et les paramètres de
     connexion, et gérer les connexions à la base de données.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#authzdbdlogintoreferer">AuthzDBDLoginToReferer</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#authzdbdquery">AuthzDBDQuery</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#authzdbdredirectquery">AuthzDBDRedirectQuery</a></li>
-</ul>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives Require</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#login">Connexion s'appuyant sur une base de données</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#client">Intégration des ouvertures de sessions côté client</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#example">Exemple de configuration</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Prévention contre les injections SQL</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#authzdbdlogintoreferer">AuthzDBDLoginToReferer</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#authzdbdquery">AuthzDBDQuery</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#authzdbdredirectquery">AuthzDBDRedirectQuery</a></li>
+</ul>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_authz_core.html#require">Require</a></code></li>
 <li>
@@ -73,99 +73,6 @@ 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 une en-tête
-de requête <code>Referer</code> est présente</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>
 
@@ -316,6 +223,99 @@ DBDExptime 300
   <code class="module"><a href="../mod/mod_dbd.html">mod_dbd</a></code> pour plus d'informations à propos de la
   sécurité dans ce domaine.</p>
 </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 une en-tête
+de requête <code>Referer</code> est présente</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">
 <p><span>Langues Disponibles: </span><a href="../en/mod/mod_authz_dbd.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 0f548ea496849a1e7ff7a0c472b1c8e68e02c8c3..0292c86257f2ca0d00d5d1171198d8053f005662 100644 (file)
@@ -140,7 +140,7 @@ DBDKeep 8
 DBDMax  20
 DBDExptime 300
 
-&lt;Directory /usr/www/my.site/team-private/&gt;
+&lt;Directory "/usr/www/my.site/team-private/"&gt;
   # mod_authn_core and mod_auth_basic configuration
   # for mod_authn_dbd
   AuthType Basic
@@ -162,7 +162,7 @@ DBDExptime 300
   # to /team-private/login.html
   ErrorDocument 401 /login-info.html
 
-  &lt;Files login.html&gt;
+  &lt;Files "login.html"&gt;
     # don't require user to already be logged in!
     AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s"
 
@@ -175,7 +175,7 @@ DBDExptime 300
     AuthzDBDLoginToReferer On
   &lt;/Files&gt;
 
-  &lt;Files logout.html&gt;
+  &lt;Files "logout.html"&gt;
     # dbd-logout action executes a statement to log user out
     Require dbd-logout
     AuthzDBDQuery "UPDATE authn SET login = 'false' WHERE user = %s"
index 31219666061b23b27f17a7d81e1e809bd5de1d61..b3735797f2acd8fb208a0ab2121267067152ff57 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
@@ -130,55 +179,6 @@ 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 001b01cdb6fcff4327bc0515c42abf9f91dbac01..4f9a243c100ed56786268a061268325470fc3b33 100644 (file)
     <code class="module"><a href="../mod/mod_authz_groupfile.html">mod_authz_groupfile</a></code> fournit une fonctionnalité
     similaire.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">The Require Directives</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemple d'utilisation</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authdbmgroupfile">AuthDBMGroupFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#authzdbmtype">AuthzDBMType</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">The Require Directives</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemple d'utilisation</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <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">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 qui liste
@@ -137,56 +187,6 @@ 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 43511705c64acb78647baa988745cfe456f890d7..6cf0d2201b426aab3cba585d52a9f668c50d2f54 100644 (file)
@@ -51,6 +51,7 @@
 <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 883304b283f366008671a78ff75edad70333051c..81b141abc2c3879e95ae1192b80a03026a476c47 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="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
-of user groups for authorization</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthGroupFile <var>file-path</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#Override">Override:</a></th><td>AuthConfig</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_authz_groupfile</td></tr>
-</table>
-    <p>The <code class="directive">AuthGroupFile</code> directive sets the
-    name of a textual file containing the list of user groups for user
-    authorization. <var>File-path</var> is the path to the group
-    file. If it is not absolute, it is treated as relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>
-
-    <p>Each line of the group file contains a groupname followed by a
-    colon, followed by the member usernames separated by spaces.</p>
-
-    <div class="example"><h3>Example:</h3><p><code>
-      mygroup: bob joe anne
-    </code></p></div>
-
-    <p>Note that searching large text files is <em>very</em>
-    inefficient; <code class="directive"><a href="../mod/mod_authz_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code> provides a much better performance.</p>
-
-    <div class="warning"><h3>Security</h3>
-      <p>Make sure that the <code class="directive">AuthGroupFile</code> is
-      stored outside the document tree of the web-server; do <em>not</em>
-      put it in the directory that it protects. Otherwise, clients may
-      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>
 
@@ -118,6 +84,40 @@ of user groups for authorization</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="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
+of user groups for authorization</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AuthGroupFile <var>file-path</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#Override">Override:</a></th><td>AuthConfig</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_authz_groupfile</td></tr>
+</table>
+    <p>The <code class="directive">AuthGroupFile</code> directive sets the
+    name of a textual file containing the list of user groups for user
+    authorization. <var>File-path</var> is the path to the group
+    file. If it is not absolute, it is treated as relative to the <code class="directive"><a href="../mod/core.html#serverroot">ServerRoot</a></code>.</p>
+
+    <p>Each line of the group file contains a groupname followed by a
+    colon, followed by the member usernames separated by spaces.</p>
+
+    <div class="example"><h3>Example:</h3><p><code>
+      mygroup: bob joe anne
+    </code></p></div>
+
+    <p>Note that searching large text files is <em>very</em>
+    inefficient; <code class="directive"><a href="../mod/mod_authz_dbm.html#authdbmgroupfile">AuthDBMGroupFile</a></code> provides a much better performance.</p>
+
+    <div class="warning"><h3>Security</h3>
+      <p>Make sure that the <code class="directive">AuthGroupFile</code> is
+      stored outside the document tree of the web-server; do <em>not</em>
+      put it in the directory that it protects. Otherwise, clients may
+      be able to download the <code class="directive">AuthGroupFile</code>.</p>
+    </div>
+
 </div>
 </div>
 <div class="bottomlang">
index f05ebbb4ba553246126057832de572ec17067df3..fc90ef6e2a211219579a526bf8ad8967bd8e73c9 100644 (file)
@@ -41,18 +41,52 @@ certaines zones du site web aux utilisateurs authentifi
 fonction de leur appartenance à un groupe spécifié. Le module
 <code class="module"><a href="../mod/mod_authz_dbm.html">mod_authz_dbm</a></code> fournit une fonctionnalité similaire.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">The Require Directives</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#authgroupfile">AuthGroupFile</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">The Require Directives</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <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">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
@@ -90,40 +124,6 @@ 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 39d9989a66762f402e06f0987d7e8ae502da9c83..a58b83c2f94e2d7e965a6d5e15658e84ea4df548 100644 (file)
@@ -53,6 +53,7 @@
 <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">
@@ -94,7 +95,6 @@
     </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 65d7dfbd8e8d45c39d7a2d3bfd008bfb914cf675..eeb65c8fc53a3ef93618f35cebef72d650f62a32 100644 (file)
@@ -51,6 +51,7 @@
 <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">
@@ -85,7 +86,6 @@
     </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 9de473cdf6072e9fe08d9f9b920c3872c01f20be..afdbc8db28cfe0193738616e0972ac722f09e9b4 100644 (file)
@@ -52,12 +52,12 @@ d'Apache</td></tr></table>
     méthodes sans protection, en plaçant les directives dans une section
     <code class="directive"><a href="../mod/core.html#limit">&lt;Limit&gt;</a></code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">Les directives Require</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><a href="../howto/auth.html">Authentification, autorisation et
 contrôle d'accès</a></li>
index 745d712180dbe2e7c77ba26b3491764216daa366..2cb41e8af0f216fb871655a48902218527472f25 100644 (file)
@@ -81,12 +81,12 @@ fichiers</td></tr>
       multiples" (MultiViews) d'un contenu négocié</a>.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples de configuration</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<h3>Voir aussi</h3>
 <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">Commentaires</a></li></ul></div>
index 1af36918a944bf5e2f40ae57c9ead8d3a4eb1eb5..37a5a812172e79e97549948a686fd028f5b7a4c4 100644 (file)
       決して承認しません。</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<p>このモジュールにディレクティブはありません。</p>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">設定例</a></li>
-</ul><h3>参照</h3>
+</ul><h3 class="directives">ディレクティブ</h3>
+<p>このモジュールにディレクティブはありません。</p>
+<h3>参照</h3>
 <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>
index b5b9d4c549b329700e937352ca181efea32bf35e..9ad039b31e214cc06ad6cc3b96d894a513949a54 100644 (file)
       "MultiViews"</a> ÀÚ¿øÀ» ±ÇÇѺο©ÇÏÁö ¾Ê´Â´Ù.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#examples">¼³Á¤ ¿¹Á¦</a></li>
-</ul><h3>Âü°í</h3>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <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>
index ca1c3553562d6a75f5413324f613f2cd534f4f91..9145abf9a77d68a2ad83c8ddbdb7f9e95f52fb2c 100644 (file)
     <code>Require valid-user</code> pour accorder l'accès à tous les
     utilisateurs qui ont été authentifiés avec succès.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#requiredirectives">The Require Directives</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<h3>Voir aussi</h3>
 <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">Commentaires</a></li></ul></div>
index f97dfbfd58f17ab7b9f7e77f1d759625f317c374..4e649e2165b1116646493169aba2a081d58ae25c 100644 (file)
 </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
@@ -463,10 +565,10 @@ a directory</td></tr>
     any files ignored by <code class="directive">IndexIgnore</code> otherwise
     inherited from other configuration sections. </p>
 
-    <pre class="prettyprint lang-config">&lt;Directory /var/www&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/var/www"&gt;
     IndexIgnore *.bak .??* *~ *# HEADER* README* RCS CVS *,v *,t
 &lt;/Directory&gt;
-&lt;Directory /var/www/backups&gt;
+&lt;Directory "/var/www/backups"&gt;
     IndexIgnoreReset ON
     IndexIgnore .??* *# HEADER* README* RCS CVS *,v *,t
 &lt;/Directory&gt;</pre>
@@ -800,7 +902,7 @@ indexing</td></tr>
      <li>Multiple <code class="directive">IndexOptions</code> directives for a
      single directory are now merged together. The result of:
 
-     <pre class="prettyprint lang-config">&lt;Directory /foo&gt;
+     <pre class="prettyprint lang-config">&lt;Directory "/foo"&gt;
     IndexOptions HTMLTable
     IndexOptions SuppressColumnsorting
 &lt;/Directory&gt;</pre>
@@ -938,108 +1040,6 @@ 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 03008e29d070764497967ae53a02766f0363322d..000277a41d4bf2ecee94933d194c0f303071f6f6 100644 (file)
@@ -30,6 +30,8 @@
 <a href="../ko/mod/mod_autoindex.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
 <a href="../tr/mod/mod_autoindex.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
 </div>
+<div class="outofdate">Cette traduction peut être périmée. Vérifiez la version
+            anglaise pour les changements récents.</div>
 <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Génère automatiquement des index de répertoires d'une
 manière similaire à la commande Unix <code>ls</code>, ou à la commande
 shell Win32 <code>dir</code></td></tr>
@@ -77,7 +79,10 @@ shell Win32 <code>dir</code></td></tr>
     affiché avant un fichier de 1011 octets (en ordre croissant), même
     si la taille affichée des deux fichiers est "1K".</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#query">Arguments de la requête d'autoindexation</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#addalt">AddAlt</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#addaltbyencoding">AddAltByEncoding</a></li>
@@ -96,10 +101,116 @@ shell Win32 <code>dir</code></td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#indexstylesheet">IndexStyleSheet</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#readmename">ReadmeName</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<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>
+<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">
@@ -988,115 +1099,6 @@ 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 b5d266829cb00cecd3f78365357e57d457028658..52f802b7abf12df236be9a321e3ea0449e0571d1 100644 (file)
     1010 バイトのファイルは必ず 1011
     バイトのファイルよりも前 (昇順の場合) に表示されます。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex リクエストクエリー引数</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#addalt">AddAlt</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#addaltbyencoding">AddAltByEncoding</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#indexstylesheet">IndexStyleSheet</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#readmename">ReadmeName</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<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>
+<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">
@@ -932,116 +1042,6 @@ 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 052bec6450beb792f5ce7527109d45481d16cb0f..218a2e4d7d8d199dc8775b3cd9c1a5031420b920 100644 (file)
     ¹ÙÀÌÆ® ÆÄÀÏÀº µÑ´Ù "1K"·Î º¸ÀÌ´õ¶óµµ Ç×»ó 1010 ¹ÙÀÌÆ® ÆÄÀÏÀÌ
     ¾Õ¿¡ ³ª¿Â´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#query">Autoindex ¿äû ¾Æ±Ô¸ÕÆ®</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#addalt">AddAlt</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#addaltbyencoding">AddAltByEncoding</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#indexstylesheet">IndexStyleSheet</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#readmename">ReadmeName</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<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>
+<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">
@@ -763,97 +854,6 @@ 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 cdc48750385c764846492737d42c1ffd21d38f6c..09f85d3cc238648aa14125c7fbe77de4656b3126 100644 (file)
@@ -73,7 +73,10 @@ yaptığı gibi dizin içeriğini listeler.</td></tr>
       olanı küçükten büyüğe sıralamada 1011 baytlıktan önce
       gösterilecektir.</p>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#query">Sütun Sıralamada Sorgu Seçenekleri</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#addalt">AddAlt</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#addaltbyencoding">AddAltByEncoding</a></li>
@@ -92,10 +95,99 @@ yaptığı gibi dizin içeriğini listeler.</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#indexstylesheet">IndexStyleSheet</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#readmename">ReadmeName</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<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>
+<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">
@@ -944,98 +1036,6 @@ belirler.</td></tr>
     <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 503a08f5186cfd803f175df3d3ead9b20f138d0d..9898bc8722982e2583f9bdb84e8a7c800a0aab28 100644 (file)
@@ -563,10 +563,10 @@ a directory</description>
     inherited from other configuration sections. </p>
 
     <highlight language="config">
-&lt;Directory /var/www&gt;
+&lt;Directory "/var/www"&gt;
     IndexIgnore *.bak .??* *~ *# HEADER* README* RCS CVS *,v *,t
 &lt;/Directory&gt;
-&lt;Directory /var/www/backups&gt;
+&lt;Directory "/var/www/backups"&gt;
     IndexIgnoreReset ON
     IndexIgnore .??* *# HEADER* README* RCS CVS *,v *,t
 &lt;/Directory&gt;
@@ -955,7 +955,7 @@ indexing</description>
      single directory are now merged together. The result of:
 
      <highlight language="config">
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     IndexOptions HTMLTable
     IndexOptions SuppressColumnsorting
 &lt;/Directory&gt;
index 432b783fe84d0f078765abe55881e5fd4ba52a1b..9b12837a85286240220426554fd0b9286ceafc58 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.fr.xsl"?>
-<!-- English Revision : 1598137 -->
+<!-- English Revision: 1598137:1673877 (outdated) -->
 <!-- French translation : Lucien GENTIS -->
 <!-- Reviewed by : Vincent Deffontaines -->
 
index 255cdec477285ee9ea4030d82a19848532434aff..e0ac8ff3b5dd6449e7a3225094f4e3d67ee5b01b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
-<!-- English Revision: 689261:1598137 (outdated) -->
+<!-- English Revision: 689261:1673877 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 46f47ececb136ad932d8a155a98ed9c1d5545530..8a8ad92dedb6280305ef3f2826c5c0c0c3566b2a 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="EUC-KR" ?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.ko.xsl"?>
-<!-- English Revision: 103423:1598137 (outdated) -->
+<!-- English Revision: 103423:1673877 (outdated) -->
 
 <!--
  Licensed to the Apache Software Foundation (ASF) under one or more
index 821a085c5cb3997d0236f505a41ba467a1426385..098c89bcd35187146fa8d47bae162e309b55afae 100644 (file)
@@ -8,7 +8,7 @@
 
   <variants>
     <variant>en</variant>
-    <variant>fr</variant>
+    <variant outdated="yes">fr</variant>
     <variant outdated="yes">ja</variant>
     <variant outdated="yes">ko</variant>
     <variant outdated="yes">tr</variant>
index e89eefa3dc8ab1ed0352a965b41686302d9748b6..5f7b4913126644000f9469d262e33f0daf2a918b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 <?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
-<!-- English Revision: 1303788:1598137 (outdated) -->
+<!-- English Revision: 1303788:1673877 (outdated) -->
 <!-- =====================================================
  Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
    Reviewed by: Orhan Berent <berent belgeler.org>
index 507d1d9a3c3e276e155eb5afcdcd53db53334e5f..4a7d679174bb64830d7fc85f43bb64c585006a4e 100644 (file)
@@ -78,6 +78,7 @@
 <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">
@@ -94,7 +95,6 @@
     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 61e3e38450f90397fb4024453e54a3aece01388b..2427fa24ea714352689070f50dc339a75d783d66 100644 (file)
@@ -81,6 +81,7 @@ 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">
@@ -97,7 +98,6 @@ 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 ce3af5229d4f86419b4f5926ff179dae06c0f018..5440db4af067ef3c23f42f53f10ab8d73bb8718e 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 authorization 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 authorization</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>
@@ -237,7 +422,7 @@ CacheDetailHeader on</pre>
     the path needs to be specified below the Location, or if the word "on"
     is used, caching for the whole location will be disabled.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location /foo&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
     CacheDisable on
 &lt;/Location&gt;</pre>
 </div>
@@ -293,13 +478,13 @@ manager</td></tr>
 
     <pre class="prettyprint lang-config"># Cache content (normal handler only)
 CacheQuickHandler off
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheEnable disk
 &lt;/Location&gt;
 
 # Cache regex (normal handler only)
 CacheQuickHandler off
-&lt;LocationMatch foo$&gt;
+&lt;LocationMatch "foo$"&gt;
     CacheEnable disk
 &lt;/LocationMatch&gt;
 
@@ -855,191 +1040,6 @@ 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 authorization 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 authorization</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 43a87e57c82ab51b6a7a46d8f0bd3ba37d135f0d..7252ff864745f1dc0acf5de8d51d35414b83f2fd 100644 (file)
     reportez-vous au <a href="../caching.html">Guide de la mise en
     cache</a>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#related">Modules apparentés et directives</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">Exemple de configuration</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#thunderingherd">Eviter une tempête de requête</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#finecontrol">Contrôle fin via le filtre CACHE</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#status">Etat du cache et journalisation</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachedefaultexpire">CacheDefaultExpire</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachedetailheader">CacheDetailHeader</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachestorenostore">CacheStoreNoStore</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachestoreprivate">CacheStorePrivate</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#related">Modules apparentés et directives</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">Exemple de configuration</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#thunderingherd">Eviter une tempête de requête</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#finecontrol">Contrôle fin via le filtre CACHE</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#status">Etat du cache et journalisation</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <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="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
@@ -944,218 +1156,6 @@ 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 bd64661148f63be6d7b14469bb27a310f203baf2..dc714e70de818be0e64f8b7e5034a26653fdeef5 100644 (file)
     <p>より詳細な解説や例については<a href="../caching.html">キャッシュ機能</a>
     を参照してください。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#related">関連モジュールとディレクティブ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">サンプル設定</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachedefaultexpire">CacheDefaultExpire</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachedetailheader">CacheDetailHeader</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachestorenostore">CacheStoreNoStore</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachestoreprivate">CacheStorePrivate</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#related">関連モジュールとディレクティブ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">サンプル設定</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <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 4126129c3bc93c1ea327cf71a23c2fd1bd9b0d6b..c8b0890f2dec2980335a1c7965639c17571be2e0 100644 (file)
     <p>³»¿ëÀ» URI¸¦ Åä´ë·Î ¸¸µç Å°·Î Ä³½¬¿¡ ÀúÀåÇ졒ʡ¡Á®¿Â´Ù.
     Á¢±Ùº¸È£°¡ µÈ ³»¿ëÀº Ä³½¬ÇÏÁö¾Ê´Â´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#related">°ü·ÃµÈ ¸ðµâ°ú Áö½Ã¾î</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">¼³Á¤¿¹</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachedefaultexpire">CacheDefaultExpire</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachedetailheader">CacheDetailHeader</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachestorenostore">CacheStoreNoStore</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#cachestoreprivate">CacheStorePrivate</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#related">°ü·ÃµÈ ¸ðµâ°ú Áö½Ã¾î</a></li>
-<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>
+<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#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 00909fdb0a8a2a76d2438c2b646a17b89166dea7..e6bf98bf11ad7a49629c76eb7688fdfab51affbe 100644 (file)
@@ -380,13 +380,13 @@ manager</description>
     <highlight language="config">
 # Cache content (normal handler only)
 CacheQuickHandler off
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheEnable disk
 &lt;/Location&gt;
 
 # Cache regex (normal handler only)
 CacheQuickHandler off
-&lt;LocationMatch foo$&gt;
+&lt;LocationMatch "foo$"&gt;
     CacheEnable disk
 &lt;/LocationMatch&gt;
 
@@ -444,7 +444,7 @@ CacheEnable  disk  http://.example.org/
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheDisable on
 &lt;/Location&gt;
       </highlight>
index 6d75fb9530e642c265589a3e57baeb25942e3648..8ae17a0644a9fa0d9ceffe7c0b4dfff9b88ea957 100644 (file)
@@ -88,6 +88,7 @@
 <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">
@@ -256,7 +257,6 @@ 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 24d422594e1a5c90def392902f0c0eaaf24515cc..11cd30a607cc42849b8baf2106afddaea2020562 100644 (file)
@@ -92,6 +92,7 @@ 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">
@@ -274,7 +275,6 @@ 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 37a1816b9d80726c8ee18f7be3d22023ed8a6312..e4ff0c5fb482320b704d37227aa7e7893d41418f 100644 (file)
@@ -65,6 +65,7 @@
 <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 9ff53df5889a5eced14a0f4700121a1f91d8efcf..1c8db897b63cbe9f8139261d5c43e4550ab58458 100644 (file)
@@ -64,6 +64,7 @@
 <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 046e53a0c1a952ac7ed133917c897637acc7bb66..d330175c339ffb7492c8db5440a93d56a0e379a8 100644 (file)
@@ -49,14 +49,14 @@ HTTP caching filter.</td></tr>
     <pre class="prettyprint lang-config"># Turn on caching
 CacheSocache shmcb
 CacheSocacheMaxSize 102400
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheEnable socache
 &lt;/Location&gt;
 
 # Fall back to the disk cache
 CacheSocache shmcb
 CacheSocacheMaxSize 102400
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheEnable socache
     CacheEnable disk
 &lt;/Location&gt;</pre>
@@ -83,6 +83,7 @@ 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">
@@ -232,7 +233,6 @@ 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 e60328c97c8eeda251346b03a494831447731f61..361c1a363cd79607653247a66a4f554246e29c31 100644 (file)
@@ -84,6 +84,7 @@ 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">
@@ -245,7 +246,6 @@ 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 3b7c89c6b3ac3598d5990d68456faa7047b090ca..7fa72bc35ee89f4f8b908dcb76c71021c3c8bf26 100644 (file)
@@ -46,14 +46,14 @@ HTTP caching filter.</description>
 # Turn on caching
 CacheSocache shmcb
 CacheSocacheMaxSize 102400
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheEnable socache
 &lt;/Location&gt;
 
 # Fall back to the disk cache
 CacheSocache shmcb
 CacheSocacheMaxSize 102400
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
     CacheEnable socache
     CacheEnable disk
 &lt;/Location&gt;
index 87b06172c63ee5756d1abce978e3e128bd7ae9aa..d35da811ca108291a5283dac3228565a52de3848 100644 (file)
@@ -56,6 +56,7 @@
 <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">
@@ -122,7 +123,6 @@ 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 43b62f880477eac5ffc59e379f2434d066245cec..12847614d8c99844793b7c75b2824389e9c04b38 100644 (file)
@@ -58,6 +58,7 @@ 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">
@@ -127,7 +128,6 @@ 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 f96af0eb04323efcd9439545c45714cfa5a38c9b..2321089e28246604fa84d9a9fa5144b7c9780234 100644 (file)
@@ -56,6 +56,7 @@
 <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 5895155d5e43d5443ce839d27aca2bb4944d4a3e..b535f904ae5f26c2809c3f065b486814cea2a753 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
@@ -233,6 +161,78 @@ in the scriptlog</td></tr>
       <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 850a31baadf0e6edf0ef7f81965b0886bbc30cab..d8e984a3f9ee630e5c5162a180ce2ca939a87467 100644 (file)
     MIME <code>application/x-httpd-cgi</code>. L'utilisation du type
     MIME magic est obsolète.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#env">Les variables d'environnement CGI</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#cgi-debug">Débogage des scripts CGI</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptlog">ScriptLog</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptloglength">ScriptLogLength</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#env">Les variables d'environnement CGI</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#cgi-debug">Débogage des scripts CGI</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code> ExecCGI</li>
@@ -78,88 +78,6 @@ 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> définit
-    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 soit le
-    répertoire dans lequel se trouve le journal doit être accessible en
-    écriture pour cet utilisateur, soit le fichier doit être 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>PAS</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 ce qui concerne la vitesse et l'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 limite 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 modifie 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>
-    définit 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
@@ -252,6 +170,88 @@ CGI</td></tr>
       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> définit
+    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 soit le
+    répertoire dans lequel se trouve le journal doit être accessible en
+    écriture pour cet utilisateur, soit le fichier doit être 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>PAS</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 ce qui concerne la vitesse et l'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 limite 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 modifie 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>
+    définit 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 b7e179758fbba4159e479b0f7d9ea702fd15743c..fb5551bc4e49b55be0b82339499f3d01f554328f 100644 (file)
     であるファイルでも cgi-script ハンドラが有効になります。この特殊な MIME タイプを
     使う方法は非推奨です。</p> 
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#env">CGI 環境変数</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#cgi-debug">CGI のデバッグ</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptlog">ScriptLog</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptloglength">ScriptLogLength</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#env">CGI 環境変数</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#cgi-debug">CGI のデバッグ</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code> ExecCGI</li>
 <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 c068484eaab95018edb5924c02fe80115efb6324..4bb234a1cbaffd4c618ca4dc7b676f60298e180a 100644 (file)
     <code class="module"><a href="../mod/mod_cgid.html">mod_cgid</a></code> ¸ðµâÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ
     ÀÔÀå¿¡¼­ ÀÌ µÎ ¸ðµâÀº ±âº»ÀûÀ¸·Î µ¿ÀÏÇÏ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#env">CGI È¯°æº¯¼ö</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#cgi-debug">CGI µð¹ö±ë</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptlog">ScriptLog</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptlogbuffer">ScriptLogBuffer</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#scriptloglength">ScriptLogLength</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#env">CGI È¯°æº¯¼ö</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#cgi-debug">CGI µð¹ö±ë</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
 <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 3a27551b0766d81d1da31665541f0d857d25a537..1c0c3d935172dd58a1f3c42f6729151dc7b98ee9 100644 (file)
@@ -74,6 +74,7 @@
 <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">
@@ -125,7 +126,6 @@ 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 d50993facffec8385d9472d383c1f980ad16279e..74a8728c75a0df0904af6b4bbb709e3c8a67c710 100644 (file)
@@ -78,6 +78,7 @@ 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">
@@ -129,7 +130,6 @@ 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 e6e6fc35b15bf73c2758bb784c77aaeb74afc8ac..c2f9e5996c4946656f6bdf056808027216a7f859 100644 (file)
@@ -73,6 +73,7 @@
 <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">
@@ -112,7 +113,6 @@ 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 bf77d552dc4e2764b2a8565d12a94a07937da44d..19764fc02d99c1e37404aa28551323e1c83059b9 100644 (file)
@@ -71,6 +71,7 @@
 <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">
@@ -108,7 +109,6 @@ 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 9be9bcb4d0f1dfa03df67868aa915f29038d4649..684e339e0a22d5a58a03a503d932218905ee288b 100644 (file)
 </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>
     <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a>. Generally, this means that it must be
     supported by iconv.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory /export/home/trawick/apacheinst/htdocs/convert&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
     CharsetSourceEnc  UTF-16BE
     CharsetDefault    ISO-8859-1
 &lt;/Directory&gt;</pre>
     <a class="glossarylink" href="../glossary.html#apr" title="see glossary">APR</a>. Generally, this means that it must be
     supported by iconv.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory /export/home/trawick/apacheinst/htdocs/convert&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
     CharsetSourceEnc  UTF-16BE
     CharsetDefault    ISO-8859-1
 &lt;/Directory&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="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 54ccb6aa0d8c410ecb0d978d1798296e3890fe57..2aba0dff6e0645a60cca9cbfd809aee6339149c9 100644 (file)
@@ -51,16 +51,57 @@ traductions ou les r
     par Apache version russe, ainsi que son module
     <code>mod_charset</code> associé.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#problems">Problèmes courants</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#charsetdefault">CharsetDefault</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#charsetoptions">CharsetOptions</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#charsetsourceenc">CharsetSourceEnc</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<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>
+<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">
@@ -174,47 +215,6 @@ 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 90214c3f5817937887b50ffb317cbad6684aed29..29058c2b7331ff1364002123d714224b4571e9ae 100644 (file)
     <p>ÀÌ ¸ðµâÀº ·¯½Ã¾ÆÆÇ ¾ÆÆÄÄ¡ÀÇ <code>mod_charset</code>ÀÌ
     Á¦°øÇϴ ¼³Á¤ÀÇ ÀϺθ¦ Á¦°øÇÑ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#problems">ÀϹÝÀûÀΠ¹®Á¦Á¡</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#charsetdefault">CharsetDefault</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#charsetoptions">CharsetOptions</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#charsetsourceenc">CharsetSourceEnc</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<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>
+<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">
 
     <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 31516532e2de2fe12ce6fb5953ea62410f3d274d..bcecf75e0f344086529cd688b475c36ee1b64222 100644 (file)
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Directory /export/home/trawick/apacheinst/htdocs/convert&gt;
+&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
     CharsetSourceEnc  UTF-16BE
     CharsetDefault    ISO-8859-1
 &lt;/Directory&gt;
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Directory /export/home/trawick/apacheinst/htdocs/convert&gt;
+&lt;Directory "/export/home/trawick/apacheinst/htdocs/convert"&gt;
     CharsetSourceEnc  UTF-16BE
     CharsetDefault    ISO-8859-1
 &lt;/Directory&gt;
index c463bf21af8af9b06008832c0386a5fd2774d57f..82a099fd1b0174bb504f61a01d25fe0fe83cf696 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
@@ -245,6 +171,80 @@ 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 25e2bd467147b4b3a49f6114298b9784bb8d10b1..c98eec893be4962cf350722a2ad3913398fa3941 100644 (file)
@@ -45,106 +45,24 @@ documents via le web (<a href="http://www.webdav.org/">WebDAV</a>)</td></tr>
     supprimer des ressources ou collections de ressources sur un serveur
     web distant.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">Activation de WebDAV</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">Problèmes concernant la sécurité</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#complex">Configurations complexes</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#dav">Dav</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#davdepthinfinity">DavDepthInfinity</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#davmintimeout">DavMinTimeout</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#example">Activation de WebDAV</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">Problèmes concernant la sécurité</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#complex">Configurations complexes</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code></li>
 <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> active 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>
-    autorise 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 requête, 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>
-    spécifie, 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
@@ -268,6 +186,88 @@ 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> active 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>
+    autorise 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 requête, 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>
+    spécifie, 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 636e67c22d77978048f528022ecffc7819c347f6..514a0662733b8cd4808c72e8f777fe6219475261 100644 (file)
     リソースやコレクションを
     作成、移動、複製、削除できるようになります。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">Enabling WebDAV</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">セキュリティの問題</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#complex">複雑な設定</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#dav">Dav</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#davdepthinfinity">DavDepthInfinity</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#davmintimeout">DavMinTimeout</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#example">Enabling WebDAV</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">セキュリティの問題</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#complex">複雑な設定</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code></li>
 <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>
@@ -255,6 +175,86 @@ 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 160f41561d885270b75f774db478d1426192d78e..036d071899994a2d2b4b5e7c9ddf301d263b0995 100644 (file)
     °°Àº °³³äÀÌ´Ù)</span> ¸¸µé°í, ¿Å±â°í, º¹»çÇϰí, Áö¿ï
     ¼ö ÀÖµµ·Ï HTTP ÇÁ·ÎÅäÄÝÀ» È®ÀåÇÑ °ÍÀÌ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">WebDAV »ç¿ëÇϱâ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">º¸¾È ¹®Á¦</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#complex">º¹ÀâÇÑ ¼³Á¤</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#dav">Dav</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#davdepthinfinity">DavDepthInfinity</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#davmintimeout">DavMinTimeout</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#example">WebDAV »ç¿ëÇϱâ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">º¸¾È ¹®Á¦</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#complex">º¹ÀâÇÑ ¼³Á¤</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_dav_fs.html#davlockdb">DavLockDB</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#limitxmlrequestbody">LimitXMLRequestBody</a></code></li>
 <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>
@@ -255,6 +176,85 @@ 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 9b7e3f7c9a1d5954c92c39ce9e0f862d2f084b1c..e2219841fb5d2472832ba7b1529ac540b310fe74 100644 (file)
@@ -56,6 +56,7 @@
 <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">
@@ -87,7 +88,6 @@
 
 
 </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 fe68e94f430d1829d0b43cc4d5a3fd1ede7726f7..3c462b94cac57d2680bf96f52082711d0ed3d32a 100644 (file)
@@ -58,6 +58,7 @@
 <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">
@@ -93,7 +94,6 @@
 
 
 </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 2ff1247c90bed4760a7da6412997e843210cab31..6f36f295260493ed0354230919e2093a5fffc39c 100644 (file)
@@ -63,6 +63,7 @@
 <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">
@@ -85,7 +86,6 @@
     </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 12457389b78a421976e3759b52ae5652981a492a..b2d540fb43a696c95916cf56ccc2d9389ea18ffc 100644 (file)
@@ -58,6 +58,7 @@
 <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">
@@ -90,7 +91,6 @@
 
 
 </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 e6fa6defb87c96871a6198876413de02f1aa9fd1..31e3c4063d55bb9bb2a07541362618dce9ac57ea 100644 (file)
@@ -63,6 +63,7 @@
 <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">
@@ -92,7 +93,6 @@
 
 
 </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 4546d0dd3efb5f28238252eae0abafc50e8f3c7b..55b97ce63ba846a348ba59e01570f588d4867d7c 100644 (file)
@@ -68,6 +68,7 @@
 <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 4fc1e706a57043b90547975f22ec2b14b9159077..1e87181265752c8047e80b7bb6fcbdb5efc5c07f 100644 (file)
@@ -66,6 +66,7 @@
 <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">
@@ -96,7 +97,6 @@
 
 
 </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 ef5e4ff199c0e0f5e45af1aa1c872b049a265741..263e5ccdb3ee1462c1cf8fe94c8f0a1dd4a5a0be 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>
     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 a100ce2b7a428e666e26ae46a306b3426b93fd04..d816371edd5f2fe275ec42f3e74ee3d332f63a53 100644 (file)
     développement d'Apache DBD</a> par son développeur initial.
 </p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#pooling">Regroupement des connexions</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#API">API DBD d'Apache</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#prepared">Requêtes SQL préparées</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">AVERTISSEMENT DE SECURITE</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#dbdexptime">DBDExptime</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#dbdinitsql">DBDInitSQL</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#dbdpreparesql">DBDPrepareSQL</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#dbdriver">DBDriver</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#pooling">Regroupement des connexions</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#API">API DBD d'Apache</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#prepared">Requêtes SQL préparées</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">AVERTISSEMENT DE SECURITE</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><a href="../misc/password_encryptions.html">Formats des 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="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 DEVRA être 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 DEVRA PAS être 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 DEVRA PAS être 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 pour
+    le compte 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 sûres 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 de
+    Perl (NdT : <code>taint checking</code>). Chaque entrée est comparée
+    à une expression rationnelle, et
+    seules les entrées qui correspondent sont utilisées, en accord avec
+    le raccourci 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
+    en échec. 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 ainsi désormais 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>
@@ -237,133 +364,6 @@ 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 DEVRA être 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 DEVRA PAS être 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 DEVRA PAS être 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 pour
-    le compte 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 sûres 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 de
-    Perl (NdT : <code>taint checking</code>). Chaque entrée est comparée
-    à une expression rationnelle, et
-    seules les entrées qui correspondent sont utilisées, en accord avec
-    le raccourci 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
-    en échec. 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 ainsi désormais 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 985a57d48f1751756f6c6b4d04b8c51e29490d56..0a8eac62a56ea439843c59acf10c4ef9fafbe015 100644 (file)
@@ -65,6 +65,172 @@ 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="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a> <a name="deflatealteretag" id="deflatealteretag">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>How the outgoing ETag header should be modified during compression</td></tr>
@@ -262,172 +428,6 @@ 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 14c4b9a7ca985eb4ec4a069e5f9163844a7e861e..14c08348f04866d948d514bf94064c6a3383e118 100644 (file)
@@ -42,7 +42,12 @@ client</td></tr>
     sortie <code>DEFLATE</code> qui permet de comprimer la sortie de
     votre serveur avant de l'envoyer au client sur le réseau.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#recommended">Exemples de configurations</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation de la compression</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#proxies">Prise en compte des serveurs mandataires</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatealteretag">DeflateAlterETag</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
@@ -54,16 +59,152 @@ client</td></tr>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#recommended">Exemples de configurations</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation de la compression</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#proxies">Prise en compte des serveurs mandataires</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <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="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 à une attaque pour
+       vol d'informations lorsqu'une connexion TLS transporte des
+       données compressées par deflate. Pour plus de détails,
+       documentez-vous sur la famille d'attaques "BREACH".</p>
+    </div>
+    <p>Voici un exemple simple de configuration qui permet de comprimer
+    les types de contenu à base de texte.</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 à une attaque pour
+       vol d'informations lorsqu'une connexion TLS transporte des
+       données compressées par deflate. Pour plus de détails,
+       documentez-vous sur la famille d'attaques "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="deflatealteretag" id="deflatealteretag">Directive</a> <a name="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Comment l'en-tête sortant ETag doit être modifié au cours
@@ -284,147 +425,6 @@ 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 à une attaque pour
-       vol d'informations lorsqu'une connexion TLS transporte des
-       données compressées par deflate. Pour plus de détails,
-       documentez-vous sur la famille d'attaques "BREACH".</p>
-    </div>
-    <p>Voici un exemple simple de configuration qui permet de comprimer
-    les types de contenu à base de texte.</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 à une attaque pour
-       vol d'informations lorsqu'une connexion TLS transporte des
-       données compressées par deflate. Pour plus de détails,
-       documentez-vous sur la famille d'attaques "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 d7ef309010050ecf636d54f3088fd677beb92c51..2bad7efdca6f826a62f72774d4468c1d0baf8a2b 100644 (file)
     出力フィルタを提供します。これはサーバからの出力を、ネットワークを
     通してクライアントに送る前に圧縮することを可能にします。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#recommended">サンプル設定</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#enable">圧縮を有効にする</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#proxies">Proxy サーバでの扱い</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatealteretag">DeflateAlterETag</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#recommended">サンプル設定</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#enable">圧縮を有効にする</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#proxies">Proxy サーバでの扱い</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <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="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a> <a name="deflatealteretag" id="deflatealteretag">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>How the outgoing ETag header should be modified during compression</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateAlterETag AddSuffix|NoChange|Remove</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateAlterETag AddSuffix</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>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></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="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a> <a name="deflatealteretag" id="deflatealteretag">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>How the outgoing ETag header should be modified during compression</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateAlterETag AddSuffix|NoChange|Remove</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateAlterETag AddSuffix</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>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></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 f17eacda4de631fa16824161445216ba3aa9220c..43d6d85fc44efbaa0012fa3f0811ed5a8a6d6de1 100644 (file)
     Å¬¶óÀÌ¾ðÆ®¿¡ º¸³»±â Àü¿¡ ¾ÐÃàÇϴ <code>DEFLATE</code> Ãâ·ÂÇÊÅ͸¦
     Á¦°øÇÑ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#recommended">°ßº» ¼³Á¤</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#enable">¾ÐÃàÇϱâ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#proxies">ÇÁ·Ï½Ã ¼­¹ö ´Ù·ç±â</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatealteretag">DeflateAlterETag</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#recommended">°ßº» ¼³Á¤</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#enable">¾ÐÃàÇϱâ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#proxies">ÇÁ·Ï½Ã ¼­¹ö ´Ù·ç±â</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <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="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a> <a name="deflatealteretag" id="deflatealteretag">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>How the outgoing ETag header should be modified during compression</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateAlterETag AddSuffix|NoChange|Remove</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateAlterETag AddSuffix</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>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="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="DeflateAlterETag" id="DeflateAlterETag">DeflateAlterETag</a> <a name="deflatealteretag" id="deflatealteretag">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>How the outgoing ETag header should be modified during compression</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>DeflateAlterETag AddSuffix|NoChange|Remove</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>DeflateAlterETag AddSuffix</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>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="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 398be151aac50f71b2efd9d238c3b3f1ae2aa976..ff709164cb306aa937b6752e89563d96f29197e2 100644 (file)
@@ -104,7 +104,7 @@ SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
       >AddOutputFilter</directive>, for example:</p>
 
       <highlight language="config">
-&lt;Location /dav-area&gt;
+&lt;Location "/dav-area"&gt;
     ProxyPass http://example.com/
     SetOutputFilter INFLATE
 &lt;/Location&gt;
@@ -124,7 +124,7 @@ SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip
       >AddInputFilter</directive>, for example:</p>
 
       <highlight language="config">
-&lt;Location /dav-area&gt;
+&lt;Location "/dav-area"&gt;
     SetInputFilter DEFLATE
 &lt;/Location&gt;
       </highlight>
index d58e30552470da311bbb2ac7eb46d911b778da8b..6af0bc73fd3e3747a057ad9e678449f9529bedf3 100644 (file)
@@ -37,7 +37,7 @@
 by the various old modem standards. So, you can browse your site with a 56k
 V.92 modem, by adding something like this:</p>
 
-<pre class="prettyprint lang-config">&lt;Location /mysite&gt;
+<pre class="prettyprint lang-config">&lt;Location "/mysite"&gt;
     ModemStandard V.92
 &lt;/Location&gt;</pre>
 
@@ -53,6 +53,7 @@ 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">
@@ -64,14 +65,13 @@ once the timer hits.  From there the handler can continue to send data to the cl
 </table>
 <p>Specify what modem standard you wish to simulate.</p>
 
-<pre class="prettyprint lang-config">&lt;Location /mysite&gt;
+<pre class="prettyprint lang-config">&lt;Location "/mysite"&gt;
     ModemStandard V.26bis
 &lt;/Location&gt;</pre>
 
 
 
 </div>
-
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dialup.html" title="English">&nbsp;en&nbsp;</a> |
index 5d974fbf03ec2b7ccb1ed35667add81bc218bd8f..2011124df8d12cec6b233db96a933a43a07de0d4 100644 (file)
@@ -58,6 +58,7 @@ 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">
@@ -77,7 +78,6 @@ 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 c8fdf53808e2257aaa65bc228addd6146c58344f..fa2e2c3e471b3177afccece17503d61921ec4b54 100644 (file)
@@ -37,7 +37,7 @@ by the various old modem standards. So, you can browse your site with a 56k
 V.92 modem, by adding something like this:</p>
 
 <highlight language="config">
-&lt;Location /mysite&gt;
+&lt;Location "/mysite"&gt;
     ModemStandard V.92
 &lt;/Location&gt;
 </highlight>
@@ -59,7 +59,7 @@ once the timer hits.  From there the handler can continue to send data to the cl
 <p>Specify what modem standard you wish to simulate.</p>
 
 <highlight language="config">
-&lt;Location /mysite&gt;
+&lt;Location "/mysite"&gt;
     ModemStandard V.26bis
 &lt;/Location&gt;
 </highlight>
index bfe3bbc9fa76e3b281b2c1c7e9a09301b5fb3bdd..d591bf05714db7abafe3941b4953bb015f3bdeed 100644 (file)
@@ -68,6 +68,7 @@
 <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">
@@ -146,19 +147,19 @@ a directory</td></tr>
     to the list of resources to look for rather than replace:
     </p>
     <pre class="prettyprint lang-config"># Example A: Set index.html as an index page, then add index.php to that list as well.
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     DirectoryIndex index.html
     DirectoryIndex index.php
 &lt;/Directory&gt;
 
 # Example B: This is identical to example A, except it's done with a single directive.
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     DirectoryIndex index.html index.php
 &lt;/Directory&gt;
 
 # Example C: To replace the list, you must explicitly reset it first:
 # In this example, only index.php will remain as an index resource.
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     DirectoryIndex index.html
     DirectoryIndex disabled
     DirectoryIndex index.php
@@ -240,7 +241,7 @@ a directory</td></tr>
     this.</p>
 
     <pre class="prettyprint lang-config"># see security warning below!
-&lt;Location /some/path&gt;
+&lt;Location "/some/path"&gt;
     DirectorySlash Off
     SetHandler some-handler
 &lt;/Location&gt;</pre>
@@ -296,16 +297,15 @@ later</td></tr>
     if inheritance from a parent directory is not desired.</p>
     <p>In a sub-URI, such as <em>http://example.com/blog/</em> this
     <em>sub-URI</em> has to be supplied as <var>local-url</var>:</p>
-    <pre class="prettyprint lang-config">&lt;Directory /web/example.com/htdocs/blog&gt;
+    <pre class="prettyprint lang-config">&lt;Directory "/web/example.com/htdocs/blog"&gt;
     FallbackResource /blog/index.php
 &lt;/Directory&gt;
-&lt;Directory /web/example.com/htdocs/blog/images&gt;
+&lt;Directory "/web/example.com/htdocs/blog/images"&gt;
     FallbackResource disabled
 &lt;/Directory&gt;</pre>
 
 
 </div>
-
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_dir.html" title="English">&nbsp;en&nbsp;</a> |
index 92dd8b3af4b7c2438e3cb7bbd7c92350e74d2f0c..8b5d3f14baa3372407fca756f7c8e653c276fac3 100644 (file)
@@ -69,6 +69,7 @@ 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">
@@ -341,7 +342,6 @@ 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 59c1040904e2842acfe523ee48c5e2a510a80853..41dbde181a673d0c2f977c4239acf9f6790b61f0 100644 (file)
@@ -76,6 +76,7 @@
 <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">
@@ -222,7 +223,6 @@ 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 c9cc4324b6c7de2a55d7c5c4af8644d1aa7553a2..9eadb0c13af891b450d090a6de35bea716c6a9bd 100644 (file)
@@ -69,6 +69,7 @@ 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">
@@ -207,7 +208,6 @@ 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 bcf87a2b1b98cebe87455c4831bf096796ef2d4f..6471f0cc6021d8fb05d9ee6cc62fbc6be6fc3656 100644 (file)
@@ -67,6 +67,7 @@
 <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">
@@ -272,7 +273,6 @@ act as if "DirectoryCheckHandler ON" was specified.</td></tr>
     </code></p></div>
 
 </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 f9384bdcb75bda7f0b73c03cb9b1985cf12aa494..9cb283bf38b9ca3efc7f7e9800793886e76c3061 100644 (file)
@@ -108,19 +108,19 @@ a directory</description>
     </p>
     <highlight language="config">
 # Example A: Set index.html as an index page, then add index.php to that list as well.
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     DirectoryIndex index.html
     DirectoryIndex index.php
 &lt;/Directory&gt;
 
 # Example B: This is identical to example A, except it's done with a single directive.
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     DirectoryIndex index.html index.php
 &lt;/Directory&gt;
 
 # Example C: To replace the list, you must explicitly reset it first:
 # In this example, only index.php will remain as an index resource.
-&lt;Directory /foo&gt;
+&lt;Directory "/foo"&gt;
     DirectoryIndex index.html
     DirectoryIndex disabled
     DirectoryIndex index.php
@@ -209,7 +209,7 @@ a directory</description>
 
     <highlight language="config">
 # see security warning below!
-&lt;Location /some/path&gt;
+&lt;Location "/some/path"&gt;
     DirectorySlash Off
     SetHandler some-handler
 &lt;/Location&gt;
@@ -267,10 +267,10 @@ later</compatibility>
     <p>In a sub-URI, such as <em>http://example.com/blog/</em> this
     <em>sub-URI</em> has to be supplied as <var>local-url</var>:</p>
     <highlight language="config">
-&lt;Directory /web/example.com/htdocs/blog&gt;
+&lt;Directory "/web/example.com/htdocs/blog"&gt;
     FallbackResource /blog/index.php
 &lt;/Directory&gt;
-&lt;Directory /web/example.com/htdocs/blog/images&gt;
+&lt;Directory "/web/example.com/htdocs/blog/images"&gt;
     FallbackResource disabled
 &lt;/Directory&gt;
     </highlight>
index 5926f3465120dc135379bb90fbef23974a79d913..28679e6044fbffb40407a0761cd85df531d08dd3 100644 (file)
 </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>
     <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 3554670bc0f493729ec536b460f830baf037818c..e083a43b501ccfd04c181f3afe1ec62cba2fea3b 100644 (file)
@@ -46,15 +46,29 @@ erreurs de la mani
     volume important de données, et ne doit être
     utilisé qu'à des fins de débogage.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation du support dumpio</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#dumpioinput">DumpIOInput</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#dumpiooutput">DumpIOOutput</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<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>
+<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">
@@ -88,20 +102,6 @@ erreurs</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 bb6993894657c4caf433d28adbc6faeaa1aae725..25d0a1139b081c70a0b30a354e9d64089ef85fc0 100644 (file)
     このモジュールはとてつもないデータ量を出力しますので、
     問題をデバッグしているときにのみ使用するようにしてください。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#enable">dumpio サポートを有効にする</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#dumpioinput">DumpIOInput</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#dumpiooutput">DumpIOOutput</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<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>
+<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">
     </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 ef0ff03096d987805c83218f5eeeaeee62b5a823..463f30444a826ed05fb9d81060cce1976b173959 100644 (file)
@@ -45,6 +45,7 @@ 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">
@@ -62,7 +63,6 @@ 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 b15fcdf90855a97dd97942c94622471f8d1b0da0..574ce8d1f901b5c31e57adeab60bec6c0bb37c5b 100644 (file)
@@ -45,6 +45,7 @@ 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">
@@ -62,7 +63,6 @@ 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 98322b234f605aec7883dd91f394b44705179571..a60914f51cf0c347627db4a678429be35e94bc97 100644 (file)
@@ -45,6 +45,7 @@
 <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">
@@ -62,7 +63,6 @@
 </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 6e7f91e14c12425ce8b76b8f9743d89186a8216c..6284319b9fa118cd844e00b8e60f6292e7e67e13 100644 (file)
@@ -47,6 +47,7 @@
 <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">
@@ -65,7 +66,6 @@
     </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 63c8fae45075960057e05378bd672ca3101aa46c..2aea58f0b9f0803f49561a670943770e6f281d7e 100644 (file)
@@ -55,6 +55,7 @@ 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">
@@ -128,7 +129,6 @@ 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 14a1a1dde6bf63803972a8261fdf7d400d99f5c1..0a9afc6d1bf3fc022fded1b0ca45138a69b5d6ee 100644 (file)
@@ -57,6 +57,7 @@ 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">
@@ -135,7 +136,6 @@ 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 b312f17b7e52e3f895601d81b2714825e95c8944..20d1d67065361e42e6d304619b923b429a9a3fe0 100644 (file)
@@ -57,6 +57,7 @@
 <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 e712d5c4460fac7686f21b24db8fd02132d51acf..ed80e82462cc2be91f73c29261f8a0eef8daf801 100644 (file)
@@ -53,6 +53,7 @@
 <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 2c0745db19179d7b712a751f0ac9877da7083a73..6c0996a2532a183e666926fe9ec066d9dc4abd42 100644 (file)
@@ -57,6 +57,7 @@ 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,7 +131,6 @@ etmek için kullanılır.</td></tr>
     </code></p></div>
 
 </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 fa72fd14761f5c02f4c6225721a6f5ed3cec1496..24407507f0e414799eeff2d0d4cd94fde148253c 100644 (file)
 </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>
 
@@ -134,7 +114,7 @@ API</td></tr>
 
     <p>To activate the example_hooks module, include a block similar to
     the following in your <code>httpd.conf</code> file:</p>
-<pre class="prettyprint lang-config">&lt;Location /example-hooks-info&gt;
+<pre class="prettyprint lang-config">&lt;Location "/example-hooks-info"&gt;
    SetHandler example-hooks-handler
 &lt;/Location&gt;</pre>
 
@@ -148,6 +128,26 @@ API</td></tr>
     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 edd73b67553de1f90c3b44d414c64c398bdb1b73..f18ed177bb12c46b3935eec44d8cc119e53d1403 100644 (file)
     correspondante, vous verrez s'afficher certaines sorties que le
     module example_hooks produit au cours des différents appels.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#example">Example</a></li>
-</ul>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#compiling">Compilation du module example_hooks</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation du module
 <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>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#example">Example</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="compiling" id="compiling">Compilation du module example_hooks</a></h2>
@@ -161,6 +140,27 @@ Apache</td></tr>
     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 9479ba2d909ddb899d99c5a1a67a28672dd92894..90ce2d9d6342b757e775e35ddbb70df8ade01b95 100644 (file)
     ±×°÷À» ºê¶ó¿ì¡Çϸé example ¸ðµâÀÇ ¿©·¯ ÄݹéÀ» È®ÀÎÇÒ ¼ö
     ÀÖ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#example">Example</a></li>
-</ul>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#compiling">example ¸ðµâ ÄÄÆÄÀÏÇϱâ</a></li>
 <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>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<ul id="toc">
+<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="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 dfb9655b8dc16ba8612138a403500a8d159d5ab2..b8d65172b353e37f75994992acfd77431171f9ea 100644 (file)
     <p>To activate the example_hooks module, include a block similar to
     the following in your <code>httpd.conf</code> file:</p>
 <highlight language="config">
-&lt;Location /example-hooks-info&gt;
+&lt;Location "/example-hooks-info"&gt;
    SetHandler example-hooks-handler
 &lt;/Location&gt;
 </highlight>
index 3d378bb19ab4e4fe1a9650e3e62caa7c5b2e1ee8..11c179de41e61d2290910df658e18a4c5e96e1ec 100644 (file)
@@ -71,6 +71,63 @@ criteria</td></tr>
 </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>
@@ -180,63 +237,6 @@ 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 1e78b09e3dbf70a2b97cb254663cde86934371ea..4103c303812e4d773281535d1839c7e0420dbcd9 100644 (file)
@@ -62,17 +62,74 @@ l'utilisateur</td></tr>
     module n'ajoute aucun en-tête <code>Expires</code> ou
     <code>Cache-Control</code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">Autre syntaxe de définition de
+l'intervalle</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresactive">ExpiresActive</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresbytype">ExpiresByType</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresdefault">ExpiresDefault</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">Autre syntaxe de définition de
-l'intervalle</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+<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">
@@ -186,63 +243,6 @@ 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 07265ff0a20165a3a8bd071a100da97291ab7ded..52cd33f504ef74914679a408f22d5e3ae3ae24b7 100644 (file)
     2616 section 14.9</a> 参照) の <code>Cache-Control</code> のディレクティブを
     操作するには <code class="directive"><a href="../mod/mod_headers.html#header">Header</a></code> ディレクティブを
     使うことができます。</p></div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">代替期間指定構文</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresactive">ExpiresActive</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresbytype">ExpiresByType</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresdefault">ExpiresDefault</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<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>
+<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">
     参照してください。</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 da9eb2c1c3015840a534d04981ddde8479b767fc..3574617e4b7807c4c55f667c65e4640416ecc557 100644 (file)
     2616, 14.9 Àý</a> Âü°í)¸¦ ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#AltSyn">´Ù¸¥ ³»ºÎ ¹®¹ý</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresactive">ExpiresActive</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresbytype">ExpiresByType</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#expiresdefault">ExpiresDefault</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<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>
+<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">
     Âü°íÇ϶ó.</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 0da3d0abd4e82dc920128223edb523b76c218fc0..579e29948339380ff447034cca8bfbb61f74282e 100644 (file)
@@ -74,6 +74,130 @@ 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>
@@ -202,130 +326,6 @@ delivery to the client</td></tr>
     <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 1099c59e56ffd250c944f2873c4883a830ce1909..8f39cf298be5f5abc07111639a042a53f27f1507 100644 (file)
@@ -62,19 +62,153 @@ externe avant de l'envoyer au client</td></tr>
     les filtres.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#extfilterdefine">ExtFilterDefine</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#extfilteroptions">ExtFilterOptions</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <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>
@@ -213,140 +347,6 @@ externe avant de l'envoyer au client</td></tr>
     <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 62f6cc343d8ce051f5a6a9eba27bd114ac99029a..af54c87901c6f0d4744496ee4f0326a7a1544683 100644 (file)
     環境としては <code class="module"><a href="../mod/mod_ext_filter.html">mod_ext_filter</a></code> は使えます。</p>
 
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">例</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#extfilterdefine">ExtFilterDefine</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#extfilteroptions">ExtFilterOptions</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">例</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <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 ea1af9b3580d2e368a9c40c3ee8be734504287bd..504c7da632e3aa525f1a12a718954f9853c0a959 100644 (file)
     ¼ö ÀÖ´Ù.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">¿¹Á¦</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#extfilterdefine">ExtFilterDefine</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#extfilteroptions">ExtFilterOptions</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">¿¹Á¦</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <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 75f375897dff2d93e29dd73aa57e14a6d2d804f2..325caf1b540ff95c1d6039fffb2337bfc433ac50 100644 (file)
@@ -90,7 +90,7 @@ ExtFilterDefine c-to-html mode=output \
 # mod_ext_filter directive to define the external filter
 ExtFilterDefine gzip mode=output cmd=/bin/gzip
 
-&lt;Location /gzipped&gt;
+&lt;Location "/gzipped"&gt;
     
     # core directive to cause the gzip filter to be
     # run on output
@@ -112,7 +112,7 @@ ExtFilterDefine gzip mode=output cmd=/bin/gzip
 ExtFilterDefine slowdown mode=output cmd=/bin/cat \
     preservescontentlength
 
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     # core directive to cause the slowdown filter to
     # be run several times on output
     #
@@ -129,7 +129,7 @@ ExtFilterDefine slowdown mode=output cmd=/bin/cat \
 ExtFilterDefine fixtext mode=output intype=text/html \
     cmd="/bin/sed s/verdana/arial/g"
 
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     # core directive to cause the fixtext filter to
     # be run on output
     SetOutputFilter fixtext
@@ -163,7 +163,7 @@ ExtFilterDefine traceafter \
     cmd="/bin/tracefilter.pl /tmp/traceafter" \
     EnableEnv=trace_this_client ftype=21
 
-&lt;Directory /usr/local/docs&gt;
+&lt;Directory "/usr/local/docs"&gt;
     SetEnvIf Remote_Addr 192.168.1.31 trace_this_client
     SetOutputFilter tracebefore;deflate;traceafter
 &lt;/Directory&gt;
index 28a7c22fa192f7749922b706d196c156a934fed2..0d4972dcd998a72f77d1f0029318b143f6e0314f 100644 (file)
 </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 290ea06f27879e3bcc505205d2e4b801f4a46012..97b00d36d40d8e461f1b821cfb31fe23398b4744 100644 (file)
@@ -67,81 +67,15 @@ fichiers</td></tr>
     <p>Ce module est une extension et s'inspire fortement du module
     d'Apache 1.3 <code>mod_mmap_static</code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#using">Utilisation de mod_file_cache</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachefile">CacheFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#mmapfile">MMapFile</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<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> associe
-    des gestionnaires à un ou plusieurs fichiers (séparés par des
-    espaces), et place 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 est inacceptable.
-    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> provoque le chargement d'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 est inacceptable.
-    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>
+<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 mod_file_cache</a></h2>
@@ -233,6 +167,72 @@ m
         | 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> associe
+    des gestionnaires à un ou plusieurs fichiers (séparés par des
+    espaces), et place 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 est inacceptable.
+    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> provoque le chargement d'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 est inacceptable.
+    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 f73a037981092e5df51901f63dd9e38d0ef46142..d4a483110077bec4a6a72c75ceefb46b403eeea8 100644 (file)
     <p>ÀÌ ¸ðµâÀº ¾ÆÆÄÄ¡ 1.3¿¡ Àִ <code>mod_mmap_static</code>
     ¸ðµâÀÇ ±â´ÉÀ» È®ÀåÇÑ °á°ú´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#using">mod_file_cache »ç¿ëÇϱâ</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachefile">CacheFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#mmapfile">MMapFile</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<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>
+<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">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 e0db7a553d7cdae1c0db440975203d626d9ad20f..8ce6750ac7dbfe413848a63ef22476c3514a68e9 100644 (file)
 </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>
@@ -98,7 +292,7 @@ being moved to <code class="module"><a href="../mod/mod_filter.html">mod_filter<
     <code>INCLUDES</code> filter and then by the <code>DEFLATE</code>
     filter.</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /cgi-bin/&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/cgi-bin/"&gt;
     Options Includes
     AddOutputFilterByType INCLUDES;DEFLATE text/html
 &lt;/Location&gt;</pre>
@@ -294,200 +488,6 @@ 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></p>
index ccf76b64cb8d9ec5d1b613982338b9eb872bc986..660fb678029e42f8dc45321a45a4d1903435b551 100644 (file)
@@ -193,7 +193,7 @@ 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;
+&lt;Location "/image-filter"&gt;
     FilterChain unpack downsample repack
 &lt;/Location&gt;
     </highlight>
@@ -281,7 +281,7 @@ being moved to <module>mod_filter</module> in version 2.3.7</compatibility>
     filter.</p>
 
     <highlight language="config">
-&lt;Location /cgi-bin/&gt;
+&lt;Location "/cgi-bin/"&gt;
     Options Includes
     AddOutputFilterByType INCLUDES;DEFLATE text/html
 &lt;/Location&gt;
index 4efc97732e5f6579d749b230b3a5d4fe277d5318..214b95d1a56246c148576ff92b40c53bacbf4a92 100644 (file)
 <li><code class="program"><a href="../programs/firehose.html">firehose</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="enable" id="enable">Enabling a Firehose</a></h2>
+    
+
+    <p>To enable the module, it should be compiled and loaded
+    in to your running Apache configuration, and the directives below
+    used to record the data you are interested in.</p>
+    
+    <p>It is possible to record both incoming and outgoing data to
+    the same filename if desired, as the direction of flow is recorded
+    within each fragment.</p>
+
+    <p>It is possible to write to both normal files and fifos (pipes).
+    In the case of fifos, mod_firehose ensures that the packet size is
+    no larger than PIPE_BUF to ensure writes are atomic.</p>
+
+    <p>If a pipe is being used, something must be reading from the pipe
+    before httpd is started for the pipe to be successfully opened for
+    write. If the request to open the pipe fails, mod_firehose will
+    silently stand down and not record anything, and the server will
+    keep running as normal.</p>
+
+    <p>By default, all attempts to write will block the server. If the
+    webserver has been built against APR v2.0 or later, and an optional
+    "nonblock" parameter is specified all file writes will be non
+    blocking, and buffer overflows will cause debugging data to be lost.
+    In this case it is possible to prioritise the running of the server
+    over the recording of firehose data.</p>
+
+</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">Stream Format</a></h2>
+    
+
+    <p>The server typically serves multiple connections simultaneously,
+    and as a result requests and responses need to be multiplexed before
+    being written to the firehose.</p>
+    
+    <p>The fragment format is designed as clear text, so that a firehose
+    can be opened with and inspected by a normal text editor.
+    Alternatively, the <code class="program"><a href="../programs/firehose.html">firehose</a></code> tool can be used to
+    demultiplex the firehose back into individual requests or
+    connections.</p>
+
+    <p>The size of the multiplexed fragments is governed by PIPE_BUF,
+    the maximum size of write the system is prepared to perform
+    atomically. By keeping the multiplexed fragments below PIPE_BUF in
+    size, the module guarantees that data from different fragments does
+    not interleave. The size of PIPE_BUF varies on different operating
+    systems.</p>
+
+    <p>The BNF for the fragment format is as follows:</p>
+
+    <pre> stream = 0*(fragment)
+
+ fragment = header CRLF body CRLF
+
+ header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count
+
+ length = &lt;up to 16 byte hex fragment length&gt;
+ timestamp = &lt;up to 16 byte hex timestamp microseconds since 1970&gt;
+ request = "&lt;"
+ response = "&gt;"
+ uuid = &lt;formatted uuid of the connection&gt;
+ count = &lt;hex fragment number in the connection&gt;
+
+ body = &lt;the binary content of the fragment&gt;
+
+ SPC = &lt;a single space&gt;
+ CRLF = &lt;a carriage return, followed by a line feed&gt;</pre>
+
+    <p>All fragments for a connection or a request will share the same
+    UUID, depending on whether connections or requests are being recorded.
+    If connections are being recorded, multiple requests may appear within
+    a connection. A fragment with a zero length indicates the end of the
+    connection.</p>
+
+    <p>Fragments may go missing or be dropped if the process reading the
+    fragments is too slow. If this happens, gaps will exist in the
+    connection counter numbering. A warning will be logged in the error
+    log to indicate the UUID and counter of the dropped fragment, so it
+    can be confirmed the fragment was dropped.</p>
+
+    <p>It is possible that the terminating empty fragment may not appear,
+    caused by the httpd process crashing, or being terminated ungracefully.
+    The terminating fragment may be dropped if the process reading the
+    fragments is not fast enough.</p>
+
+</div>
+<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
 <div class="directive-section"><h2><a name="FirehoseConnectionInput" id="FirehoseConnectionInput">FirehoseConnectionInput</a> <a name="firehoseconnectioninput" id="firehoseconnectioninput">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Capture traffic coming into the server on each connection</td></tr>
@@ -182,96 +272,6 @@ later.</td></tr>
     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">FirehoseRequestOutput request-output.firehose</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 a Firehose</a></h2>
-    
-
-    <p>To enable the module, it should be compiled and loaded
-    in to your running Apache configuration, and the directives below
-    used to record the data you are interested in.</p>
-    
-    <p>It is possible to record both incoming and outgoing data to
-    the same filename if desired, as the direction of flow is recorded
-    within each fragment.</p>
-
-    <p>It is possible to write to both normal files and fifos (pipes).
-    In the case of fifos, mod_firehose ensures that the packet size is
-    no larger than PIPE_BUF to ensure writes are atomic.</p>
-
-    <p>If a pipe is being used, something must be reading from the pipe
-    before httpd is started for the pipe to be successfully opened for
-    write. If the request to open the pipe fails, mod_firehose will
-    silently stand down and not record anything, and the server will
-    keep running as normal.</p>
-
-    <p>By default, all attempts to write will block the server. If the
-    webserver has been built against APR v2.0 or later, and an optional
-    "nonblock" parameter is specified all file writes will be non
-    blocking, and buffer overflows will cause debugging data to be lost.
-    In this case it is possible to prioritise the running of the server
-    over the recording of firehose data.</p>
-
-</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">Stream Format</a></h2>
-    
-
-    <p>The server typically serves multiple connections simultaneously,
-    and as a result requests and responses need to be multiplexed before
-    being written to the firehose.</p>
-    
-    <p>The fragment format is designed as clear text, so that a firehose
-    can be opened with and inspected by a normal text editor.
-    Alternatively, the <code class="program"><a href="../programs/firehose.html">firehose</a></code> tool can be used to
-    demultiplex the firehose back into individual requests or
-    connections.</p>
-
-    <p>The size of the multiplexed fragments is governed by PIPE_BUF,
-    the maximum size of write the system is prepared to perform
-    atomically. By keeping the multiplexed fragments below PIPE_BUF in
-    size, the module guarantees that data from different fragments does
-    not interleave. The size of PIPE_BUF varies on different operating
-    systems.</p>
-
-    <p>The BNF for the fragment format is as follows:</p>
-
-    <pre> stream = 0*(fragment)
-
- fragment = header CRLF body CRLF
-
- header = length SPC timestamp SPC ( request | response ) SPC uuid SPC count
-
- length = &lt;up to 16 byte hex fragment length&gt;
- timestamp = &lt;up to 16 byte hex timestamp microseconds since 1970&gt;
- request = "&lt;"
- response = "&gt;"
- uuid = &lt;formatted uuid of the connection&gt;
- count = &lt;hex fragment number in the connection&gt;
-
- body = &lt;the binary content of the fragment&gt;
-
- SPC = &lt;a single space&gt;
- CRLF = &lt;a carriage return, followed by a line feed&gt;</pre>
-
-    <p>All fragments for a connection or a request will share the same
-    UUID, depending on whether connections or requests are being recorded.
-    If connections are being recorded, multiple requests may appear within
-    a connection. A fragment with a zero length indicates the end of the
-    connection.</p>
-
-    <p>Fragments may go missing or be dropped if the process reading the
-    fragments is too slow. If this happens, gaps will exist in the
-    connection counter numbering. A warning will be logged in the error
-    log to indicate the UUID and counter of the dropped fragment, so it
-    can be confirmed the fragment was dropped.</p>
-
-    <p>It is possible that the terminating empty fragment may not appear,
-    caused by the httpd process crashing, or being terminated ungracefully.
-    The terminating fragment may be dropped if the process reading the
-    fragments is not fast enough.</p>
-
 </div>
 </div>
 <div class="bottomlang">
index ea6efdd69815dedd5fbd4568a8532692103f6194..d18fcea6f48ae36862d43f62dc56b476d3b781b5 100644 (file)
@@ -52,6 +52,158 @@ headers</td></tr>
 </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>
@@ -392,158 +544,6 @@ 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 8b787e7ae032e0700403d9d9ca89cd51ce3fcef9..4d7e58232858ff89ca6cc397f8946cc4115197af 100644 (file)
@@ -40,18 +40,185 @@ HTTP</td></tr>
     modifier les en-têtes de requêtes et de réponses HTTP. Les en-têtes
     peuvent être fusionnés, remplacés ou supprimés.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
-</ul>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#order">Chronologie du traitement</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#early">Traitement précoce et traitement
 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>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</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">
@@ -438,173 +605,6 @@ 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 c0240ca021d04cf49587f2d8866575e0106f9322..48dc67ef3e9fef55fc7b7af0d04c5e4abfb15ce0 100644 (file)
     変更するためのディレクティブを提供します。ヘッダを追加したり、
     置き換えたり、削除したりすることができます。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
-</ul>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#order">処理の順番</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#early">早期処理、後期処理</a></li>
 <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>
+</ul><h3 class="directives">ディレクティブ</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</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">
     生成されたヘッダを上書きしたり修正したりできるようになっています。</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 e0f254d9500cd39fc318a04391c27cf952b4279b..4c579e61e1f7961abff075a67dfcb637c4beefae 100644 (file)
     <p>ÀÌ ¸ðµâÀº HTTP ¿äû Çì´õ¿Í ÀÀ´ä Çì´õ¸¦ Á¶ÀýÇÏ°í ¼öÁ¤ÇÏ´Â
     Áö½Ã¾îµéÀ» Á¦°øÇÑ´Ù. Çì´õ¸¦ ÇÕÄ¡°Å³ª ´ëü, Á¦°ÅÇÒ ¼ö ÀÖ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</a></li>
-</ul>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#order">󸮠¼ø¼­</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#early">À̸¥(early) Ã³¸®¿Í ´ÊÀº(late) Ã³¸®</a></li>
 <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>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#header">Header</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#requestheader">RequestHeader</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">
     ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</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 452ef5a9fa7238388ad4e236802213dc3f64a126..be6d9f3b89cf26db63a2e495a58180e48376999a 100644 (file)
@@ -60,25 +60,6 @@ of <code class="directive"><a href="../mod/mod_proxy.html#proxypass">ProxyPass</
 </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>
     
@@ -98,6 +79,25 @@ 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 9207378d9e021e84506eef61dd75909e59d79db6..4d6ffb07b0ea1d981c3e6927551f0c08682c7ecd 100644 (file)
@@ -60,6 +60,7 @@ 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">
@@ -114,7 +115,6 @@ 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></p>
index 38d65dccf77842d7f0e7cf3471ec33c620dddac0..ad48c1850567100bdbf8270ab2410049a2b9a8c5 100644 (file)
@@ -47,6 +47,7 @@
 <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">
@@ -93,7 +94,6 @@ 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 985e0261951f6005c103ccedb9e7ca7cacac550e..77eb07f5d8b9cd084b4b82c4a212646b8f8ed0ec 100644 (file)
@@ -49,6 +49,7 @@
 <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">
@@ -101,7 +102,6 @@ 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 f33a34b8d68f99246ed06f9ba90d23fe6f413ebc..989cee6dd1bfaf301de0db89ece7da027305f5e9 100644 (file)
@@ -47,6 +47,7 @@
 <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">
@@ -93,7 +94,6 @@
     合わせてタイムアウト値を調節するのがよいでしょう。</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 846d1cddaafdf6b4f1aca124423607c296a68b7c..e1ad5da03827ed1e7d2bc97539af6d8f28301b9c 100644 (file)
@@ -51,6 +51,7 @@
 <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">
@@ -94,7 +95,6 @@
     ¼öÁ¤ÇÒ ¼ö ÀÖ´Ù.</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 242ddd3b3c752d3aabb57d1cc08a881a00371a31..438af3905527aa20bcc682a38661851a4ce912f7 100644 (file)
 </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>
 
@@ -378,6 +290,94 @@ an imagemap</td></tr>
       &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 2c99fa548807507fbdf88c54ce2ea0433ba054a6..50679805892e8432dba09b471ac9b5c5a61fb023 100644 (file)
     <p>±×·¯³ª ¿ì¸®´Â Á¡Â÷ "¼­¹ö¿¡°Ô Æ¯º°ÇÑ Àǹ̰¡ Àִ MIME
     type"À» Á¦°ÅÇÏ·Á°í Çϱ⶧¹®¿¡ ÀÌ ¹æ¹ýÀº ¾ø¾îÁú °ÍÀÌ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#imapbase">ImapBase</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#imapdefault">ImapDefault</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#imapmenu">ImapMenu</a></li>
-</ul>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#features">»õ·Î¿î ±â´É</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#imapfile">À̹ÌÁö¸Ê ÆÄÀÏ</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#example">¸ÊÆÄÀÏ ¿¹Á¦</a></li>
 <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><h3 class="directives">Áö½Ã¾îµé</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#imapbase">ImapBase</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#imapdefault">ImapDefault</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#imapmenu">ImapMenu</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="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>
+<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="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 c9ff02584b5e0beac994d550fe88eea922fb3601..6dc9d145c3347d481ad211786a217e6c56a4d2ae 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="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>
+<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>
 
-<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>This directive has the same effect as the <code>&lt;!--#config
-    errmsg=<var>message</var> --&gt;</code> element.</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>
 
-    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&gt;"</pre>
+    <pre class="prettyprint lang-config">Options +Includes</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="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>
-</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>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>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>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>
+    
 
-      <dl>
+    <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>
 
-        <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>
+    <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>
 
-        <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 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>
 
-      </dl>
+    <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>
 
-</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>
-</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>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>
 
-      <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>
+    <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>
 
-        <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>
+      <div class="example"><p><code>
+        &lt;!--#config echomsg="[Value Undefined]" --&gt;
+      </code></p></div>
+      </dd>
 
-        <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>
+      <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>
+      &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>
+      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
+      </code></p></div>
+      
+      </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>
 
-</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>
-<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>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>
-
-    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
-      SSIEndTag   "%&gt;"</pre>
+      <p>Attributes:</p>
 
+      <dl>
+      <dt><code>var</code></dt>
+      <dd>The value is the name of the variable to print.</dd>
 
-    <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>
+      <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 class="example"><h3>SSI directives with alternate start and end tags</h3><p><code>
-      &lt;%printenv %&gt;
-    </code></p></div>
+      <p>The <code>decoding</code> attribute must <em>precede</em> the
+      corresponding <code>var</code> attribute to be effective.</p>
+      </dd>
 
-<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>
+      <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>
 
-    <p>This directive has the same effect as the <code>&lt;!--#config
-    timefmt=<var>formatstring</var> --&gt;</code> element.</p>
+      <p>The <code>encoding</code> attribute must <em>precede</em> the
+      corresponding <code>var</code> attribute to be effective.</p>
 
-    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
+      <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;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
+      </code></p></div>
+      </dd>
+      </dl>
+     
 
-    <p>The above directive would cause times to be displayed in the
-    format "22:26, June 14, 2002".</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>
 
-</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>
+      <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>
 
-    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- undef --&gt;"</pre>
+      <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>
 
+      <div class="example"><h3>Example</h3><p><code>
+        &lt;!--#exec cgi="/cgi-bin/example.cgi" --&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">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>If the script returns a <code>Location:</code> header instead of
+      output, then this will be translated into an HTML anchor.</p>
 
-    <dl>
-      <dt><code>off</code></dt>
-      <dd>No special treatment of executable files.</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>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;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
+      </code></p></div>
+      </dd>
 
-      <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.
+      <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="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>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>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>
+      <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>
-
+      </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">Enabling Server-Side Includes</a></h2>
-    
+    <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>
 
-    <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>
+      <dl>
+      <dt><code>file</code></dt>
+      <dd>The value is a path relative to the directory
+      containing the current document being parsed.
 
-    <pre class="prettyprint lang-config">AddType text/html .shtml
-AddOutputFilter INCLUDES .shtml</pre>
+    <div class="example"><p><code>
+        This file is &lt;!--#fsize file="mod_include.html" --&gt; bytes.
+    </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>
 
-    <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>
+      <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>
 
-    <pre class="prettyprint lang-config">Options +Includes</pre>
+    <div class="example"><p><code>
+        This file is &lt;!--#fsize virtual="/docs/mod/mod_include.html" --&gt; bytes.
+    </code></p></div>
 
+      <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>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>
+    <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>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>
-    
+    <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>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>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>
 
-    <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>
+      <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 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>
+      <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>The allowed elements are listed in the following table:</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>
 
-    <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>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>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>
+      <div class="example"><p><code>
+        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
+      </code></p></div>
 
-    <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>
+      <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>
 
-      <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>
+      <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>
 
-      <div class="example"><p><code>
-        &lt;!--#config echomsg="[Value Undefined]" --&gt;
-      </code></p></div>
       </dd>
 
-      <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>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>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>
-      &lt;!--#config sizefmt="abbrev" --&gt;
+        # Simple example<br />
+        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&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>
-      &lt;!--#config timefmt=""%R, %B %d, %Y"" --&gt;
+        # 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>
       </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>
+    <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>
 
-      <p>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.set" id="element.set">The set Element</a></h3>
+      <p>This sets the value of a variable. Attributes:</p>
 
       <dl>
       <dt><code>var</code></dt>
-      <dd>The value is the name of the variable to print.</dd>
+      <dd>The name of the variable to set.</dd>
+
+      <dt><code>value</code></dt>
+      <dd>The value to give a variable.</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>, 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>
+      <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>
 
       <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>
-
-      <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>
+      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="example"><h3>Example</h3><p><code>
-        &lt;!--#echo encoding="entity" var="QUERY_STRING" --&gt;
+        &lt;!--#set var="category" value="help" --&gt;
       </code></p></div>
-      </dd>
-      </dl>
      
-
-    <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>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>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>
-
-      <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 <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 class="example"><p><code>
-        &lt;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
-      </code></p></div>
-      </dd>
-
-      <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>
-
-      <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>
-        This file is &lt;!--#fsize file="mod_include.html" --&gt; bytes.
-    </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>
-
-      <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>
-
-      <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>
-     
-
-    <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>
-     
-
-    <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>
-
-      <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>
-
-      <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>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;!--#include virtual="/cgi-bin/example.cgi?argument=value" --&gt;
-      </code></p></div>
-
-      <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>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>
-
-      </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>
-
-      <div class="example"><p><code>
-        # Simple example<br />
-        &lt;!--#include virtual="/not-exist.html" onerror="/error.html" --&gt;
-      </code></p></div>
-
-      <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>
-      </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.set" id="element.set">The set Element</a></h3>
-      <p>This sets the value of a variable. 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>
-
-      <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>
-
-      <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="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="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
@@ -922,160 +646,436 @@ AddOutputFilter INCLUDES .shtml</pre>
       &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>
+    <p>The below example will print "foo is bar" if the variable
+    <code>foo</code> is set to the value "bar".</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="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>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>
+
+    <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>
+
+      <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>
+
+      <dt><code><var>string1</var> = <var>string2</var><br />
+      <var>string1</var> == <var>string2</var><br />
+      <var>string1</var> != <var>string2</var></code></dt>
+
+      <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>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>
+
+      <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>
+
+      <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>
+
+    <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>
+
+    <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>
+
+    <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>
+
+    <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 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>
+
+    <pre class="prettyprint lang-config">SSIEndTag "%&gt;"</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>This directive has the same effect as the <code>&lt;!--#config
+    errmsg=<var>message</var> --&gt;</code> element.</p>
+
+    <pre class="prettyprint lang-config">SSIErrorMsg "&lt;!-- Error --&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="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>
+</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 <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>
+
+      <dl>
+
+        <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>
+
+        <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>
+
+      </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="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>
+</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 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>
+
+      <dl>
+
+        <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>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>
+
+      </dl>
+
 
-    <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="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="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>
-    
+</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>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>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>
 
-    <dl>
-      <dt><code><var>string</var></code></dt>
-      <dd>true if <var>string</var> is not empty</dd>
+    <pre class="prettyprint lang-config">      SSIStartTag "&lt;%"<br />
+      SSIEndTag   "%&gt;"</pre>
 
-      <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>
 
-      <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>
+    <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>
 
-      <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"><h3>SSI directives with alternate start and end tags</h3><p><code>
+      &lt;%printenv %&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>
+<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>
 
-      <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>
+    <p>This directive has the same effect as the <code>&lt;!--#config
+    timefmt=<var>formatstring</var> --&gt;</code> element.</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;
-      </code></p></div>
-      </dd>
+    <pre class="prettyprint lang-config">SSITimeFormat "%R, %B %d, %Y"</pre>
 
-      <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>
+    <p>The above directive would cause times to be displayed in the
+    format "22:26, June 14, 2002".</p>
 
-      <dt><code>( <var>test_condition</var> )</code></dt>
-      <dd>true if <var>test_condition</var> is 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="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 false</dd>
+    <pre class="prettyprint lang-config">SSIUndefinedEcho "&lt;!-- undef --&gt;"</pre>
 
-      <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>
+</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>"<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>
+    <dl>
+      <dt><code>off</code></dt>
+      <dd>No special treatment of executable files.</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>Any <code>text/html</code> file that has the user-execute bit
+      set will be treated as a server-parsed html document.</dd>
 
-    <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>
+      <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>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>
+      <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><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>
+      <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="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>
+      </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>
 </div>
index ea5ac87b952c1fead09999ba4b6383a2b05001d5..295fbaf53ec047b43c7e63a547961ce979b28da3 100644 (file)
     プログラムの出力の取り込み、環境変数の設定や表示を行なうことが
     できます。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#enabling">Server-Side Includes を有効にする</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#pathinfo">サーバサイドインクルード (SSI) での PATH_INFO</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#elements">基本要素</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#includevars">Include 変数</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#substitution">変数置換</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#flowctrl">フロー制御要素</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#ssiendtag">SSIEndTag</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ssierrormsg">SSIErrorMsg</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ssiundefinedecho">SSIUndefinedEcho</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#xbithack">XBitHack</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#enabling">Server-Side Includes を有効にする</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#pathinfo">サーバサイドインクルード (SSI) での PATH_INFO</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#elements">基本要素</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#includevars">Include 変数</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#substitution">変数置換</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#flowctrl">フロー制御要素</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#acceptpathinfo">AcceptPathInfo</a></code></li>
 <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>
-</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>
-</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>
     
@@ -863,6 +646,223 @@ server.</td></tr>
     エスケープしなければなりません。
     正規表現の意味がどうであろうとエスケープは必要です。</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>
+</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>
+</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 9fbc5860148aaa710bce66cece03088c86973bda..3afa3f1ffacb0c5e7c2383aa0e279a4f3e41b19b 100644 (file)
@@ -39,7 +39,7 @@ configuration</td></tr>
     <p>To configure <code class="module"><a href="../mod/mod_info.html">mod_info</a></code>, add the following to your
     <code>httpd.conf</code> file.</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /server-info&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/server-info"&gt;
     SetHandler server-info
 &lt;/Location&gt;</pre>
 
@@ -49,7 +49,7 @@ configuration</td></tr>
     directive to limit access to your server configuration
     information:</p>
 
-    <pre class="prettyprint lang-config">&lt;Location /server-info&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/server-info"&gt;
     SetHandler server-info
     Require host example.com
 &lt;/Location&gt;</pre>
@@ -70,26 +70,6 @@ configuration</td></tr>
 </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/trunk/mod/mod_deflate.html"&gt;\
-    http://httpd.apache.org/docs/trunk/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
@@ -107,7 +87,7 @@ information displayed by the server-info handler</td></tr>
     <p>You will probably want to use <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</a></code>
     to limit access to your server configuration information.</p>
 
-    <div class="example"><h3>Access control</h3><pre class="prettyprint lang-config">&lt;Location /server-info&gt;
+    <div class="example"><h3>Access control</h3><pre class="prettyprint lang-config">&lt;Location "/server-info"&gt;
     SetHandler server-info
     Order allow,deny
     # Allow access from server itself
@@ -187,6 +167,26 @@ information displayed by the server-info handler</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/trunk/mod/mod_deflate.html"&gt;\
+    http://httpd.apache.org/docs/trunk/mod/mod_deflate.html&lt;/a&gt;'</pre>
+
+
 </div>
 </div>
 <div class="bottomlang">
index fabe6ee2e96c93446ece527fb1437f02e7d55f55..1caec6914fb91047a2603cbe79318be4e2e20be3 100644 (file)
@@ -58,37 +58,17 @@ serveur</td></tr>
     serveur sont disponibles à l'adresse
     <code>http://votre-serveur.com/infos-serveur</code>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</a></li>
-</ul>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Problèmes liés à la sécurité</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#queries">Filtrage des informations affichées</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#startup">Affichage de la configuration au démarrage</a></li>
 <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/trunk/mod/mod_deflate.html"&gt;\
-    http://httpd.apache.org/docs/trunk/mod/mod_deflate.html&lt;/a&gt;'</pre>
-
-
-</div>
+</ul><h3 class="directives">Directives</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</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">Problèmes liés à la sécurité</a></h2>
@@ -195,6 +175,26 @@ module affich
       <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/trunk/mod/mod_deflate.html"&gt;\
+    http://httpd.apache.org/docs/trunk/mod/mod_deflate.html&lt;/a&gt;'</pre>
+
+
 </div>
 </div>
 <div class="bottomlang">
index 35db11dbe2af826b0d66ae5d96cba492120f938f..b740dc4f7e06df3623254f844fdab8ed841deb05 100644 (file)
     <p>一旦設定すると、<code>http://your.host.example.com/server-info</code>
     にアクセスすることでサーバの情報を得られるようになります。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</a></li>
-</ul>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Security Issues</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#queries">表示される情報の選択</a></li>
 <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/trunk/mod/mod_deflate.html"&gt;\<br />
-        http://www.apache.org/docs/trunk/mod/mod_deflate.html&lt;/a&gt;'
-      </span>
-    </code></p></div>
-
-</div>
+</ul><h3 class="directives">ディレクティブ</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</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="security" id="security">Security Issues</a></h2>
            のディレクティブは表示されないかもしれません。</li>
     </ul>
 </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/trunk/mod/mod_deflate.html"&gt;\<br />
+        http://www.apache.org/docs/trunk/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 3dd9230183071d7924b5a0aa8c869261f5440cc2..294e111e2aa2c1ef53dfaabcdad59ef79ba6d5c3 100644 (file)
     <code>http://your.host.example.com/server-info</code>¿¡
     Á¢±ÙÇÏ¿© ¼­¹ö¿¡ ´ëÇÑ Á¤º¸¸¦ º¼ ¼ö ÀÖ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</a></li>
-</ul>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#security">º¸¾È ¹®Á¦</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#queries">º¸¿©Áִ Á¤º¸ ¼±ÅÃÇϱâ</a></li>
 <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/trunk/mod/mod_deflate.html"&gt;\<br />
-        http://www.apache.org/docs/docs/trunk/mod/mod_deflate.html&lt;/a&gt;'
-      </span>
-    </code></p></div>
-
-</div>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#addmoduleinfo">AddModuleInfo</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">º¸¾È ¹®Á¦</a></h2>
           Áö½Ã¾î¸¦ º¸¿©ÁÖÁö ¸øÇÒ ¼ö ÀÖ´Ù.</li>
     </ul>
 </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/trunk/mod/mod_deflate.html"&gt;\<br />
+        http://www.apache.org/docs/docs/trunk/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 c0a028653928ba1e523ff659294c2326be19fdfd..947cb4f59e3b715e512c529af07175a4e4da4970 100644 (file)
@@ -34,7 +34,7 @@ configuration</description>
     <code>httpd.conf</code> file.</p>
 
     <highlight language="config">
-&lt;Location /server-info&gt;
+&lt;Location "/server-info"&gt;
     SetHandler server-info
 &lt;/Location&gt;
     </highlight>
@@ -45,7 +45,7 @@ configuration</description>
     information:</p>
 
     <highlight language="config">
-&lt;Location /server-info&gt;
+&lt;Location "/server-info"&gt;
     SetHandler server-info
     Require host example.com
 &lt;/Location&gt;
@@ -73,7 +73,7 @@ configuration</description>
 
     <example><title>Access control</title>
     <highlight language="config">
-&lt;Location /server-info&gt;
+&lt;Location "/server-info"&gt;
     SetHandler server-info
     Order allow,deny
     # Allow access from server itself
index ec10d78a9efa6978df0ecf335a53864d979dbac7..87da958cc687963b29ef4a16536f33b828542742 100644 (file)
 </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>
 
@@ -334,6 +231,109 @@ extensions</td></tr>
     <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 23021a54a42ec0cdf21c2bd0af371cee5b9aefcb..076cae82cb49a607dd1fcbaad9b1a0a2c9f6a9a8 100644 (file)
     Á÷Á¢ ¿¬¶ôÇϱ根ٶõ´Ù. <strong>Á¦¹ß ÀÌ·± ¹®Á¦¸¦ ¾ÆÆÄÄ¡
     ¸ÞÀϸµ¸®½ºÆ®³ª ¹ö±×º¸°í ÆäÀÌÁö¿¡ ¿Ã¸®Áö <em>¸¶¶ó</em>.</strong></p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#usage">»ç¿ë¹ý</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#notes">Ãß°¡ ¼³¸í</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#journal">°³¹ßÀÚ Á¤º¸</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#isapiappendlogtoerrors">ISAPIAppendLogToErrors</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#isapiappendlogtoquery">ISAPIAppendLogToQuery</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#isapilognotsupported">ISAPILogNotSupported</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#isapireadaheadbuffer">ISAPIReadAheadBuffer</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#usage">»ç¿ë¹ý</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#notes">Ãß°¡ ¼³¸í</a></li>
-<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>
+<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="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 b7d0b94a32450c7a2688a45498591004bc64a861..edecf4898b614d3fc4fd935e85f51b5fd48d8020 100644 (file)
 </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="JournaldCustomLog" id="JournaldCustomLog">JournaldCustomLog</a> <a name="journaldcustomlog" id="journaldcustomlog">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable logging of CustomLog/TransferLog to systemd-journald</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>JournaldCustomLog on|off</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>JournaldCustomLog 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>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_journald</td></tr>
-</table>
-
-    <p>The <code class="directive">JournaldCustomLog</code> directive enables logging
-    of CustomLog and TransferLog messages to systemd-journald.
-    </p>
-
-    <div class="warning"><h3>Performance warning</h3><p>
-    Currently, systemd-journald is not designed for high-throughput logging
-    and logging access_log to systemd-journald could decrease the performance
-    a lot.
-    </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="structured" id="structured">Structured logging</a></h2>
     
     <pre class="prettyprint lang-config">ErrorLog journald</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="JournaldCustomLog" id="JournaldCustomLog">JournaldCustomLog</a> <a name="journaldcustomlog" id="journaldcustomlog">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable logging of CustomLog/TransferLog to systemd-journald</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>JournaldCustomLog on|off</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>JournaldCustomLog 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>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_journald</td></tr>
+</table>
+
+    <p>The <code class="directive">JournaldCustomLog</code> directive enables logging
+    of CustomLog and TransferLog messages to systemd-journald.
+    </p>
+
+    <div class="warning"><h3>Performance warning</h3><p>
+    Currently, systemd-journald is not designed for high-throughput logging
+    and logging access_log to systemd-journald could decrease the performance
+    a lot.
+    </p></div>
+
 </div>
 </div>
 <div class="bottomlang">
index 7a2e31d12f54ed9cc011c0d03d75dd68abfd918e..dd7cd819e2e25498aecd2e035230f6e32302f9e7 100644 (file)
@@ -52,6 +52,7 @@ 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">
@@ -67,7 +68,6 @@ 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></p>
index 6a4179e0655a6db260d42acfea8c6c8addecbf4d..7042c21c01cffabf795ae77ef2825044574a5080 100644 (file)
@@ -85,424 +85,6 @@ by other LDAP modules</td></tr>
 </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>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>Extension</td></tr>
-<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
-</table>
-    <p>Specifies the path of the shared memory cache file. If not set, 
-    anonymous shared memory will be used if the platform supports it.</p>
-
-    <p>If <var>file-path</var> is not an absolute path, the location specified
-    will be relative to the value of 
-    <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</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="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
@@ -521,7 +103,7 @@ LDAPCacheTTL 600
 LDAPOpCacheEntries 1024
 LDAPOpCacheTTL 600
 
-&lt;Location /ldap-status&gt;
+&lt;Location "/ldap-status"&gt;
     SetHandler ldap-status
 
     Require host yourdomain.example.com
@@ -627,7 +209,7 @@ LDAPOpCacheTTL 600
       following directives could be used to access the
       <code class="module"><a href="../mod/mod_ldap.html">mod_ldap</a></code> cache information:</p>
 
-      <pre class="prettyprint lang-config">&lt;Location /server/cache-info&gt;
+      <pre class="prettyprint lang-config">&lt;Location "/server/cache-info"&gt;
     SetHandler ldap-status
 &lt;/Location&gt;</pre>
 
@@ -659,11 +241,154 @@ LDAPOpCacheTTL 600
 
 LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-&lt;Location /ldap-status&gt;
+&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>
+
+
+    <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"
@@ -673,172 +398,447 @@ LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 &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.
+    
+
+    <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>
+
+        <p>Both SSL and TLS are supported by using the ldaps:// URL
+        format, or by using the LDAPTrustedMode directive accordingly.</p>
 
-LDAPTrustedGlobalCert CA_DER /certs/certfile.der
+        <p>Note: The status of support for client certificates is not yet known
+        for this toolkit.</p>
 
-&lt;Location /ldap-status&gt;
-    SetHandler ldap-status
+    
 
-    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="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>
 
-    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="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>
 
-</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>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>The different LDAP SDKs have widely different methods of setting
-    and handling both CA and client side certificates.</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>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>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>
 
-    <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>
+</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>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> 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 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>
+    <p>The default is 10 seconds, if the LDAP client library linked with the
+    server supports the LDAP_OPT_NETWORK_TIMEOUT option.</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
+    <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>
 
-    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="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>
 
-    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>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>
 
-    
 
-    <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="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>
 
-        <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>
+<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>
 
-        <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="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>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>
+<div class="warning">
+<p> Support for this tunable is uncommon in LDAP SDKs.</p>
+</div>
 
-        <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>
+</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>
 
-    <h3><a name="settingcerts-openldap" id="settingcerts-openldap">OpenLDAP SDK</a></h3>
+    <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>
 
-        <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="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>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>
+</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>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>
+    <p>LDAP errors such as timeouts and refused connections are retryable.</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="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>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>Extension</td></tr>
+<tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ldap</td></tr>
+</table>
+    <p>Specifies the path of the shared memory cache file. If not set, 
+    anonymous shared memory will be used if the platform supports it.</p>
 
-    Require host yourdomain.example.com
+    <p>If <var>file-path</var> is not an absolute path, the location specified
+    will be relative to the value of 
+    <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.</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>
+</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>
 
-    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">Solaris SDK</a></h3>
+    <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>
 
-        <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="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>
 
-    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">Microsoft 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="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>
 
-        <p>SSL/TLS certificate configuration for the native Microsoft
-        LDAP libraries is done inside the system registry, and no
-        configuration directives are required.</p>
+</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>Both SSL and TLS are supported by using the ldaps:// URL
-        format, or by using the LDAPTrustedMode directive accordingly.</p>
+    <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>Note: The status of support for client certificates is not yet known
-        for this toolkit.</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>
index f3e8b382306ba184fbc22c6762848c1c5241c44d..41181345c52442b52639e28066f4fdd4bfcafcd9 100644 (file)
@@ -54,7 +54,14 @@ cache du r
     ou le SDK LDAP Microsoft natif. Voir le site web <a href="http://apr.apache.org">APR</a> pour plus de détails.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#exampleconfig">Exemple de configuration</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#pool">Conservation des connexions LDAP</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#cache">Cache LDAP</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#usingssltls">Utiliser SSL/TLS</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#settingcerts">Certificats SSL/TLS</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#ldapcacheentries">LDAPCacheEntries</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ldapcachettl">LDAPCacheTTL</a></li>
@@ -75,859 +82,852 @@ cache du r
 <li><img alt="" src="../images/down.gif" /> <a href="#ldaptrustedmode">LDAPTrustedMode</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#ldapverifyservercert">LDAPVerifyServerCert</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#exampleconfig">Exemple de configuration</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#pool">Conservation des connexions LDAP</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#cache">Cache LDAP</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#usingssltls">Utiliser SSL/TLS</a></li>
-<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>
+<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="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>
+<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>
 
-</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>
+    <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>
-<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>
+LDAPSharedCacheSize 500000
+LDAPCacheEntries 1024
+LDAPCacheTTL 600
+LDAPOpCacheEntries 1024
+LDAPOpCacheTTL 600
 
-    <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>
+&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>
 
-    <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>
+</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>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>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>
 
-    <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>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>
 
-</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>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>
 
-    <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>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 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>
+    <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>
 
-    <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> 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>
 
-</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>
+    <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>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>
+      <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 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>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>
+    
 
+    <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="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>
-
-</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>
+      <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>
 
-</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>
+      <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 class="warning">
-<p>L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.</p>
-</div>
+    <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="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>
+      <pre class="prettyprint lang-config">&lt;Location /server/cache-info&gt;
+    SetHandler ldap-status
+&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>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>
     
-    <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="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="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>
+    <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>
 
-</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>
+    <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.
 
-    <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>
+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="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>
+&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>Si <var>chemin-fichier</var> n'est pas un chemin absolu, il sera
-    relatif au répertoire défini via la directive <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</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="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>
+    <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="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>
+LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-    <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>
+&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 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>
 
+</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>
-<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>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="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>
+    <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>
 
-</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>
+    <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 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>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>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>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>
 
-</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>
+        <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
 
-</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>
+    Require host yourdomain.example.com
 
-    <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.
+    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>
 
-LDAPSharedCacheSize 500000
-LDAPCacheEntries 1024
-LDAPCacheTTL 600
-LDAPOpCacheEntries 1024
-LDAPOpCacheTTL 600
 
+    
+
+    <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>
+
+        <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>
+
+
+    
+
+    <h3><a name="settingcerts-openldap" id="settingcerts-openldap">SDK OpenLDAP</a></h3>
+
+        <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>
+
+        <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>
+
+        <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 ldap://127.0.0.1/dc=example,dc=com?uid?one
+    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="section">
-<h2><a name="pool" id="pool">Conservation des connexions LDAP</a></h2>
 
-    <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>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>
+    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">SDK Solaris</a></h3>
 
-    <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>
+        <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>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>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>
+    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">SDK Microsoft</a></h3>
 
-    <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 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>
 
-    <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>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> 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>
+        <p>Note: L'état du support des certificats clients n'est pas
+       encore connu pour ce SDK.</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>
     
 
-    <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>
-
-      <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>
+</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 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="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="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="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>
 
-      <pre class="prettyprint lang-config">&lt;Location /server/cache-info&gt;
-    SetHandler ldap-status
-&lt;/Location&gt;</pre>
+    <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>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>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>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>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>
+    <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>
 
-    <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>
+<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>
 
-LDAPTrustedGlobalCert CA_DER /certs/certfile.der
+    <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>
 
-&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>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>
 
+    <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>
 
-    <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="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>
 
-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">Certificats SSL/TLS</a></h2>
-
-    <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>
+    <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>
 
-    <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>
+    <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>
 
-    <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>
+</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>
 
-        <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>
+</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"># 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
+</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>
 
-    Require host yourdomain.example.com
+<div class="warning">
+<p>L'ajustement de ce paramètre n'est pas commun à tous les SDKs LDAP.</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="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 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>
 
-    <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>
-
-        <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="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-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="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 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>
+    <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>Les certificats clients sont spécifiés pour chaque connexion
-       à l'aide de la directive LDAPTrustedClientCert.</p>
+</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>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>
+    <p>Si <var>chemin-fichier</var> n'est pas un chemin absolu, il sera
+    relatif au répertoire défini via la directive <code class="directive"><a href="../mod/core.html#defaultruntimedir">DefaultRuntimeDir</a></code>.</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
-&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="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>
 
-    
+    <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>
 
-    <h3><a name="settingcerts-solaris" id="settingcerts-solaris">SDK Solaris</a></h3>
+    <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>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="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>
 
-    <h3><a name="settingcerts-microsoft" id="settingcerts-microsoft">SDK Microsoft</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="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>
 
-        <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>
+</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>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>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>Note: L'état du support des certificats clients n'est pas
-       encore connu pour ce SDK.</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>
 
-    
+</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>
 
 </div>
 </div>
index 811c18b59ec8e673446c84b58a8b3cc1ed3a6753..6362eeb8a83415ba67c86d0c17b4b9fc922d48a7 100644 (file)
@@ -70,7 +70,7 @@ LDAPCacheTTL 600
 LDAPOpCacheEntries 1024
 LDAPOpCacheTTL 600
 
-&lt;Location /ldap-status&gt;
+&lt;Location "/ldap-status"&gt;
     SetHandler ldap-status
 
     Require host yourdomain.example.com
@@ -179,7 +179,7 @@ LDAPOpCacheTTL 600
       <module>mod_ldap</module> cache information:</p>
 
       <highlight language="config">
-&lt;Location /server/cache-info&gt;
+&lt;Location "/server/cache-info"&gt;
     SetHandler ldap-status
 &lt;/Location&gt;
       </highlight>
@@ -212,7 +212,7 @@ LDAPOpCacheTTL 600
 
 LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-&lt;Location /ldap-status&gt;
+&lt;Location "/ldap-status"&gt;
     SetHandler ldap-status
 
     Require host yourdomain.example.com
@@ -233,7 +233,7 @@ LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
 LDAPTrustedGlobalCert CA_DER /certs/certfile.der
 
-&lt;Location /ldap-status&gt;
+&lt;Location "/ldap-status"&gt;
     SetHandler ldap-status
 
     Require host yourdomain.example.com
@@ -285,7 +285,7 @@ LDAPTrustedGlobalCert CA_CERT7_DB /certs/cert7.db
 LDAPTrustedGlobalCert CERT_KEY3_DB /certs/key3.db
 # Specify the secmod file if required
 LDAPTrustedGlobalCert CA_SECMOD /certs/secmod
-&lt;Location /ldap-status&gt;
+&lt;Location "/ldap-status"&gt;
     SetHandler ldap-status
 
     Require host yourdomain.example.com
@@ -354,7 +354,7 @@ LDAPTrustedGlobalCert KEY_BASE64 /certs/key1.pem [password]
 # Specify two CA certificate files
 LDAPTrustedGlobalCert CA_DER /certs/cacert1.der
 LDAPTrustedGlobalCert CA_BASE64 /certs/cacert2.pem
-&lt;Location /ldap-status&gt;
+&lt;Location "/ldap-status"&gt;
     SetHandler ldap-status
 
     Require host yourdomain.example.com
index ac3c3803c7de3218d692d4c44fcff39113d180a9..e50da0275fd171bd34784370dac83f72fbd6277d 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>
 
@@ -535,6 +355,186 @@ TransferLog logs/access_log</pre>
     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 57c39b7e9542ea68c21316ca1e0f55c15df42c6e..cd2953a2629e82deabaf81de300f8f9dd63d5dce 100644 (file)
     <code class="directive">CustomLog</code>
     ディレクティブは複数回使用することができます。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#formats">カスタムログ書式</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">セキュリティに関して</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#bufferedlogs">BufferedLogs</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#customlog">CustomLog</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#logformat">LogFormat</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#transferlog">TransferLog</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#formats">カスタムログ書式</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">セキュリティに関して</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <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 8cc2912e46fafaa1703ec247d22cc95c1bb175ea..db8a03050868987276f24b6fcab9d11b25bac43c 100644 (file)
     <code class="directive">CustomLog</code> Áö½Ã¾î¸¦ ¿©·¯¹ø »ç¿ëÇϸé
     ¿äûÀ» ¿©·¯ ÆÄÀÏ¿¡ ±â·ÏÇÒ ¼ö ÀÖ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#formats">·Î±× Çü½Ä ÁöÁ¤Çϱâ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">º¸¾È»ó °í·ÁÇÒ Á¡</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#bufferedlogs">BufferedLogs</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#customlog">CustomLog</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#logformat">LogFormat</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#transferlog">TransferLog</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#formats">·Î±× Çü½Ä ÁöÁ¤Çϱâ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">º¸¾È»ó °í·ÁÇÒ Á¡</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <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 9d58c4e3dc8e547c2a47950e95166643f95b2081..a4f6207adce2b461e2f89e662665f3150e2608ae 100644 (file)
       her sunucu için birden fazla  <code class="directive">TransferLog</code> ve
       <code class="directive">CustomLog</code> yönergesi belirtilebilir.</p>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#formats">Günlük Girdilerinin Kişiselleştirilmesi</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#security">Güvenlik Kaygıları</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#bufferedlogs">BufferedLogs</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#customlog">CustomLog</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#logformat">LogFormat</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#transferlog">TransferLog</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#formats">Günlük Girdilerinin Kişiselleştirilmesi</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#security">Güvenlik Kaygıları</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <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>
-
-    <div class="example"><p><code>
-      # Biçem dizgesi yerine takma ad içeren CustomLog<br />
-      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
-      CustomLog logs/access_log common<br />
-      <br />
-      # Biçem dizgesinin kendisini içeren CustomLog<br />
-      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
-    </code></p></div>
-
-    <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.</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>
-
-    <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>Veya eski <code>RefererIgnore</code> yönergesinin davranışını taklit
-      etmek isterseniz:</p>
-
-    <div class="example"><p><code>
-    SetEnvIf Referer example\.com yerel-atif<br />
-    CustomLog referer.log referer env=!yerel-atif
-    </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">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>
-
-    <div class="example"><h3>Örnek</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">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>
-
-    <div class="example"><h3>Örnek</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">Günlük Girdilerinin Kişiselleştirilmesi</a></h2>
 
@@ -501,6 +326,181 @@ expr=<var>ifade</var>]</code></td></tr>
       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>
+
+    <div class="example"><p><code>
+      # Biçem dizgesi yerine takma ad içeren CustomLog<br />
+      LogFormat "%h %l %u %t \"%r\" %&gt;s %b" common<br />
+      CustomLog logs/access_log common<br />
+      <br />
+      # Biçem dizgesinin kendisini içeren CustomLog<br />
+      CustomLog logs/access_log "%h %l %u %t \"%r\" %&gt;s %b"
+    </code></p></div>
+
+    <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.</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>
+
+    <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>Veya eski <code>RefererIgnore</code> yönergesinin davranışını taklit
+      etmek isterseniz:</p>
+
+    <div class="example"><p><code>
+    SetEnvIf Referer example\.com yerel-atif<br />
+    CustomLog referer.log referer env=!yerel-atif
+    </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">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>
+
+    <div class="example"><h3>Örnek</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">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>
+
+    <div class="example"><h3>Örnek</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>Mevcut Diller: </span><a href="../en/mod/mod_log_config.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 25d836290d45c409b8fe6ee27772d6d5b28abab6..37f322a91a81497d9f247fae866710464a9ce75d 100644 (file)
 </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 ca31d2eac47f8c25bf64b6473c6d731c21f3b50c..d32a0a1089ee883423602af5b8bdb8d16d382c82 100644 (file)
@@ -36,7 +36,7 @@
         Log message after request to /foo/* is processed:
 
         <highlight language="config">
-&lt;Location /foo/&gt;
+&lt;Location "/foo/"&gt;
 &nbsp;&nbsp;LogMessage "/foo/ has been requested"
 &lt;/Location&gt;
         </highlight>
@@ -45,7 +45,7 @@
       <li>
         Log message if request to /foo/* is processed in a sub-request:
         <highlight language="config">
-&lt;Location /foo/&gt;
+&lt;Location "/foo/"&gt;
 &nbsp;&nbsp;LogMessage "subrequest to /foo/" hook=type_checker expr=%{IS_SUBREQ}
 &lt;/Location&gt;
         </highlight>
@@ -67,7 +67,7 @@
         Log the value of the "X-Foo" request environment variable in each
         stage of the request:
         <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
 &nbsp;&nbsp;LogMessage "%{reqenv:X-Foo}" hook=all
 &lt;/Location&gt;
         </highlight>
index d69fe605e41cadf5b4fa3dc1be08926a34126206..a491363e99b3d06664f2768ce0ed220eda30735e 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">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
     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 47ac727a7a5979cf9a74e7385f31b3a673aaf27f..6dbdb1943dde09e8e35b10106b42e67c42dbcb97 100644 (file)
     配布物の support ディレクトリにある <code>check_forensic</code> 
     スクリプトが役に立つでしょう。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#forensiclog">ForensicLog</a></li>
-</ul>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#formats">Forensic ログフォーマット</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#security">セキュリティの問題</a></li>
-</ul><h3>参照</h3>
+</ul><h3 class="directives">ディレクティブ</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#forensiclog">ForensicLog</a></li>
+</ul>
+<h3>参照</h3>
 <ul class="seealso">
 <li><a href="../logs.html">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">コメント</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 e552c1a14c96f5008016b486aaff3bd96de233a6..3dc1c37fd82945d83db509237c478fc030317533 100644 (file)
       <code>check_forensic</code> betiği adli günlük dosyalarının
       değerlendirilmesinde yardımcı olabilir.</p>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
-<ul id="toc">
-<li><img alt="" src="../images/down.gif" /> <a href="#forensiclog">ForensicLog</a></li>
-</ul>
-<h3>Konular</h3>
+<div id="quickview"><h3>Konular</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#formats">Adli Günlük Biçemi</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#security">Güvenlik Kaygıları</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+</ul><h3 class="directives">Yönergeler</h3>
+<ul id="toc">
+<li><img alt="" src="../images/down.gif" /> <a href="#forensiclog">ForensicLog</a></li>
+</ul>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <li><a href="../logs.html">Apache Günlük Dosyaları</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">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="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
+      (yani, başlıklar alındıktan hemen sonra), ikincisi ise istek işlem
+      gördükten sonra normal günlüklemenin yapıldığı sırada yapılır.</p>
+
+    <p>Her isteği betimlemek için eşsiz bir istek kimliği atanır. Bu adli
+      kimliğin normal günlüğe de yazılması istenirse bu
+      <code>%{forensic-id}n</code> biçem dizgesi ile yapılabilir.
+      <code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> kullanılıyorsa, onun ürettiği kimlik
+      kullanılır.</p>
+
+    <p>İlk satır günlüğe, adli kimliği, istek satırını ve alınan tüm
+      başlıkları boru karakterleri (<code>|</code>) ile ayrılmış olarak
+      kaydeder. Aşağıda bir örneğe yer verilmiştir (hepsi bir satırdadır):</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>Başlangıçtaki artı imi bu günlük satırının istekle ilgili ilk günlük
+      kaydı olduğunu belirtir. İkinci satırda bunun yerini bir eksi imi
+      alır:</p>
+
+    <div class="example"><p><code>
+      -yQtJf8CoAB4AAFNXBIEAAAAA
+    </code></p></div>
+
+    <p><code>check_forensic</code> betiği komut satırı argümanı olarak günlük
+      dosyasının ismini alır. Bu <code>+</code>/<code>-</code> kimlik
+      çiftlerine bakarak tamamlanmamış istekler varsa bunlar hakkında
+      uyarır.</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">Güvenlik Kaygıları</a></h2>
+    <p>Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı
+      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="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>
     </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
-      (yani, başlıklar alındıktan hemen sonra), ikincisi ise istek işlem
-      gördükten sonra normal günlüklemenin yapıldığı sırada yapılır.</p>
-
-    <p>Her isteği betimlemek için eşsiz bir istek kimliği atanır. Bu adli
-      kimliğin normal günlüğe de yazılması istenirse bu
-      <code>%{forensic-id}n</code> biçem dizgesi ile yapılabilir.
-      <code class="module"><a href="../mod/mod_unique_id.html">mod_unique_id</a></code> kullanılıyorsa, onun ürettiği kimlik
-      kullanılır.</p>
-
-    <p>İlk satır günlüğe, adli kimliği, istek satırını ve alınan tüm
-      başlıkları boru karakterleri (<code>|</code>) ile ayrılmış olarak
-      kaydeder. Aşağıda bir örneğe yer verilmiştir (hepsi bir satırdadır):</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>Başlangıçtaki artı imi bu günlük satırının istekle ilgili ilk günlük
-      kaydı olduğunu belirtir. İkinci satırda bunun yerini bir eksi imi
-      alır:</p>
-
-    <div class="example"><p><code>
-      -yQtJf8CoAB4AAFNXBIEAAAAA
-    </code></p></div>
-
-    <p><code>check_forensic</code> betiği komut satırı argümanı olarak günlük
-      dosyasının ismini alır. Bu <code>+</code>/<code>-</code> kimlik
-      çiftlerine bakarak tamamlanmamış istekler varsa bunlar hakkında
-      uyarır.</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">Güvenlik Kaygıları</a></h2>
-    <p>Günlük dosyarının kaydedildiği dizine sunucuyu başlatan kullanıcı
-      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>
 <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 5cf07017a86c148195efac8b9bd61e849db96d49..5bcdb3edc1c59048205e9ebeb3a2df5d572bf308 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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">Directive</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LogIOTrackTTFB 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>none</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_logio</td></tr>
-</table>
-    <p>This directive configures whether this module tracks the delay
-    between the request being read and the first byte of the response
-    headers being written.  The resulting value may be logged with the 
-    <code>%^FB</code> format.</p>
-
-</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>
 
       \"%{User-agent}i\" %I %O"</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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">Directive</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>LogIOTrackTTFB 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>none</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_logio</td></tr>
+</table>
+    <p>This directive configures whether this module tracks the delay
+    between the request being read and the first byte of the response
+    headers being written.  The resulting value may be logged with the 
+    <code>%^FB</code> format.</p>
+
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_logio.html" title="English">&nbsp;en&nbsp;</a> |
index 12bb026e1e597f4d0a63c87ce03aca2466f94b3e..cb1f17a7c4170cbd432661c3d935dda5da7cb491 100644 (file)
     必要です。</p>
 
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#formats">カスタムログ書式</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#logiotrackttfb">LogIOTrackTTFB</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#formats">カスタムログ書式</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 <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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">ディレクティブ</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LogIOTrackTTFB 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>none</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_logio</td></tr>
-</table><p>このディレクティブの解説文書は
-            まだ翻訳されていません。英語版をご覧ください。
-            </p></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>
 
       \"%{User-agent}i\" %I %O"</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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">ディレクティブ</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>LogIOTrackTTFB 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>none</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_logio</td></tr>
+</table><p>このディレクティブの解説文書は
+            まだ翻訳されていません。英語版をご覧ください。
+            </p></div>
 </div>
 <div class="bottomlang">
 <p><span>翻訳済み言語: </span><a href="../en/mod/mod_logio.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index f7bd76c41a418905eed7b23c1b87c5a8aa338fce..f21c06afed9941af413d937f79f0224f33b5e042 100644 (file)
     ÇÊ¿äÇÏ´Ù.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#formats">»ç¿ëÀÚÁ¤ÀÇ ·Î±× Çü½Ä</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#logiotrackttfb">LogIOTrackTTFB</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#formats">»ç¿ëÀÚÁ¤ÀÇ ·Î±× Çü½Ä</a></li>
-</ul><h3>Âü°í</h3>
+<h3>Âü°í</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 <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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">Áö½Ã¾î</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>LogIOTrackTTFB 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>none</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_logio</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="section">
 <h2><a name="formats" id="formats">»ç¿ëÀÚÁ¤ÀÇ ·Î±× Çü½Ä</a></h2>
 
     </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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">Áö½Ã¾î</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">¼³¸í:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">¹®¹ý:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">±âº»°ª:</a></th><td><code>LogIOTrackTTFB 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>none</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_logio</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>
 <div class="bottomlang">
 <p><span>°¡´ÉÇÑ ¾ð¾î: </span><a href="../en/mod/mod_logio.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index ec18d1c252d8b75971396dd014dc2939cedd62af..7103baedf09af8d94e1ebe719a3de865a86b1869 100644 (file)
       yeniden uzlaşımı tetikleyen istekle ilişkilendirilir.</div>
 
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#formats">Özel Günlük Biçemleri</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#logiotrackttfb">LogIOTrackTTFB</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#formats">Özel Günlük Biçemleri</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
 <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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">Yönergesi</a></h2>
-<table class="directive">
-<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>LogIOTrackTTFB OFF</code></td></tr>
-<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak, dizin, .htaccess</td></tr>
-<tr><th><a href="directive-dict.html#Override">Geçersizleştirme:</a></th><td>none</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_logio</td></tr>
-</table><p>Bu yönergenin belgesi henüz Türkçeye çevrilmedi.
-            Lütfen İngilizce sürümüne 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="formats" id="formats">Özel Günlük Biçemleri</a></h2>
 
       \"%{User-agent}i\" %I %O"</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="LogIOTrackTTFB" id="LogIOTrackTTFB">LogIOTrackTTFB</a> <a name="logiotrackttfb" id="logiotrackttfb">Yönergesi</a></h2>
+<table class="directive">
+<tr><th><a href="directive-dict.html#Description">Açıklama:</a></th><td>Enable tracking of time to first byte (TTFB)</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Sözdizimi:</a></th><td><code>LogIOTrackTTFB ON|OFF</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Öntanımlı:</a></th><td><code>LogIOTrackTTFB OFF</code></td></tr>
+<tr><th><a href="directive-dict.html#Context">Bağlam:</a></th><td>sunucu geneli, sanal konak, dizin, .htaccess</td></tr>
+<tr><th><a href="directive-dict.html#Override">Geçersizleştirme:</a></th><td>none</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_logio</td></tr>
+</table><p>Bu yönergenin belgesi henüz Türkçeye çevrilmedi.
+            Lütfen İngilizce sürümüne bakınız.</p></div>
 </div>
 <div class="bottomlang">
 <p><span>Mevcut Diller: </span><a href="../en/mod/mod_logio.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
index 45382a1c833bb73bd24444bcf75dac95183f0095..c9f540645e7d6b90cdaffb8d6b191a1496a755df 100644 (file)
@@ -95,899 +95,276 @@ trust, as it can be abused to change the internal workings of httpd.</p>
 </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="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>
+<div class="section">
+<h2><a name="basicconf" id="basicconf">Basic Configuration</a></h2>
 
-<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>
+<p>The basic module loading directive is</p>
 
-<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-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>
 
-</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>In general stat or forever is good for production, and stat or never
-    for development.</p>
+<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 class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaCodeCache stat
-LuaCodeCache forever
-LuaCodeCache never</pre>
-</div>
+<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>
 
-</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>
+<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="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">
+<strong>example.lua</strong><br />
+-- example handler
 
-   -- look for auth info
-   auth = r.headers_in['Authorization']
-   if auth ~= nil then
-     -- fake the user
-     r.user = 'foo'
-   end
+require "string"
 
-   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
+--[[
+     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>
 
-   <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</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>
-</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
+This handler function just prints out the uri or form encoded
+arguments to a plaintext 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="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.
+This means (and in fact encourages) that you can have multiple
+handlers (or hooks, or filters) in the same script.
 </p>
-<p>Example:</p>
-<pre class="prettyprint lang-config">LuaHookLog /path/to/script.lua logger</pre>
 
-<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>
+</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>
 
 
-</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>
+<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>
 
-    <pre class="prettyprint lang-lua">require"apache2"
-cached_files = {}
+<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>
 
-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>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>
 
-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">
+<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
-    return apache2.DECLINED -- If we had nothing to do, let others serve this.
 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>
+<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>
 
-    <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>
+</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>
 
-<pre class="prettyprint lang-config"># httpd.conf
-LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</pre>
+<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">-- /scripts/conf/hooks.lua --
-require "apache2"
-function silly_mapper(r)
-    if r.uri == "/" then
-        r.filename = "/var/www/home.lua"
+<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
-    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>
-
-   <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>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>
-<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>
+     Note: Use the early/late flags in the directive to make it run before
+           or after mod_alias.
+--]]
 
-    <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
+require 'apache2'
 
+function translate_name(r)
+    if r.uri == "/translate-name" then
+        r.uri = "/find_me.txt"
         return apache2.DECLINED
-    end</pre>
+    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="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>
+</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>
@@ -1476,403 +853,1026 @@ end</pre>
 r:custom_response(404, "Baleted!")</pre>
 
 
-<pre class="prettyprint lang-lua">r.exists_config_define(string) -- Checks whether a configuration definition exists or not:
+<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>
+
+
+<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>
+
+
+<pre class="prettyprint lang-lua">r:regex(string, pattern [,flags]) -- Runs a regular expression match on a string, returning captures if matched:
+
+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
+
+-- 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.usleep(number_of_microseconds) -- Puts the script to sleep for a given number of microseconds.</pre>
+
+
+<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>
+
+
+<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: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:mkdir(dir [,mode]) -- Creates a directory and sets mode to optional mode paramter.</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: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>
+
+
+<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>
+
+
+<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:wsread() -- Reads a WebSocket frame from a WebSocket upgraded connection (see above):
+
+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:wswrite(line) -- Writes a frame to a WebSocket client:
+r:wswrite("Hello, world!")</pre>
+
+
+<pre class="prettyprint lang-lua">r:wsclose() -- Closes a WebSocket request and terminates it for httpd:
+
+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>
+
+
+<pre class="prettyprint lang-lua">r:wspeek() -- Checks if any data is ready to be read
+
+-- Sleep while nothing is being sent to us...
+while r:wspeek() == false do
+   r.usleep(50000)
+end
+-- We have data ready!
+local line = r:wsread()</pre>
+
+
+
+<pre class="prettyprint lang-lua">r:config() -- Get a walkable tree of the entire httpd configuration</pre>
+
+
+<pre class="prettyprint lang-lua">r:activeconfig() -- Get a walkable tree of the active (virtualhost-specific) httpd configuration</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>
+
+
+</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>
+
+</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>
 
-if r.exists_config_define("FOO") then
-    r:puts("httpd was probably run with -DFOO, or it was defined in the configuration")
+</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>
 
+    <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>
 
-<pre class="prettyprint lang-lua">r:state_query(string) -- Queries the server for state information</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")
 
+-- 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>
 
-<pre class="prettyprint lang-lua">r:stat(filename [,wanted]) -- Runs stat() on a file, and returns a table with file information:
+        <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
 
-local info = r:stat("/var/www/foo.txt")
-if info then
-    r:puts("This file exists and was last modified at: " .. info.modified)
+-- 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:regex(string, pattern [,flags]) -- Runs a regular expression match on a string, returning captures if matched:
-
-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
-
--- 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>
+-- 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.usleep(number_of_microseconds) -- Puts the script to sleep for a given number of microseconds.</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:dbacquire(dbType[, dbParams]) -- Acquires a connection to a database and returns a database class.
-                        -- See '<a href="#databases">Database connectivity</a>' for details.</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: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
+     -- fetch rows synchronously:
+    local result, err = statement:select(20)
+    if not err then
+        for index, row in rows(result, false) do
+            ....
+        end
     end
-    r:puts("Cached data is: ", foo)
 end</pre>
 
+    
+    <h3><a name="closing_databases" id="closing_databases">Closing a database connection</a></h3>
+        
 
-<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:mkdir(dir [,mode]) -- Creates a directory and sets mode to optional mode paramter.</pre>
-
+    <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:mkrdir(dir [,mode]) -- Creates directories recursive and sets mode to optional mode paramter.</pre>
+-- 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>
+    
 
-<pre class="prettyprint lang-lua">r:rmdir(dir) -- Removes a directory.</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="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">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">r:touch(file [,mtime]) -- Sets the file modification time to current time or to optional mtime msec value.</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: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>
+<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.date_parse_rfc(string) -- Parses a date/time string and returns seconds since epoche.</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:getcookie(key) -- Gets a HTTP cookie</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:setcookie{
-  key = [key],
-  value = [value],
-  expires = [expiry],
-  secure = [boolean],
-  httponly = [boolean],
-  path = [path],
-  domain = [domain]
-} -- Sets a HTTP cookie, for instance:
+</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'
 
-r:setcookie{
-  key = "cookie1",
-  value = "HDHfa9eyffh396rt",
-  expires = os.time() + 86400,
-  secure = true
-}</pre>
+-- 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)
 
+   -- 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: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!
+   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>
 
-<pre class="prettyprint lang-lua">r:wsread() -- Reads a WebSocket frame from a WebSocket upgraded connection (see above):
+</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</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>
+</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 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>
+</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>
 
+<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.
 
-<pre class="prettyprint lang-lua">r:wswrite(line) -- Writes a frame to a WebSocket client:
-r:wswrite("Hello, world!")</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:wsclose() -- Closes a WebSocket request and terminates it for httpd:
+</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>
 
-if r:wsupgrade() then
-    r:wswrite("Write something: ")
-    local line = r:wsread() or "nothing"
-    r:wswrite("You wrote: " .. line);
-    r:wswrite("Goodbye!")
-    r:wsclose()
+    <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
+
+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>
 
 
-<pre class="prettyprint lang-lua">r:wspeek() -- Checks if any data is ready to be read
+    
+</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>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>
 
--- Sleep while nothing is being sent to us...
-while r:wspeek() == false do
-   r.usleep(50000)
-end
--- We have data ready!
-local line = r:wsread()</pre>
+    <p>Example:</p>
 
+<pre class="prettyprint lang-config"># httpd.conf
+LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</pre>
 
 
-<pre class="prettyprint lang-lua">r:config() -- Get a walkable tree of the entire httpd configuration</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
+    end
+end</pre>
 
 
-<pre class="prettyprint lang-lua">r:activeconfig() -- Get a walkable tree of the active (virtualhost-specific) httpd configuration</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>
 
+   <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="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="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">        -- 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">    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
 
+        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="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>
 
-</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])
+</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>
     
-    -- 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
+    <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>
 
-    -- 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])
+<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>
 
-</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)
+<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>
-    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>
+<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>
 
-    <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")
+<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>
 
--- 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>
+See "<a href="#modifying_buckets">Modifying contents with Lua filters</a>" for more 
+information.
+</p>
 
-        <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>
+</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>
 
-        <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]])
 
--- Close a database connection and free up handles:
-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="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>
 
--- Check whether a database connection is up and running:
-local connected = database:active()</pre>
+    <div class="example"><h3>Examples:</h3><pre class="prettyprint lang-config">LuaPackagePath /scripts/lib/?.lua
+LuaPackagePath /scripts/lib/?/init.lua</pre>
+</div>
 
-    
-    <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:
+</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>
-    <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>
+   <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>
 
-    <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
+</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 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
+</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>
 
-     -- 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>
+   <dl>
+    <dt>once:</dt> <dd>use the interpreter once and throw it away.</dd>
 
-    
-    <h3><a name="closing_databases" id="closing_databases">Closing a database connection</a></h3>
-        
+    <dt>request:</dt> <dd>use the interpreter to handle anything based on
+             the same file within this request, which is also
+             request scoped.</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>conn:</dt> <dd>Same as request but attached to the connection_rec</dd>
 
--- 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>
+    <dt>thread:</dt> <dd>Use the interpreter for the lifetime of the thread 
+            handling the request (only available with threaded MPMs).</dd>
 
-    
-    <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>.
+    <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>
index 19ecb4df82567e2aa2e89f97a98df807b49dbe37..0f67b93506c9732930ee3115de51d5ae9a0801df 100644 (file)
@@ -63,7 +63,20 @@ fonctionnement interne de httpd.</p>
 </div>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#basicconf">Configuration de base</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#writinghandlers">Ecrire des gestionnaires</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#writinghooks">Ecriture de fonctions d'accroche
+(hooks)</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#datastructures">Structures de données</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#functions">Méthodes de l'objet request_rec</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#logging">Fonctions de journalisation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#apache2">Paquet apache2</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#modifying_buckets">Modification de contenu avec les filtres lua</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#databases">Connectivité aux bases de données</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#luaauthzprovider">LuaAuthzProvider</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#luacodecache">LuaCodeCache</a></li>
@@ -86,919 +99,248 @@ fonctionnement interne de httpd.</p>
 <li><img alt="" src="../images/down.gif" /> <a href="#luaroot">LuaRoot</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#luascope">LuaScope</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#basicconf">Configuration de base</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#writinghandlers">Ecrire des gestionnaires</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#writingauthzproviders">Ecriture de fournisseurs d'autorisation</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#writinghooks">Ecriture de fonctions d'accroche
-(hooks)</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#datastructures">Structures de données</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#functions">Méthodes de l'objet request_rec</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#logging">Fonctions de journalisation</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#apache2">Paquet apache2</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#modifying_buckets">Modification de contenu avec les filtres lua</a></li>
-<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>
+<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="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>
+<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">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-config">LoadModule lua_module modules/mod_lua.so</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/core.html#sethandler">SetHandler</a></code> ou <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</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>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>
+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>
 
-    <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaCodeCache stat
-LuaCodeCache forever
-LuaCodeCache never</pre>
-</div>
+<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>
 
-</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>
 
-</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'
+<pre class="prettyprint lang-lua">
+<strong>example.lua</strong><br />
+-- exemple de gestionnaire
 
--- 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)
+require "string"
 
-   -- 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
+--[[
+     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.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
+    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>
 
-<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  /path/to/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>
-</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.
+Ce gestionnaire se contente d'afficher les arguments codés d'un uri ou
+d'un formulaire dans un page au format texte.
 </p>
 
-</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.
+Cela signifie que vous pouvez (et êtes encouragé à) avoir plusieurs
+gestionnaires (ou points d'entrée, ou filtres) dans le même script.
 </p>
-<p>Exemple :</p>
-<pre class="prettyprint lang-config">LuaHookLog /path/to/script.lua logger</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.
+</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>
 
-    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
-end</pre>
 
+<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>
 
-</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>
+<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>
 
-    <pre class="prettyprint lang-lua">require"apache2"
-cached_files = {}
+<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>
 
-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">
+<strong>authz_provider.lua</strong><br />
 
-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
+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
-    return apache2.DECLINED -- Si nous n'avons rien eu à faire, nous laissons les autres s'en charger
 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>
+<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>
 
-    <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>
+</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>
 
-<pre class="prettyprint lang-config"># httpd.conf
-LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</pre>
+<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>
 
-<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
-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>
-
-   <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/core.html#sethandler">SetHandler</a></code> ou <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</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>
+<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">
@@ -1467,542 +809,1200 @@ if mpm == 1 then
 end</pre>
 
 
-<pre class="prettyprint lang-lua">r:expr(string) -- Evalue une chaîne de type <a href="../expr.html">expr</a>.
+<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>
+
+
+<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>
+
+
+<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:state_query(string) -- Interroge le serveur à propos de son état.</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.
+
+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">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: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>
 
-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:rmdir(dir) -- Supprime un répertoire.</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: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:scoreboard_worker(a, b) -- Interroge le serveur à propos du
-                          -- thread <code>b</code>, dans le processus <code>a</code>.
+<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Renvoie une table contenant toutes les entrées de répertoires.
 
-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>
+-- 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:clock() -- Renvoie l'heure courante avec une précision d'une microseconde.</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: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.
+<pre class="prettyprint lang-lua">r:getcookie(key) -- Obtient un cookie HTTP</pre>
 
-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: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:add_input_filter(filter_name) -- Ajoute le filtre en entrée 'filter_name'.</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: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: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-lua">r:loaded_modules() -- Renvoie une liste des modules chargés par httpd.
+<pre class="prettyprint lang-lua">r:wswrite(line) -- écrit un cadre vers un client WebSocket :
+r:wswrite("Bonjour le Monde !")</pre>
 
-for k, module in pairs(r:loaded_modules()) do
-    r:puts("J'ai chargé le module " .. module .. "\n")
+
+<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:wspeek() -- Vérifie s'il y a des données à lire
 
-<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>
+-- Se met en sommeil tant que rien ne nous est envoyé ...
+while r:wspeek() == false do
+   r.usleep(50000)
+end
+-- Il y a des données à lire !
+local line = r:wsread()</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:config() -- Extrait une arborescence de l'ensemble de
+          -- la configuration de httpd pouvant être parcourue</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:activeconfig() -- Extrait une arborescence de la configuration active
+                -- de httpd (pour le serveur virtuel sélectionné)</pre>
 
 
-<pre class="prettyprint lang-lua">r:add_version_component(component_string) -- Ajoute un élément à
-                                          -- la bannière du serveur.</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">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">     -- 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: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="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
+    -- 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.
 
-<pre class="prettyprint lang-lua">r:escape_logitem(string) -- Echappe une chaîne pour journalisation.</pre>
+    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
 
-<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' ?
+    -- 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>
 
-local match = r.strcmp_match("foobar.com", "foo*.com")
-if match then 
-    r:puts("foobar.com matches foo*.com")
+</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
 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>
 
-<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>
+    <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>
 
-<pre class="prettyprint lang-lua">r:make_etag() -- Génère et renvoie le etag pour la requête courante.</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: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>
+        <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]])
 
+-- Ferme une base de données et libère les liens vers cette dernière :
+database:close()
 
-<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.
+-- Vérifie si une connexion à une base de données est en service et
+opérationnelle :
+local connected = database:active()</pre>
 
-r:custom_response(404, "Baleted!")</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>
+    <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 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>
 
-<pre class="prettyprint lang-lua">r.exists_config_define(string) -- Vérifie si une définition de configuration existe.
+    <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
 
-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")
+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>
 
+    
+    <h3><a name="closing_databases" id="closing_databases">Fermeture d'une connexion à une base de données</a></h3>
+        
 
-<pre class="prettyprint lang-lua">r:state_query(string) -- Interroge le serveur à propos de son état.</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:stat(filename [,wanted]) -- Exécute stat() sur un fichier, et renvoie une table contenant
-                           -- des informations à propos de ce fichier.
+    
+    <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>
+    
 
-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>
+</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:regex(string, pattern [,flags]) -- Exécute une recherche à base d'expression rationnelle
-                                  -- sur une chaîne, et renvoie les éventuelles correspondances trouvées.
+<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>
 
-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
+<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>
 
--- 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>
 
+</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>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>
 
-<pre class="prettyprint lang-lua">r.usleep(microsecondes) -- Interrompt l'exécution du script pendant le nombre de microsecondes spécifié.</pre>
+    <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: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>
+</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>
 
+</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'
 
-<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>
+-- 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: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>
+   -- 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:mkdir(dir [,mode]) -- Crée un répertoire et définit son mode via le paramètre optionnel mode.</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  /path/to/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>
+</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>
 
-<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>
+</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">-- /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.
 
-<pre class="prettyprint lang-lua">r:rmdir(dir) -- Supprime un répertoire.</pre>
+    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
+end</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>
+</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 = {}
 
-<pre class="prettyprint lang-lua">r:get_direntries(dir) -- Renvoie une table contenant toutes les entrées de répertoires.
+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
 
--- 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) )
+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
-  end
+    return apache2.DECLINED -- Si nous n'avons rien eu à faire, nous laissons les autres s'en charger
 end</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>
-
+    
+</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:getcookie(key) -- Obtient un cookie HTTP</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: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-config"># httpd.conf
+LuaHookTranslateName /scripts/conf/hooks.lua silly_mapper</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 !
+<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
 end</pre>
 
 
-<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>
+   <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: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="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:wsclose() -- ferme une requête WebSocket et l'achève pour httpd :
+<pre class="prettyprint lang-config">LuaInputFilter myInputFilter /www/filter.lua input_filter
+&lt;Files *.lua&gt;
+  SetInputFilter myInputFilter
+&lt;/Files&gt;</pre>
 
-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()
+<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>
 
-<pre class="prettyprint lang-lua">r:wspeek() -- Vérifie s'il y a des données à lire
-
--- Se met en sommeil tant que rien ne nous est envoyé ...
-while r:wspeek() == false do
-   r.usleep(50000)
-end
--- Il y a des données à lire !
-local line = r:wsread()</pre>
-
-
-
-<pre class="prettyprint lang-lua">r:config() -- Extrait une arborescence de l'ensemble de
-          -- la configuration de httpd pouvant être parcourue</pre>
-
-
-<pre class="prettyprint lang-lua">r:activeconfig() -- Extrait une arborescence de la configuration active
-                -- de httpd (pour le serveur virtuel sélectionné)</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>
 
-</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>
+<p>
+Voir "<a href="#modifying_buckets">Modification de contenu avec les
+filtres Lua</a>" pour plus de détails.
+</p>
 
-<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="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>
 
-</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>
+        <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>
 
-</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.
+</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>
 
-    coroutine.yield([optional header to be prepended to the content])
+<pre class="prettyprint lang-config">LuaOutputFilter myOutputFilter /www/filter.lua output_filter
+&lt;Files *.lua&gt;
+  SetOutputFilter myOutputFilter
+&lt;/Files&gt;</pre>
 
-    -- 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
+<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
-
-    -- 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])
+    -- plus aucune donnée à traiter.
 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)
+<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>
 
-    <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")
+<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>
 
--- 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>
+<p>
+Voir "<a href="#modifying_buckets">Modification de contenu avec les
+filtres Lua</a>" pour plus de détails.
+</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="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>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]])
 
--- 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="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>
 
--- Vérifie si une connexion à une base de données est en service et
-opérationnelle :
-local connected = database:active()</pre>
+    <div class="example"><h3>Exemples :</h3><pre class="prettyprint lang-config">LuaPackagePath /scripts/lib/?.lua
+LuaPackagePath /scripts/lib/?/init.lua</pre>
+</div>
 
-    
-    <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.
+</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>
-    <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 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 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>
 
-    <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
+</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 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
+</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>
 
-     -- 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>
+   <dl>
+    <dt>once:</dt> <dd>utilise l'interpréteur une fois.</dd>
 
-    
-    <h3><a name="closing_databases" id="closing_databases">Fermeture d'une connexion à une base de données</a></h3>
-        
+    <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>
 
-    <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>conn:</dt> <dd>idem request, mais attaché à connection_rec</dd>
 
--- 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>
+    <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>
 
-    
-    <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>.
+    <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>
index df2fba8087b788f5d4fe747d1d30cbbfba95c885..56d4460590853726a0d7abfb3582430e468b169a 100644 (file)
@@ -71,7 +71,7 @@ module="core">SetHandler</directive> or
 <directive module="mod_mime">AddHandler</directive> directive:</p>
 
 <highlight language="config">
-&lt;Files *.lua&gt;
+&lt;Files "*.lua"&gt;
     SetHandler lua-script
 &lt;/Files&gt;
 </highlight>
@@ -194,7 +194,7 @@ end
 <code>foo</code> and configures it for URL <code>/</code>:</p>
 <highlight language="config">
 LuaAuthzProvider foo authz_provider.lua authz_check_foo
-&lt;Location /&gt;
+&lt;Location "/"&gt;
   Require foo 10.1.2.3 john_doe
 &lt;/Location&gt;
 </highlight>
@@ -1822,7 +1822,7 @@ with the <directive module="mod_authz_core">Require</directive> directive:</p>
 <highlight language="config">
 LuaRoot /usr/local/apache2/lua
 LuaAuthzProvider foo authz.lua authz_check_foo
-&lt;Location /&gt;
+&lt;Location "/"&gt;
   Require foo johndoe
 &lt;/Location&gt;
 </highlight>
@@ -1858,7 +1858,7 @@ onto the Lua script:
 
 <highlight language="config">
 LuaInputFilter myInputFilter /www/filter.lua input_filter
-&lt;Files *.lua&gt;
+&lt;Files "*.lua"&gt;
   SetInputFilter myInputFilter
 &lt;/Files&gt;
 </highlight>
@@ -1915,7 +1915,7 @@ onto the Lua script:
 
 <highlight language="config">
 LuaOutputFilter myOutputFilter /www/filter.lua output_filter
-&lt;Files *.lua&gt;
+&lt;Files "*.lua"&gt;
   SetOutputFilter myOutputFilter
 &lt;/Files&gt;
 </highlight>
index 46452d12d7fdb17fd255daeb6752011d6f6ea93b..d0ca761009032af0688fec4265dcc781ffd41507 100644 (file)
 </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>
 
@@ -225,12 +150,12 @@ dynamically-generated virtual hosts.</p>
     DocumentRoot $dir
 
     # Public document root
-    &lt;Directory $dir&gt;
+    &lt;Directory "$dir"&gt;
         Require all granted
     &lt;/Directory&gt;
 
     # limit access to intranet subdir.
-    &lt;Directory $dir/intranet&gt;
+    &lt;Directory "$dir/intranet"&gt;
       Require ip 10.0.0.0/8
     &lt;/Directory&gt;
   &lt;/VirtualHost&gt;
@@ -252,7 +177,7 @@ avoids confusion in a complex configuration file where there may be
 conflicts in variable names.</p>
 
 <pre class="prettyprint lang-config">&lt;Macro DirGroup $dir $group&gt;
-  &lt;Directory $dir&gt;
+  &lt;Directory "$dir"&gt;
     Require group $group
   &lt;/Directory&gt;
 &lt;/Macro&gt;
@@ -265,6 +190,81 @@ 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 7195a4a43f45c4c88256a5a76cc7ba8042873b25..c7434a4bf046bb73b38824de62ea5539494ee808 100644 (file)
@@ -43,87 +43,18 @@ de configuration Apache.</td></tr>
     du fichier de configuration.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#usage">Utilisation</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#tips">Conseils</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#macro">&lt;Macro&gt;</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#undefmacro">UndefMacro</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#use">Use</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#usage">Utilisation</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#tips">Conseils</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="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>
+<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="usage" id="usage">Utilisation</a></h2>    
@@ -267,6 +198,75 @@ 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 c938293cbc661d13a17190759ec2d809510e0882..d0735e730ffa2217725ad26605437f71e8a74a9e 100644 (file)
@@ -140,12 +140,12 @@ dynamically-generated virtual hosts.</p>
     DocumentRoot $dir
 
     # Public document root
-    &lt;Directory $dir&gt;
+    &lt;Directory "$dir"&gt;
         Require all granted
     &lt;/Directory&gt;
 
     # limit access to intranet subdir.
-    &lt;Directory $dir/intranet&gt;
+    &lt;Directory "$dir/intranet"&gt;
       Require ip 10.0.0.0/8
     &lt;/Directory&gt;
   &lt;/VirtualHost&gt;
@@ -168,7 +168,7 @@ conflicts in variable names.</p>
 
 <highlight language="config">
 &lt;Macro DirGroup $dir $group&gt;
-  &lt;Directory $dir&gt;
+  &lt;Directory "$dir"&gt;
     Require group $group
   &lt;/Directory&gt;
 &lt;/Macro&gt;
index 1684936950edfac3df8e8ca03e9327e0402a1bee..ca9b8c48c0113e67889e1669137baf8a41374cd8 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
@@ -379,19 +512,19 @@ responses from the server</td></tr>
 
     <pre class="prettyprint lang-config"># Effective filter "DEFLATE"
 AddOutputFilter DEFLATE shtml
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
   # Effective filter "INCLUDES", replacing "DEFLATE"
   AddOutputFilter INCLUDES shtml
 &lt;/Location&gt;
-&lt;Location /bar&gt;
+&lt;Location "/bar"&gt;
   # Effective filter "INCLUDES;DEFLATE", replacing "DEFLATE"
   AddOutputFilter INCLUDES;DEFLATE shtml
 &lt;/Location&gt;
-&lt;Location /bar/baz&gt;
+&lt;Location "/bar/baz"&gt;
   # Effective filter "BUFFER", replacing "INCLUDES;DEFLATE"
   AddOutputFilter BUFFER shtml
 &lt;/Location&gt;
-&lt;Location /bar/baz/buz&gt;
+&lt;Location "/bar/baz/buz"&gt;
   # No effective filter, replacing "BUFFER"
   RemoveOutputFilter shtml
 &lt;/Location&gt;</pre>
@@ -643,7 +776,7 @@ extensions</td></tr>
 
     <div class="example"><h3>/foo/.htaccess:</h3><pre class="prettyprint lang-config">AddEncoding x-gzip .gz
 AddType text/plain .asc
-&lt;Files *.gz.asc&gt;
+&lt;Files "*.gz.asc"&gt;
     RemoveEncoding .gz
 &lt;/Files&gt;</pre>
 </div>
@@ -868,139 +1001,6 @@ 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 f24ea9da2a6120bf0e663bec11ff39702e1f2cd1..cca3f519b15a67a18174a91ee3addde79c06caa7 100644 (file)
     受け取るように、影響を受けるファイルに 'touch' コマンドを実行する
     (最終更新日を更新する) 必要があるかもしれません。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#multipleext">複数の拡張子のあるファイル</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#contentencoding">コンテントエンコーディング</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#charset-lang">文字セットと言語</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#addcharset">AddCharset</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#addencoding">AddEncoding</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#removetype">RemoveType</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#typesconfig">TypesConfig</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#multipleext">複数の拡張子のあるファイル</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#contentencoding">コンテントエンコーディング</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#charset-lang">文字セットと言語</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/mod_mime_magic.html#mimemagicfile">MimeMagicFile</a></code></li>
 <li><code class="directive"><a href="../mod/core.html#adddefaultcharset">AddDefaultCharset</a></code></li>
 <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 95236b1e3b5002a0fd2d1b77ff0a3396f5dff570..e6c913e0ec07f1aba214295a5086bb9900d0ce17 100644 (file)
@@ -144,7 +144,7 @@ module="mod_mime_magic">MimeMagicFile</directive></seealso>
 
     <example><title>Configure handler based on final extension only</title>
     <highlight language="config">
-&lt;FilesMatch \.cgi$&gt;
+&lt;FilesMatch "\.cgi$"&gt;
   SetHandler cgi-script
 &lt;/FilesMatch&gt;
     </highlight>
@@ -519,19 +519,19 @@ responses from the server</description>
     <highlight language="config">
 # Effective filter "DEFLATE"
 AddOutputFilter DEFLATE shtml
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
   # Effective filter "INCLUDES", replacing "DEFLATE"
   AddOutputFilter INCLUDES shtml
 &lt;/Location&gt;
-&lt;Location /bar&gt;
+&lt;Location "/bar"&gt;
   # Effective filter "INCLUDES;DEFLATE", replacing "DEFLATE"
   AddOutputFilter INCLUDES;DEFLATE shtml
 &lt;/Location&gt;
-&lt;Location /bar/baz&gt;
+&lt;Location "/bar/baz"&gt;
   # Effective filter "BUFFER", replacing "INCLUDES;DEFLATE"
   AddOutputFilter BUFFER shtml
 &lt;/Location&gt;
-&lt;Location /bar/baz/buz&gt;
+&lt;Location "/bar/baz/buz"&gt;
   # No effective filter, replacing "BUFFER"
   RemoveOutputFilter shtml
 &lt;/Location&gt;
@@ -792,7 +792,7 @@ extensions</description>
     <highlight language="config">
 AddEncoding x-gzip .gz
 AddType text/plain .asc
-&lt;Files *.gz.asc&gt;
+&lt;Files "*.gz.asc"&gt;
     RemoveEncoding .gz
 &lt;/Files&gt;
       </highlight>
index 4f36d205be6f98d27d47009a97d5893961595e67..1ed2db335cd8aa2eee38912bdd847c724362a741 100644 (file)
 </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>
 
@@ -267,6 +245,28 @@ using the specified magic file</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">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 68214c5438c2345c81bd7483fce1468ffddcefe4..2f8877c7a13e8a791cb3ad4fe781e68be30bb8ac 100644 (file)
@@ -69,118 +69,6 @@ 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
@@ -338,6 +226,118 @@ the client does not express a preference</td></tr>
     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 0e525b808a40fec44e92ea9caeb5acec818be509..6e65aada44115a4ceb548e96d03323793147ae8d 100644 (file)
@@ -50,17 +50,17 @@ contenu</a></td></tr>
       de fichier implicite, et fait son choix parmi les résultats.</li>
     </ul>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#typemaps">Tables de correspondances de types</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#multiviews">Multivues</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#forcelanguagepriority">ForceLanguagePriority</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#languagepriority">LanguagePriority</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#typemaps">Tables de correspondances de types</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#multiviews">Multivues</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
 <li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li>
@@ -69,128 +69,6 @@ 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
@@ -354,6 +232,128 @@ cas o
     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 db62196e93dd5c67225a693ad773bcda77c9cafc..56a75dc36a78dced7b3ff8e8b173eedbadbb8469 100644 (file)
       その結果から選択します。</li>
     </ul>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#typemaps">タイプマップ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#multiviews">MultiViews</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#cachenegotiateddocs">CacheNegotiatedDocs</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#forcelanguagepriority">ForceLanguagePriority</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#languagepriority">LanguagePriority</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#typemaps">タイプマップ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#multiviews">MultiViews</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li>
 <li><code class="module"><a href="../mod/mod_mime.html">mod_mime</a></code></li>
 <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 b106491c19c460e716fbb3c2eab560f9a41bb6c1..5a6b211e8bc8439e98c5f620958fc786fb87b6a8 100644 (file)
@@ -44,6 +44,7 @@
 <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">
@@ -90,7 +91,6 @@
     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></p>
index 6f12ae7b78d3aafaf42c63f95cc1320e32bf48d9..b1fe2d4863e163ac5948f0aaf2e1bdc38aadb02d 100644 (file)
 <li><a href="../compliance.html">HTTP Protocol Compliance</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="actions" id="actions">Actions</a></h2>
+    
+
+    <p>If a policy is violated, one of the following actions can be
+    taken:</p>
+
+    <dl>
+    <dt><strong>ignore</strong></dt>
+    <dd>The policy check will be ignored for the given URL space, even
+    if the filter is present.</dd>
+
+    <dt><strong>log</strong></dt>
+    <dd>The policy check will be executed, and if a violation is detected
+    a warning will be logged to the server error_log, and a
+    <code>Warning</code> header added to the response for the benefit of
+    the client.</dd>
+
+    <dt><strong>enforce</strong></dt>
+    <dd>The policy check will be executed, and if a violation is detected
+    an error will be logged to the server error_log, a
+    <code>Warning</code> header added to the response, and a <code>502
+    Bad Gateway</code> will be returned to the client. Optional links to
+    explanatory documentation can be added to each error message,
+    detailing the origin of each policy.</dd>
+
+    </dl>
+
+    <p>It is also possible to selectively disable all policies for a
+    given URL space, should the need arise, using the
+    <code class="directive"><a href="#policyfilter">PolicyFilter</a></code> directive.</p>
+
+    <p>Alternatively, the
+    <code class="directive"><a href="#policyenvironment">PolicyEnvironment</a></code>
+    directive can be used to specify an environment variable, which if
+    present, will cause the policies to be selectively downgraded or
+    bypassed.</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="tests" id="tests">Policy Tests</a></h2>
+    
+
+    <p>The following policy filters are available:</p>
+
+    <dl>
+    <dt><strong><a href="../compliance.html#policytype">POLICY_TYPE</a>
+    </strong>: Enforce valid content types</dt>
+    <dd>Content types that are syntactically invalid or blank can be detected
+       and the request rejected. Types can be restricted to a specific list
+       containing optional wildcards ? and *.</dd>
+    
+    <dt><strong><a href="../compliance.html#policylength">POLICY_LENGTH</a>
+    </strong>: Enforce the presence of a Content-Length</dt>
+    <dd>The length of responses can be specified in one of three ways, by
+    specifying an explicit length in advance, using chunked encoding to set
+    the length, or by setting no length at all and terminating the request
+    when complete. The absence of a specific content length can affect the
+    cacheability of the response, and prevents the use of keepalive during
+    HTTP/1.0 requests. This policy enforces the presence of an explicit
+    content length on the response.</dd>
+
+    <dt><strong><a href="../compliance.html#policykeepalive">POLICY_KEEPALIVE
+    </a></strong>: Enforce the option to keepalive</dt>
+    <dd>Less restrictive than the POLICY_LENGTH test, this policy enforces the
+    possibility that the response can be kept alive. If the response doesn't
+    have a protocol defined zero length, and the response isn't already an
+    error, and the response has neither a Content-Length or is declared
+    HTTP/1.1 and lacks Content-Encoding: chunked, then this response will be
+    rejected.</dd>
+
+    <dt><strong><a href="../compliance.html#policyvary">POLICY_VARY</a>
+    </strong>: Enforce the absence of certain headers within Vary headers</dt>
+    <dd>If the Vary header contains any of the headers specified, this policy
+    will reject the request. The typical case is the presence of the User-Agent
+    within Vary, which is likely to cause a denial of service condition to a
+    cache.</dd>
+
+    <dt><strong><a href="../compliance.html#policyvalidation">
+    POLICY_VALIDATION</a></strong>: Enforce the presence of Etag and/or
+    Last-Modified</dt>
+    <dd>The ability for a cache to determine whether a cached entity can be
+    refreshed is dependent on whether a valid Etag and/or Last-Modified header
+    is present to revalidate against. The absence of both headers, or the
+    invalid syntax of a header will cause this policy to be rejected.</dd>
+
+    <dt><strong><a href="../compliance.html#policyconditional">
+    POLICY_CONDITIONAL</a></strong>: Enforce correct operation of conditional
+    requests</dt>
+    <dd>When conditional headers are present in the request, a server should
+    respond with a <code>304 Not Modified</code> or <code>412 Precondition
+    Failed</code> response where appropriate. A server may ignore conditional
+    headers, and this affects the efficiency of the HTTP caching mechanism.
+    This policy rejects requests where a conditional header is present, and
+    a 304 or 412 response code was expected, but a 2xx response was seen
+    instead.</dd>
+
+    <dt><strong><a href="../compliance.html#policynocache">POLICY_NOCACHE</a>
+    </strong>: Enforce cacheable responses</dt>
+    <dd>When a response is encountered that declares itself explicitly
+    uncacheable, the request is rejected. A response is considered
+    uncacheable if it specifies any of the following:
+    <ul><li><code>Cache-Control: no-cache</code></li>
+    <li><code>Pragma: no-cache</code></li>
+    <li><code>Cache-Control: no-store</code></li>
+    <li><code>Cache-Control: private</code></li>
+    </ul></dd>
+
+    <dt><strong><a href="../compliance.html#policymaxage">POLICY_MAXAGE</a>
+    </strong>: Enforce a minimum maxage</dt>
+    <dd>When a response is encountered where the freshness lifetime is less
+    than the given value, or the freshness lifetime is heuristic, the request
+    is rejected. A response is checked in the following order:
+    <ul><li>If <code>s-maxage</code> is present but too small; or</li>
+    <li>If <code>max-age</code> is present but too small; or</li>
+    <li>If <code>Expires</code> is present and invalid; or</li>
+    <li><code>Date</code> is present and invalid; or</li>
+    <li><code>Expires</code> minus Date is too small; or</li>
+    <li>No <code>s-maxage</code>, <code>maxage</code>, or
+    <code>Expires</code>/<code>Date</code> declared at all</li>
+    </ul></dd>
+
+    <dt><strong><a href="../compliance.html#policyversion">POLICY_VERSION</a>
+    </strong>: Enforce a minimum HTTP version within a request</dt>
+    <dd>When a request is encountered with an HTTP version number less than
+    the required minimum version, the request is rejected. The following
+    version numbers are recognised:
+    <ul><li><code>HTTP/1.1</code></li>
+    <li><code>HTTP/1.0</code></li>
+    <li><code>HTTP/0.9</code></li>
+    </ul></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="example" id="example">Example Configuration</a></h2>
+    
+
+    <p>A typical configuration protecting a server serving static content
+    might be as follows:</p>
+
+    <pre class="prettyprint lang-config">&lt;Location "/"&gt;
+  SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \
+    POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION
+  
+  # content type must be present and valid, but can be anything
+  PolicyType enforce */*
+  
+  # reject if no explicitly declared content length
+  PolicyLength enforce
+  
+  # covered by the policy length filter
+  PolicyKeepalive ignore
+  
+  # reject if User-Agent appears within Vary headers
+  PolicyVary enforce User-Agent
+  
+  # we want to enforce validation
+  PolicyValidation enforce
+  
+  # non-functional conditional responses should be rejected
+  PolicyConditional enforce
+  
+  # no-cache responses should be rejected
+  PolicyNocache enforce
+  
+  # maxage must be at least a day
+  PolicyMaxage enforce 86400
+  
+  # request version can be anything
+  PolicyVersion ignore HTTP/1.1
+&lt;/Location&gt;
+
+# suppress policy protection for server-status
+&lt;Location "/server-status"&gt;
+  PolicyFilter off
+&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="PolicyConditional" id="PolicyConditional">PolicyConditional</a> <a name="policyconditional" id="policyconditional">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Enable the conditional request policy.</td></tr>
@@ -159,12 +341,12 @@ later.</td></tr>
     <p>Master switch to enable or disable policies for a given URL space.</p>
 
     <div class="example"><h3>Example</h3><pre class="prettyprint lang-config"># enabled by default
-&lt;Location /&gt;
+&lt;Location "/"&gt;
   PolicyFilter on
 &lt;/Location&gt;
 
 # suppress policy protection for server-status
-&lt;Location /server-status&gt;
+&lt;Location "/server-status"&gt;
   PolicyFilter off
 &lt;/Location&gt;</pre>
 </div>
@@ -474,188 +656,6 @@ later.</td></tr>
     <p>Specify the URL of the documentation describing the minimum request
     HTTP version policy, to appear within error messages.</p>
 
-</div>
-<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="actions" id="actions">Actions</a></h2>
-    
-
-    <p>If a policy is violated, one of the following actions can be
-    taken:</p>
-
-    <dl>
-    <dt><strong>ignore</strong></dt>
-    <dd>The policy check will be ignored for the given URL space, even
-    if the filter is present.</dd>
-
-    <dt><strong>log</strong></dt>
-    <dd>The policy check will be executed, and if a violation is detected
-    a warning will be logged to the server error_log, and a
-    <code>Warning</code> header added to the response for the benefit of
-    the client.</dd>
-
-    <dt><strong>enforce</strong></dt>
-    <dd>The policy check will be executed, and if a violation is detected
-    an error will be logged to the server error_log, a
-    <code>Warning</code> header added to the response, and a <code>502
-    Bad Gateway</code> will be returned to the client. Optional links to
-    explanatory documentation can be added to each error message,
-    detailing the origin of each policy.</dd>
-
-    </dl>
-
-    <p>It is also possible to selectively disable all policies for a
-    given URL space, should the need arise, using the
-    <code class="directive"><a href="#policyfilter">PolicyFilter</a></code> directive.</p>
-
-    <p>Alternatively, the
-    <code class="directive"><a href="#policyenvironment">PolicyEnvironment</a></code>
-    directive can be used to specify an environment variable, which if
-    present, will cause the policies to be selectively downgraded or
-    bypassed.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="tests" id="tests">Policy Tests</a></h2>
-    
-
-    <p>The following policy filters are available:</p>
-
-    <dl>
-    <dt><strong><a href="../compliance.html#policytype">POLICY_TYPE</a>
-    </strong>: Enforce valid content types</dt>
-    <dd>Content types that are syntactically invalid or blank can be detected
-       and the request rejected. Types can be restricted to a specific list
-       containing optional wildcards ? and *.</dd>
-    
-    <dt><strong><a href="../compliance.html#policylength">POLICY_LENGTH</a>
-    </strong>: Enforce the presence of a Content-Length</dt>
-    <dd>The length of responses can be specified in one of three ways, by
-    specifying an explicit length in advance, using chunked encoding to set
-    the length, or by setting no length at all and terminating the request
-    when complete. The absence of a specific content length can affect the
-    cacheability of the response, and prevents the use of keepalive during
-    HTTP/1.0 requests. This policy enforces the presence of an explicit
-    content length on the response.</dd>
-
-    <dt><strong><a href="../compliance.html#policykeepalive">POLICY_KEEPALIVE
-    </a></strong>: Enforce the option to keepalive</dt>
-    <dd>Less restrictive than the POLICY_LENGTH test, this policy enforces the
-    possibility that the response can be kept alive. If the response doesn't
-    have a protocol defined zero length, and the response isn't already an
-    error, and the response has neither a Content-Length or is declared
-    HTTP/1.1 and lacks Content-Encoding: chunked, then this response will be
-    rejected.</dd>
-
-    <dt><strong><a href="../compliance.html#policyvary">POLICY_VARY</a>
-    </strong>: Enforce the absence of certain headers within Vary headers</dt>
-    <dd>If the Vary header contains any of the headers specified, this policy
-    will reject the request. The typical case is the presence of the User-Agent
-    within Vary, which is likely to cause a denial of service condition to a
-    cache.</dd>
-
-    <dt><strong><a href="../compliance.html#policyvalidation">
-    POLICY_VALIDATION</a></strong>: Enforce the presence of Etag and/or
-    Last-Modified</dt>
-    <dd>The ability for a cache to determine whether a cached entity can be
-    refreshed is dependent on whether a valid Etag and/or Last-Modified header
-    is present to revalidate against. The absence of both headers, or the
-    invalid syntax of a header will cause this policy to be rejected.</dd>
-
-    <dt><strong><a href="../compliance.html#policyconditional">
-    POLICY_CONDITIONAL</a></strong>: Enforce correct operation of conditional
-    requests</dt>
-    <dd>When conditional headers are present in the request, a server should
-    respond with a <code>304 Not Modified</code> or <code>412 Precondition
-    Failed</code> response where appropriate. A server may ignore conditional
-    headers, and this affects the efficiency of the HTTP caching mechanism.
-    This policy rejects requests where a conditional header is present, and
-    a 304 or 412 response code was expected, but a 2xx response was seen
-    instead.</dd>
-
-    <dt><strong><a href="../compliance.html#policynocache">POLICY_NOCACHE</a>
-    </strong>: Enforce cacheable responses</dt>
-    <dd>When a response is encountered that declares itself explicitly
-    uncacheable, the request is rejected. A response is considered
-    uncacheable if it specifies any of the following:
-    <ul><li><code>Cache-Control: no-cache</code></li>
-    <li><code>Pragma: no-cache</code></li>
-    <li><code>Cache-Control: no-store</code></li>
-    <li><code>Cache-Control: private</code></li>
-    </ul></dd>
-
-    <dt><strong><a href="../compliance.html#policymaxage">POLICY_MAXAGE</a>
-    </strong>: Enforce a minimum maxage</dt>
-    <dd>When a response is encountered where the freshness lifetime is less
-    than the given value, or the freshness lifetime is heuristic, the request
-    is rejected. A response is checked in the following order:
-    <ul><li>If <code>s-maxage</code> is present but too small; or</li>
-    <li>If <code>max-age</code> is present but too small; or</li>
-    <li>If <code>Expires</code> is present and invalid; or</li>
-    <li><code>Date</code> is present and invalid; or</li>
-    <li><code>Expires</code> minus Date is too small; or</li>
-    <li>No <code>s-maxage</code>, <code>maxage</code>, or
-    <code>Expires</code>/<code>Date</code> declared at all</li>
-    </ul></dd>
-
-    <dt><strong><a href="../compliance.html#policyversion">POLICY_VERSION</a>
-    </strong>: Enforce a minimum HTTP version within a request</dt>
-    <dd>When a request is encountered with an HTTP version number less than
-    the required minimum version, the request is rejected. The following
-    version numbers are recognised:
-    <ul><li><code>HTTP/1.1</code></li>
-    <li><code>HTTP/1.0</code></li>
-    <li><code>HTTP/0.9</code></li>
-    </ul></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="example" id="example">Example Configuration</a></h2>
-    
-
-    <p>A typical configuration protecting a server serving static content
-    might be as follows:</p>
-
-    <pre class="prettyprint lang-config">&lt;Location /&gt;
-  SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \
-    POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION
-  
-  # content type must be present and valid, but can be anything
-  PolicyType enforce */*
-  
-  # reject if no explicitly declared content length
-  PolicyLength enforce
-  
-  # covered by the policy length filter
-  PolicyKeepalive ignore
-  
-  # reject if User-Agent appears within Vary headers
-  PolicyVary enforce User-Agent
-  
-  # we want to enforce validation
-  PolicyValidation enforce
-  
-  # non-functional conditional responses should be rejected
-  PolicyConditional enforce
-  
-  # no-cache responses should be rejected
-  PolicyNocache enforce
-  
-  # maxage must be at least a day
-  PolicyMaxage enforce 86400
-  
-  # request version can be anything
-  PolicyVersion ignore HTTP/1.1
-&lt;/Location&gt;
-
-# suppress policy protection for server-status
-&lt;Location /server-status&gt;
-  PolicyFilter off
-&lt;/Location&gt;</pre>
-
-
 </div>
 </div>
 <div class="bottomlang">
index e0c35639f3d58072d7f54f3deefe9d98d11f303b..8da25f5bf8875b4e83f3e02017b197b75564281f 100644 (file)
     might be as follows:</p>
 
     <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
   SetOutputFilter POLICY_TYPE;POLICY_LENGTH;POLICY_KEEPALIVE;POLICY_VARY;POLICY_VALIDATION; \
     POLICY_CONDITIONAL;POLICY_NOCACHE;POLICY_MAXAGE;POLICY_VERSION
   
 &lt;/Location&gt;
 
 # suppress policy protection for server-status
-&lt;Location /server-status&gt;
+&lt;Location "/server-status"&gt;
   PolicyFilter off
 &lt;/Location&gt;
     </highlight>
@@ -251,12 +251,12 @@ later.</compatibility>
     <example><title>Example</title>
     <highlight language="config">
 # enabled by default
-&lt;Location /&gt;
+&lt;Location "/"&gt;
   PolicyFilter on
 &lt;/Location&gt;
 
 # suppress policy protection for server-status
-&lt;Location /server-status&gt;
+&lt;Location "/server-status"&gt;
   PolicyFilter off
 &lt;/Location&gt;
 </highlight>
index 9cca5f3afcbe982242269a8ef96f00eb074e428d..42a85220484fca759399f937f5a2e73fd3e2de13 100644 (file)
@@ -76,6 +76,65 @@ separation is an issue.</p>
 </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>
@@ -331,65 +390,6 @@ 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 8e241294d4c957c07691172fbdd424b61cd7e23a..6d295018f4ed6f488d51f609995cc69b6559c383 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="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>
-<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 proxy Balancers/Workers defined 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"
-            Balancers and Workers 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 <code class="directive"><a href="#proxypassinherit">ProxyPassInherit</a></code> also disables BalancerInherit.</p>
-    
-</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>
-<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>
-</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="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 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>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>The <var>host</var> arguments to the <code class="directive">NoProxy</code>
-    directive are one of the following type list:</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>
 
-    <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 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="example"><h3>Examples</h3><p><code>
-      .com .example.org.
-    </code></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>
 
-    <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>
+      <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>
 
-    <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>
+      <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>
 
-    
-    <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>The examples below are only a very basic idea to help you
+    get started.  Please read the documentation on the individual
+    directives.</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>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>
 
-    <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>
+    <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>
 
-    
-    <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="example"><h3>Forward Proxy</h3><pre class="prettyprint lang-config">ProxyRequests On
+ProxyVia On
 
-    <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>
+&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>
 
-    
-    <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>
+      <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>Examples</h3><p><code>
-      prep.ai.example.edu<br />
-      www.example.org
-    </code></p></div>
+      <div class="example"><h3>Reverse Proxy PHP scripts</h3><pre class="prettyprint lang-config">&lt;FilesMatch "\.php$"&gt;
+    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
+&lt;/FilesMatch&gt;</pre>
+</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>
+      <p>This feature is available in Apache HTTP Server 2.4.10 and later.</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>
+    </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>For example, the following will allow only hosts in
-    <code>yournetwork.example.com</code> to access content via your proxy
-    server:</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>
 
-    <pre class="prettyprint lang-config">&lt;Proxy *&gt;
-  Require host yournetwork.example.com
-&lt;/Proxy&gt;</pre>
+      <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>
 
+      <pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</pre>
 
-    <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">&lt;Proxy http://example.com/foo/*&gt;
-  SetOutputFilter INCLUDES
-&lt;/Proxy&gt;</pre>
+      <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>
 
+      <pre class="prettyprint lang-config">ProxySet http://backend.example.com connectiontimeout=5 timeout=30</pre>
 
-    <p>The next example will allow web clients from the specified IP
-    addresses to issue <code>CONNECT</code> requests to access the
-    <code>https://www.example.com/</code> SSL server, if
-    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> is enabled.
-    </p>
 
-   <pre class="prettyprint lang-config">&lt;Proxy www.example.com:443&gt;
-  Require ip 192.168.0.0/16
+      <p>or alternatively using <code class="directive"><a href="#proxy">Proxy</a></code>
+      and <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
 &lt;/Proxy&gt;</pre>
 
 
-    <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>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>
 
+      <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><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">ProxyPass /examples http://backend.example.com/examples
+ProxyPass /docs http://backend.example.com/docs</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>This example defines two different workers, each using a separate
+      connection pool and configuration.</p>
 
-    <dt><code>Ignore</code></dt>
-    <dd>Treat bad header lines as if they weren't sent.</dd>
+      <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>
 
-    <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 /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="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>Disallow proxy requests to certain hosts</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBlock *|<var>hostname</var>|<var>partial-hostname</var> [<var>hostname</var>|<var>partial-hostname</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 can be used to
-    block FTP or HTTP access to certain hosts via the proxy, based on
-    a full or partial hostname match, or, if applicable, an IP address
-    comparison.</p>
 
-    <p>Each of the arguments to the <code class="directive">ProxyBlock</code>
-    directive can be either <code>*</code> or a alphanumeric string.
-    At startup, the module will attempt to resolve every alphanumeric
-    string from a DNS name to a set of IP addresses, but any DNS errors
-    are ignored.</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>
 
-    <p>If an asterisk "<code>*</code>" argument is specified,
-    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> will deny access to all FTP or HTTP
-    sites.</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>Otherwise, for any request for an HTTP or FTP resource via the
-    proxy, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> will check the hostname of the
-    request URI against each specified string.  If a partial string
-    match is found, access is denied.  If no matches against hostnames
-    are found, and a remote (forward) proxy is configured using
-    <code class="directive">ProxyRemote</code> or
-    <code class="directive">ProxyRemoteMatch</code>, access is allowed.  If no
-    remote (forward) proxy is configured, the IP address of the
-    hostname from the URI is compared against all resolved IP
-    addresses determined at startup.  Access is denied if any match is
-    found.</p>
+      </div> 
 
-    <p>Note that the DNS lookups may slow down the startup time of 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>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</pre>
-</div>
+      <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>
 
-    <p>Note that <code>example</code> would also be sufficient to match any
-    of these sites.</p>
+      <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>
 
-    <p>Hosts would also be matched if referenced by IP address.</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>
 
-    <p>Note also that</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">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">ProxyBlock *</pre>
+      <pre class="prettyprint lang-config">&lt;Proxy *&gt;
+  Require ip 192.168.0
+&lt;/Proxy&gt;</pre>
 
 
-    <p>blocks connections to all 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>
 
-</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>
+      <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>
 
-    <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>
+      <p><strong>See Also</strong> the <a href="mod_proxy_http.html#env">Proxy-Chain-Auth</a> environment variable.</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="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>
+
+   </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>
+<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>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#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 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>
+    <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>
 <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>
+<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>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#Description">Description:</a></th><td>Inherit proxy Balancers/Workers defined 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>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>
-
-
+        <p>This directive will cause the current server/vhost to "inherit"
+            Balancers and Workers 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 <code class="directive"><a href="#proxypassinherit">ProxyPassInherit</a></code> also disables BalancerInherit.</p>
+    
 </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>
+<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>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#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>
 </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>
+        <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="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a> <a name="proxymaxforwards" id="proxymaxforwards">Directive</a></h2>
+<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>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#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>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>
-
+        <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="ProxyPass" id="ProxyPass">ProxyPass</a> <a name="proxypass" id="proxypass">Directive</a></h2>
+<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>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#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>
-<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>
+    <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="note"><strong>Note: </strong>This directive cannot be used within a 
-    <code>&lt;Directory&gt;</code> context.</div>
+    <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>
 
-    <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>The <var>host</var> arguments to the <code class="directive">NoProxy</code>
+    directive are one of the following type list:</p>
 
-    <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>. Since
-    the socket is local, the hostname used (in this case <code>localhost</code>)
-    is moot, but it is passed as the Host: header value of the request.</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>
 
-    <div class="note"><strong>Note:</strong> The path associated with the <code>unix:</code>
-    URL is <code class="directive">DefaultRuntimeDir</code> aware.</div>
+    <div class="example"><h3>Examples</h3><p><code>
+      .com .example.org.
+    </code></p></div>
 
-    <div class="note"><strong>Note:</strong> <code class="directive">RewriteRule</code> requires
-    the <code>[P,NE]</code> option to prevent the <code>'|'</code> character
-    from being escaped.</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>
 
-    <p>Suppose the local server has address <code>http://example.com/</code>;
-    then</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>
 
-    <pre class="prettyprint lang-config">&lt;Location /mirror/foo/&gt;
-    ProxyPass http://backend.example.com/
-&lt;/Location&gt;</pre>
+    
+    <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>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>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>
 
-    <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><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>
 
-    <pre class="prettyprint lang-config">ProxyPass /mirror/foo/ http://backend.example.com/</pre>
+    <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="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>
+    <div class="example"><h3>Examples</h3><p><code>
+      prep.ai.example.edu<br />
+      www.example.org
+    </code></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>
+    <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>
 
-    <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>
+<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>
 
+    <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">ProxyPass /mirror/foo/i !
-ProxyPass /mirror/foo http://backend.example.com</pre>
+    <pre class="prettyprint lang-config">&lt;Proxy *&gt;
+  Require host yournetwork.example.com
+&lt;/Proxy&gt;</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>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="warning"><h3>Ordering ProxyPass Directives</h3>
-      <p>The configured <code class="directive"><a href="#proxypass">ProxyPass</a></code>
-      and <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code>
-      rules are checked in the order of configuration. The first rule that
-      matches wins. So usually you should sort conflicting
-      <code class="directive"><a href="#proxypass">ProxyPass</a></code> rules starting with the
-      longest URLs first. Otherwise later rules for longer URLS will be hidden
-      by any earlier rule which uses a leading substring of the URL. Note that
-      there is some relation with worker sharing. In contrast, only one
-      <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive can be placed
-      in a <code class="directive"><a href="../mod/core.html#location">Location</a></code> block, and the most
-      specific location will take precedence.</p>
+   <pre class="prettyprint lang-config">&lt;Proxy http://example.com/foo/*&gt;
+  SetOutputFilter INCLUDES
+&lt;/Proxy&gt;</pre>
 
-      <p>For the same reasons exclusions must come <em>before</em> the
-      general <code class="directive">ProxyPass</code> directives.</p>
 
-    </div> 
+    <p>The next example will allow web clients from the specified IP
+    addresses to issue <code>CONNECT</code> requests to access the
+    <code>https://www.example.com/</code> SSL server, if
+    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> is enabled.
+    </p>
 
-    <p>In Apache HTTP Server 2.1 and later, mod_proxy supports pooled
-    connections to a backend server.  Connections created on demand
-    can be retained in a pool for future use.  Limits on the pool size
-    and other settings can be coded on
-    the <code class="directive">ProxyPass</code> directive
-    using  <code>key=value</code> parameters, described in the table
-    below.</p>
+   <pre class="prettyprint lang-config">&lt;Proxy www.example.com:443&gt;
+  Require ip 192.168.0.0/16
+&lt;/Proxy&gt;</pre>
 
-    <p>By default, mod_proxy will allow and retain the maximum number of
-    connections that could be used simultaneously by that web server child
-    process.  Use the <code>max</code> parameter to reduce the number from
-    the default.  Use the <code>ttl</code> parameter to set an optional
-    time to live; connections which have been unused for at least
-    <code>ttl</code> seconds will be closed.  <code>ttl</code> can be used
-    to avoid using a connection which is subject to closing because of the
-    backend server's keep-alive timeout.</p>
 
-    <p>The pool of connections is maintained per web server child
-    process, and <code>max</code> and other settings are not coordinated
-    among all child processes, except when only one child process is allowed
-    by configuration or MPM design.</p>
-
-    <div class="example"><h3>Example</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>BalancerMember parameters</th></tr></table>
-    <table>
-    <tr><th>Parameter</th>
-        <th>Default</th>
-        <th>Description</th></tr>
-    <tr><td>min</td>
-        <td>0</td>
-        <td>Minimum number of connection pool entries, unrelated to the
-    actual number of connections.  This only needs to be modified from the
-    default for special circumstances where heap memory associated with the
-    backend connections should be preallocated or retained.</td></tr>
-    <tr><td>max</td>
-        <td>1...n</td>
-        <td>Maximum number of connections that will be allowed to the
-    backend server. The default for this limit is the number of threads
-    per process in the active MPM. In the Prefork MPM, this is always 1,
-    while with other MPMs it is controlled by the
-    <code class="directive">ThreadsPerChild</code> directive.</td></tr>
-    <tr><td>smax</td>
-        <td>max</td>
-        <td>Retained connection pool entries above this limit are freed
-    during certain operations if they have been unused for longer than
-    the time to live, controlled by the <code>ttl</code> parameter.  If
-    the connection pool entry has an associated connection, it will be
-    closed.  This only needs to be modified from the default for special
-    circumstances where connection pool entries and any associated
-    connections which have exceeded the time to live need to be freed or
-    closed more aggressively.</td></tr>
-    <tr><td>acquire</td>
-        <td>-</td>
-        <td>If set this will be the maximum time to wait for a free
-    connection in the connection pool, in milliseconds. If there are no free
-    connections in the pool the Apache httpd will return <code>SERVER_BUSY</code>
-    status to the client.
-    </td></tr>
-    <tr><td>connectiontimeout</td>
-        <td>timeout</td>
-        <td>Connect timeout in seconds.
-        The number of seconds Apache httpd waits for the creation of a connection to
-        the backend to complete. By adding a postfix of ms the timeout can be
-        also set in milliseconds.
-    </td></tr>
-    <tr><td>disablereuse</td>
-        <td>Off</td>
-        <td>This parameter should be used when you want to force mod_proxy
-    to immediately close a connection to the backend after being used, and
-    thus, disable its persistent connection and pool for that backend.
-    This helps in various situations where a firewall between Apache
-    httpd and
-    the backend server (regardless of protocol) tends to silently
-    drop connections or when backends themselves may be under round-
-    robin DNS. To disable connection pooling reuse,
-    set this property value to <code>On</code>.
-    </td></tr>
-    <tr><td>enablereuse</td>
-        <td>On</td>
-        <td>This is the inverse of 'disablereuse' above, provided as a
-        convenience for scheme handlers that require opt-in for connection
-        reuse (such as <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>).
-    </td></tr>
-    <tr><td>flushpackets</td>
-        <td>off</td>
-        <td>Determines whether the proxy module will auto-flush the output
-        brigade after each "chunk" of data. 'off' means that it will flush
-        only when needed, 'on' means after each chunk is sent and
-        'auto' means poll/wait for a period of time and flush if
-        no input has been received for 'flushwait' milliseconds.
-        Currently this is in effect only for AJP.
-    </td></tr>
-    <tr><td>flushwait</td>
-        <td>10</td>
-        <td>The time to wait for additional input, in milliseconds, before
-        flushing the output brigade if 'flushpackets' is 'auto'.
-    </td></tr>
-    <tr><td>iobuffersize</td>
-        <td>8192</td>
-        <td>Adjusts the size of the internal scratchpad IO buffer. This allows you
-        to override the <code class="directive">ProxyIOBufferSize</code> for a specific worker.
-        This must be at least 512 or set to 0 for the system default of 8192.
-    </td></tr>
-    <tr><td>keepalive</td>
-        <td>Off</td>
-        <td><p>This parameter should be used when you have a firewall between your
-    Apache httpd and the backend server, who tend to drop inactive connections.
-    This flag will tell the Operating System to send <code>KEEP_ALIVE</code>
-    messages on inactive connections  and thus prevent the firewall to drop the connection.
-    To enable keepalive set this property value to <code>On</code>. </p>
-    <p>The frequency of initial and subsequent TCP keepalive probes
-    depends on global OS settings, and may be as high as 2 hours. To be useful,
-    the frequency configured in the OS must be smaller than the threshold used
-    by the firewall.</p>
-    </td></tr>
-    <tr><td>lbset</td>
-        <td>0</td>
-        <td>Sets the load balancer cluster set that the worker is a member
-         of. The load balancer will try all members of a lower numbered
-         lbset before trying higher numbered ones.
-    </td></tr>
-    <tr><td>ping</td>
-        <td>0</td>
-        <td>Ping property tells the webserver to "test" the connection to
-        the backend before forwarding the request. For negative values
-        the test is a simple socket check, for positive values it's
-        a more functional check, dependent upon the protocol. For AJP, it causes
-        <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>to send a <code>CPING</code>
-        request on the ajp13 connection (implemented on Tomcat 3.3.2+, 4.1.28+
-        and 5.0.13+). For HTTP, it causes <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
-        to send a <code>100-Continue</code> to the backend (only valid for
-        HTTP/1.1 - for non HTTP/1.1 backends, this property has no
-        effect). In both cases the parameter is the delay in seconds to wait
-        for the reply.
-        This feature has been added to avoid problems with hung and
-        busy backends.
-        This will increase the network traffic during the normal operation
-        which could be an issue, but it will lower the
-        traffic in case some of the cluster nodes are down or busy.
-        By adding a postfix of ms the delay can be also set in
-        milliseconds.
-    </td></tr>
-    <tr><td>receivebuffersize</td>
-        <td>0</td>
-        <td>Adjusts the size of the explicit (TCP/IP) network buffer size for
-        proxied connections. This allows you to override the
-        <code class="directive">ProxyReceiveBufferSize</code> for a specific worker.
-        This must be at least 512 or set to 0 for the system default.
-    </td></tr>
-    <tr><td>redirect</td>
-        <td>-</td>
-        <td>Redirection Route of the worker. This value is usually
-        set dynamically to enable safe removal of the node from
-        the cluster. If set all requests without session id will be
-        redirected to the BalancerMember that has route parameter
-        equal as this value.
-    </td></tr>
-    <tr><td>retry</td>
-        <td>60</td>
-        <td>Connection pool worker retry timeout in seconds.
-    If the connection pool worker to the backend server is in the error state,
-    Apache httpd will not forward any requests to that server until the timeout
-    expires. This enables to shut down the backend server for maintenance,
-    and bring it back online later. A value of 0 means always retry workers
-    in an error state with no timeout.
-    </td></tr>
-    <tr><td>route</td>
-        <td>-</td>
-        <td>Route of the worker when used inside load balancer.
-        The route is a value appended to session id.
-    </td></tr>
-    <tr><td>status</td>
-        <td>-</td>
-        <td>Single letter value defining the initial status of
-        this worker.
-        <table>
-         <tr><td>D: Worker is disabled and will not accept any requests.</td></tr>
-         <tr><td>S: Worker is administratively stopped.</td></tr>
-         <tr><td>I: Worker is in ignore-errors mode, and will always be considered available.</td></tr>
-         <tr><td>H: Worker is in hot-standby mode and will only be used if no other
-                    viable workers are available.</td></tr>
-         <tr><td>E: Worker is in an error state.</td></tr>
-         <tr><td>N: Worker is in drain mode, and will only accept existing sticky sessions
-                    destined for itself and ignore all other requests.</td></tr>
-        </table>Status
-        can be set (which is the default) by prepending with '+' or
-        cleared by prepending with '-'.
-        Thus, a setting of 'S-E' sets this worker to Stopped and
-        clears the in-error flag.
-    </td></tr>
-    <tr><td>timeout</td>
-        <td><code class="directive"><a href="#proxytimeout">ProxyTimeout</a></code></td>
-        <td>Connection timeout in seconds.
-        The number of seconds Apache httpd waits for data sent by / to the backend.
-    </td></tr>
-    <tr><td>ttl</td>
-        <td>-</td>
-        <td>Time to live for inactive connections and associated connection
-        pool entries, in seconds.  Once reaching this limit, a
-        connection will not be used again; it will be closed at some
-        later time.
-    </td></tr>
-
-    </table>
-
-    <p>If the Proxy directive scheme starts with the
-    <code>balancer://</code> (eg: <code>balancer://cluster</code>,
-    any path information is ignored)  then a virtual worker that does not really
-    communicate with the backend server will be created. Instead it is responsible
-    for the management of several "real" workers. In that case the special set of
-    parameters can be add to this virtual worker. See <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code>
-    for more information about how the balancer works.
-    </p>
-    <table class="bordered"><tr><th>Balancer parameters</th></tr></table>
-    <table>
-    <tr><th>Parameter</th>
-        <th>Default</th>
-        <th>Description</th></tr>
-    <tr><td>lbmethod</td>
-        <td>byrequests</td>
-        <td>Balancer load-balance method. Select the load-balancing scheduler
-        method to use. Either <code>byrequests</code>, to perform weighted
-        request counting, <code>bytraffic</code>, to perform weighted
-        traffic byte count balancing, or <code>bybusyness</code>, to perform
-        pending request balancing. Default is <code>byrequests</code>.
-    </td></tr>
-    <tr><td>maxattempts</td>
-        <td>One less than the number of workers, or 1 with a single worker.</td>
-        <td>Maximum number of failover attempts before giving up.
-    </td></tr>
-    <tr><td>nofailover</td>
-        <td>Off</td>
-        <td>If set to <code>On</code> the session will break if the worker is in
-        error state or disabled. Set this value to On if backend servers do not
-        support session replication.
-    </td></tr>
-    <tr><td>stickysession</td>
-        <td>-</td>
-        <td>Balancer sticky session name. The value is usually set to something
-        like <code>JSESSIONID</code> or <code>PHPSESSIONID</code>,
-        and it depends on the backend application server that support sessions.
-        If the backend application server uses different name for cookies
-        and url encoded id (like servlet containers) use | to to separate them.
-        The first part is for the cookie the second for the path.<br />
-        Available in Apache HTTP Server 2.4.4 and later.
-    </td></tr>
-    <tr><td>stickysessionsep</td>
-        <td>"."</td>
-        <td>Sets the separation symbol in the session cookie. Some backend application servers
-        do not use the '.' as the symbol. For example the Oracle Weblogic server uses 
-        '!'. The correct symbol can be set using this option. The setting of 'Off'
-        signifies that no symbol is used.
-    </td></tr>
-    <tr><td>scolonpathdelim</td>
-        <td>Off</td>
-        <td>If set to <code>On</code> the semi-colon character ';' will be
-        used as an additional sticky session path delimiter/separator. This
-        is mainly used to emulate mod_jk's behavior when dealing with paths such
-        as <code>JSESSIONID=6736bcf34;foo=aabfa</code>
-    </td></tr>
-    <tr><td>timeout</td>
-        <td>0</td>
-        <td>Balancer timeout in seconds. If set this will be the maximum time
-        to wait for a free worker. Default is not to wait.
-    </td></tr>
-    <tr><td>failonstatus</td>
-        <td>-</td>
-        <td>A single or comma-separated list of HTTP status codes. If set this will
-        force the worker into error state when the backend returns any status code
-        in the list. Worker recovery behaves the same as other worker errors.
-    </td></tr>
-    <tr><td>failontimeout</td>
-        <td>Off</td>
-        <td>If set, an IO read timeout after a request is sent to the backend will
-        force the worker into error state. Worker recovery behaves the same as other
-        worker errors.<br />
-        Available in Apache HTTP Server 2.4.5 and later.
-    </td></tr>
-    <tr><td>nonce</td>
-        <td>&lt;auto&gt;</td>
-        <td>The protective nonce used in the <code>balancer-manager</code> application page.
-        The default is to use an automatically determined UUID-based
-        nonce, to provide for further protection for the page. If set,
-        then the nonce is set to that value. A setting of <code>None</code>
-        disables all nonce checking.
-    <div class="note"><h3>Note</h3>
-      <p>In addition to the nonce, the <code>balancer-manager</code> page
-      should be protected via an ACL.</p>
-    </div>
-     </td></tr>
-    <tr><td>growth</td>
-        <td>0</td>
-        <td>Number of additional BalancerMembers to allow to be added
-        to this balancer in addition to those defined at configuration.
-    </td></tr>
-    <tr><td>forcerecovery</td>
-        <td>On</td>
-        <td>Force the immediate recovery of all workers without considering the
-        retry parameter of the workers if all workers of a balancer are
-        in error state. There might be cases where an already overloaded backend
-        can get into deeper trouble if the recovery of all workers is enforced
-        without considering the retry parameter of each worker. In this case
-        set to <code>Off</code>.<br />
-        Available in Apache HTTP Server 2.4.2 and later.
-    </td></tr>
-
-    </table>
-    <p>A sample balancer setup</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>Setting up a hot-standby, that will only be used if no other
-     members are available</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>Normally, mod_proxy will canonicalise ProxyPassed URLs.
-    But this may be incompatible with some backends, particularly those
-    that make use of <var>PATH_INFO</var>.  The optional <var>nocanon</var>
-    keyword suppresses this, and passes the URL path "raw" to the
-    backend.  Note that may affect the security of your backend, as it
-    removes the normal limited protection against URL-based attacks
-    provided by the proxy.</p>
-
-    <p>Normally, mod_proxy will include the query string when
-    generating the <var>SCRIPT_FILENAME</var> environment variable.
-    The optional <var>noquery</var> keyword (available in
-    httpd 2.4.1 and later) prevents this.</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 will occur inside a
-    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> section,
-    however ProxyPass does not interpret the regexp as such, so it is necessary
-    to use <code class="directive">ProxyPassMatch</code> in this situation instead.</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>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 optional <var>interpolate</var> keyword, in combination with
-    <code class="directive">ProxyPassInterpolateEnv</code> causes the ProxyPass
-    to interpolate environment variables, using the syntax
-    <var>${VARNAME}</var>.  Note that many of the standard CGI-derived
-    environment variables will not exist when this interpolation happens,
-    so you may still have to resort to <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
-    for complex rules.  Also note that interpolation is not supported
-    within the scheme portion of a URL.  Dynamic determination of the
-    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
-
-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 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>
 
 
+<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="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a> <a name="proxypassinherit" id="proxypassinherit">Directive</a></h2>
+<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>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#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>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.3.10 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 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>
+
 </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="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>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>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>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>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>
+
+    <dt><code>Ignore</code></dt>
+    <dd>Treat bad header lines as if they weren't sent.</dd>
+
+    <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="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="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>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>Disallow proxy requests to certain hosts</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>ProxyBlock *|<var>hostname</var>|<var>partial-hostname</var> [<var>hostname</var>|<var>partial-hostname</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 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>The <code class="directive">ProxyBlock</code> directive can be used to
+    block FTP or HTTP access to certain hosts via the proxy, based on
+    a full or partial hostname match, or, if applicable, an IP address
+    comparison.</p>
 
-    <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>Each of the arguments to the <code class="directive">ProxyBlock</code>
+    directive can be either <code>*</code> or a alphanumeric string.
+    At startup, the module will attempt to resolve every alphanumeric
+    string from a DNS name to a set of IP addresses, but any DNS errors
+    are ignored.</p>
 
-      <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>
+    <p>If an asterisk "<code>*</code>" argument is specified,
+    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> will deny access to all FTP or HTTP
+    sites.</p>
 
-    </div>
-    <p>The <code>!</code> directive is useful in situations where you don't want
-    to reverse-proxy a subdirectory.</p>
+    <p>Otherwise, for any request for an HTTP or FTP resource via the
+    proxy, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> will check the hostname of the
+    request URI against each specified string.  If a partial string
+    match is found, access is denied.  If no matches against hostnames
+    are found, and a remote (forward) proxy is configured using
+    <code class="directive">ProxyRemote</code> or
+    <code class="directive">ProxyRemoteMatch</code>, access is allowed.  If no
+    remote (forward) proxy is configured, the IP address of the
+    hostname from the URI is compared against all resolved IP
+    addresses determined at startup.  Access is denied if any match is
+    found.</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>Note that the DNS lookups may slow down the startup time of the
+    server.</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="example"><h3>Example</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</pre>
+</div>
 
-    <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>Note that <code>example</code> would also be sufficient to match any
+    of these sites.</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>Hosts would also be matched if referenced by IP address.</p>
+
+    <p>Note also that</p>
+
+    <pre class="prettyprint lang-config">ProxyBlock *</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="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</a> <a name="proxypassreverse" id="proxypassreverse">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>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#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 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>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>
 
-    <p>For example, suppose the local server has address
-    <code>http://example.com/</code>; then</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>
 
-    <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>
+</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>
 
-    <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>
+</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>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>In almost every case there's no reason to change that value.</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>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>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>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>
 
-    <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>
+<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>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#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>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>
+    <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="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</a> <a name="proxypassreversecookiepath" id="proxypassreversecookiepath">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>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#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>
 </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>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>
 
-<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 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="ProxyPreserveHost" id="ProxyPreserveHost">ProxyPreserveHost</a> <a name="proxypreservehost" id="proxypreservehost">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>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#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>Usable in directory
-context in 2.3.3 and later.</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>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 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>. Since
+    the socket is local, the hostname used (in this case <code>localhost</code>)
+    is moot, but it is passed as the Host: header value of the request.</p>
+
+    <div class="note"><strong>Note:</strong> The path associated with the <code>unix:</code>
+    URL is <code class="directive">DefaultRuntimeDir</code> aware.</div>
+
+    <div class="note"><strong>Note:</strong> <code class="directive">RewriteRule</code> requires
+    the <code>[P,NE]</code> option to prevent the <code>'|'</code> character
+    from being escaped.</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>
 
-    <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>
+    <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="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 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>
 
-</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>
+    <p>The <code>!</code> directive is useful in situations where you don't want
+    to reverse-proxy a subdirectory, <em>e.g.</em></p>
 
-    <div class="example"><p><code>
-      <dfn>remote-server</dfn> =
-          <var>scheme</var>://<var>hostname</var>[:<var>port</var>]
-    </code></p></div>
+    <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><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>
+    <pre class="prettyprint lang-config">ProxyPass /mirror/foo/i !
+ProxyPass /mirror/foo http://backend.example.com</pre>
 
-    <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>
+    <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>
-<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 class="warning"><h3>Ordering ProxyPass Directives</h3>
+      <p>The configured <code class="directive"><a href="#proxypass">ProxyPass</a></code>
+      and <code class="directive"><a href="#proxypassmatch">ProxyPassMatch</a></code>
+      rules are checked in the order of configuration. The first rule that
+      matches wins. So usually you should sort conflicting
+      <code class="directive"><a href="#proxypass">ProxyPass</a></code> rules starting with the
+      longest URLs first. Otherwise later rules for longer URLS will be hidden
+      by any earlier rule which uses a leading substring of the URL. Note that
+      there is some relation with worker sharing. In contrast, only one
+      <code class="directive"><a href="#proxypass">ProxyPass</a></code> directive can be placed
+      in a <code class="directive"><a href="../mod/core.html#location">Location</a></code> block, and the most
+      specific location will take precedence.</p>
 
-</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>For the same reasons exclusions must come <em>before</em> the
+      general <code class="directive">ProxyPass</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>In Apache HTTP Server 2.1 and later, mod_proxy supports pooled
+    connections to a backend server.  Connections created on demand
+    can be retained in a pool for future use.  Limits on the pool size
+    and other settings can be coded on
+    the <code class="directive">ProxyPass</code> directive
+    using  <code>key=value</code> parameters, described in the table
+    below.</p>
+
+    <p>By default, mod_proxy will allow and retain the maximum number of
+    connections that could be used simultaneously by that web server child
+    process.  Use the <code>max</code> parameter to reduce the number from
+    the default.  Use the <code>ttl</code> parameter to set an optional
+    time to live; connections which have been unused for at least
+    <code>ttl</code> seconds will be closed.  <code>ttl</code> can be used
+    to avoid using a connection which is subject to closing because of the
+    backend server's keep-alive timeout.</p>
+
+    <p>The pool of connections is maintained per web server child
+    process, and <code>max</code> and other settings are not coordinated
+    among all child processes, except when only one child process is allowed
+    by configuration or MPM design.</p>
+
+    <div class="example"><h3>Example</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>BalancerMember parameters</th></tr></table>
+    <table>
+    <tr><th>Parameter</th>
+        <th>Default</th>
+        <th>Description</th></tr>
+    <tr><td>min</td>
+        <td>0</td>
+        <td>Minimum number of connection pool entries, unrelated to the
+    actual number of connections.  This only needs to be modified from the
+    default for special circumstances where heap memory associated with the
+    backend connections should be preallocated or retained.</td></tr>
+    <tr><td>max</td>
+        <td>1...n</td>
+        <td>Maximum number of connections that will be allowed to the
+    backend server. The default for this limit is the number of threads
+    per process in the active MPM. In the Prefork MPM, this is always 1,
+    while with other MPMs it is controlled by the
+    <code class="directive">ThreadsPerChild</code> directive.</td></tr>
+    <tr><td>smax</td>
+        <td>max</td>
+        <td>Retained connection pool entries above this limit are freed
+    during certain operations if they have been unused for longer than
+    the time to live, controlled by the <code>ttl</code> parameter.  If
+    the connection pool entry has an associated connection, it will be
+    closed.  This only needs to be modified from the default for special
+    circumstances where connection pool entries and any associated
+    connections which have exceeded the time to live need to be freed or
+    closed more aggressively.</td></tr>
+    <tr><td>acquire</td>
+        <td>-</td>
+        <td>If set this will be the maximum time to wait for a free
+    connection in the connection pool, in milliseconds. If there are no free
+    connections in the pool the Apache httpd will return <code>SERVER_BUSY</code>
+    status to the client.
+    </td></tr>
+    <tr><td>connectiontimeout</td>
+        <td>timeout</td>
+        <td>Connect timeout in seconds.
+        The number of seconds Apache httpd waits for the creation of a connection to
+        the backend to complete. By adding a postfix of ms the timeout can be
+        also set in milliseconds.
+    </td></tr>
+    <tr><td>disablereuse</td>
+        <td>Off</td>
+        <td>This parameter should be used when you want to force mod_proxy
+    to immediately close a connection to the backend after being used, and
+    thus, disable its persistent connection and pool for that backend.
+    This helps in various situations where a firewall between Apache
+    httpd and
+    the backend server (regardless of protocol) tends to silently
+    drop connections or when backends themselves may be under round-
+    robin DNS. To disable connection pooling reuse,
+    set this property value to <code>On</code>.
+    </td></tr>
+    <tr><td>enablereuse</td>
+        <td>On</td>
+        <td>This is the inverse of 'disablereuse' above, provided as a
+        convenience for scheme handlers that require opt-in for connection
+        reuse (such as <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>).
+    </td></tr>
+    <tr><td>flushpackets</td>
+        <td>off</td>
+        <td>Determines whether the proxy module will auto-flush the output
+        brigade after each "chunk" of data. 'off' means that it will flush
+        only when needed, 'on' means after each chunk is sent and
+        'auto' means poll/wait for a period of time and flush if
+        no input has been received for 'flushwait' milliseconds.
+        Currently this is in effect only for AJP.
+    </td></tr>
+    <tr><td>flushwait</td>
+        <td>10</td>
+        <td>The time to wait for additional input, in milliseconds, before
+        flushing the output brigade if 'flushpackets' is 'auto'.
+    </td></tr>
+    <tr><td>iobuffersize</td>
+        <td>8192</td>
+        <td>Adjusts the size of the internal scratchpad IO buffer. This allows you
+        to override the <code class="directive">ProxyIOBufferSize</code> for a specific worker.
+        This must be at least 512 or set to 0 for the system default of 8192.
+    </td></tr>
+    <tr><td>keepalive</td>
+        <td>Off</td>
+        <td><p>This parameter should be used when you have a firewall between your
+    Apache httpd and the backend server, who tend to drop inactive connections.
+    This flag will tell the Operating System to send <code>KEEP_ALIVE</code>
+    messages on inactive connections  and thus prevent the firewall to drop the connection.
+    To enable keepalive set this property value to <code>On</code>. </p>
+    <p>The frequency of initial and subsequent TCP keepalive probes
+    depends on global OS settings, and may be as high as 2 hours. To be useful,
+    the frequency configured in the OS must be smaller than the threshold used
+    by the firewall.</p>
+    </td></tr>
+    <tr><td>lbset</td>
+        <td>0</td>
+        <td>Sets the load balancer cluster set that the worker is a member
+         of. The load balancer will try all members of a lower numbered
+         lbset before trying higher numbered ones.
+    </td></tr>
+    <tr><td>ping</td>
+        <td>0</td>
+        <td>Ping property tells the webserver to "test" the connection to
+        the backend before forwarding the request. For negative values
+        the test is a simple socket check, for positive values it's
+        a more functional check, dependent upon the protocol. For AJP, it causes
+        <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code>to send a <code>CPING</code>
+        request on the ajp13 connection (implemented on Tomcat 3.3.2+, 4.1.28+
+        and 5.0.13+). For HTTP, it causes <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code>
+        to send a <code>100-Continue</code> to the backend (only valid for
+        HTTP/1.1 - for non HTTP/1.1 backends, this property has no
+        effect). In both cases the parameter is the delay in seconds to wait
+        for the reply.
+        This feature has been added to avoid problems with hung and
+        busy backends.
+        This will increase the network traffic during the normal operation
+        which could be an issue, but it will lower the
+        traffic in case some of the cluster nodes are down or busy.
+        By adding a postfix of ms the delay can be also set in
+        milliseconds.
+    </td></tr>
+    <tr><td>receivebuffersize</td>
+        <td>0</td>
+        <td>Adjusts the size of the explicit (TCP/IP) network buffer size for
+        proxied connections. This allows you to override the
+        <code class="directive">ProxyReceiveBufferSize</code> for a specific worker.
+        This must be at least 512 or set to 0 for the system default.
+    </td></tr>
+    <tr><td>redirect</td>
+        <td>-</td>
+        <td>Redirection Route of the worker. This value is usually
+        set dynamically to enable safe removal of the node from
+        the cluster. If set all requests without session id will be
+        redirected to the BalancerMember that has route parameter
+        equal as this value.
+    </td></tr>
+    <tr><td>retry</td>
+        <td>60</td>
+        <td>Connection pool worker retry timeout in seconds.
+    If the connection pool worker to the backend server is in the error state,
+    Apache httpd will not forward any requests to that server until the timeout
+    expires. This enables to shut down the backend server for maintenance,
+    and bring it back online later. A value of 0 means always retry workers
+    in an error state with no timeout.
+    </td></tr>
+    <tr><td>route</td>
+        <td>-</td>
+        <td>Route of the worker when used inside load balancer.
+        The route is a value appended to session id.
+    </td></tr>
+    <tr><td>status</td>
+        <td>-</td>
+        <td>Single letter value defining the initial status of
+        this worker.
+        <table>
+         <tr><td>D: Worker is disabled and will not accept any requests.</td></tr>
+         <tr><td>S: Worker is administratively stopped.</td></tr>
+         <tr><td>I: Worker is in ignore-errors mode, and will always be considered available.</td></tr>
+         <tr><td>H: Worker is in hot-standby mode and will only be used if no other
+                    viable workers are available.</td></tr>
+         <tr><td>E: Worker is in an error state.</td></tr>
+         <tr><td>N: Worker is in drain mode, and will only accept existing sticky sessions
+                    destined for itself and ignore all other requests.</td></tr>
+        </table>Status
+        can be set (which is the default) by prepending with '+' or
+        cleared by prepending with '-'.
+        Thus, a setting of 'S-E' sets this worker to Stopped and
+        clears the in-error flag.
+    </td></tr>
+    <tr><td>timeout</td>
+        <td><code class="directive"><a href="#proxytimeout">ProxyTimeout</a></code></td>
+        <td>Connection timeout in seconds.
+        The number of seconds Apache httpd waits for data sent by / to the backend.
+    </td></tr>
+    <tr><td>ttl</td>
+        <td>-</td>
+        <td>Time to live for inactive connections and associated connection
+        pool entries, in seconds.  Once reaching this limit, a
+        connection will not be used again; it will be closed at some
+        later time.
+    </td></tr>
 
-    <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>
+    </table>
 
-    <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>
+    <p>If the Proxy directive scheme starts with the
+    <code>balancer://</code> (eg: <code>balancer://cluster</code>,
+    any path information is ignored)  then a virtual worker that does not really
+    communicate with the backend server will be created. Instead it is responsible
+    for the management of several "real" workers. In that case the special set of
+    parameters can be add to this virtual worker. See <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code>
+    for more information about how the balancer works.
+    </p>
+    <table class="bordered"><tr><th>Balancer parameters</th></tr></table>
+    <table>
+    <tr><th>Parameter</th>
+        <th>Default</th>
+        <th>Description</th></tr>
+    <tr><td>lbmethod</td>
+        <td>byrequests</td>
+        <td>Balancer load-balance method. Select the load-balancing scheduler
+        method to use. Either <code>byrequests</code>, to perform weighted
+        request counting, <code>bytraffic</code>, to perform weighted
+        traffic byte count balancing, or <code>bybusyness</code>, to perform
+        pending request balancing. Default is <code>byrequests</code>.
+    </td></tr>
+    <tr><td>maxattempts</td>
+        <td>One less than the number of workers, or 1 with a single worker.</td>
+        <td>Maximum number of failover attempts before giving up.
+    </td></tr>
+    <tr><td>nofailover</td>
+        <td>Off</td>
+        <td>If set to <code>On</code> the session will break if the worker is in
+        error state or disabled. Set this value to On if backend servers do not
+        support session replication.
+    </td></tr>
+    <tr><td>stickysession</td>
+        <td>-</td>
+        <td>Balancer sticky session name. The value is usually set to something
+        like <code>JSESSIONID</code> or <code>PHPSESSIONID</code>,
+        and it depends on the backend application server that support sessions.
+        If the backend application server uses different name for cookies
+        and url encoded id (like servlet containers) use | to to separate them.
+        The first part is for the cookie the second for the path.<br />
+        Available in Apache HTTP Server 2.4.4 and later.
+    </td></tr>
+    <tr><td>stickysessionsep</td>
+        <td>"."</td>
+        <td>Sets the separation symbol in the session cookie. Some backend application servers
+        do not use the '.' as the symbol. For example the Oracle Weblogic server uses 
+        '!'. The correct symbol can be set using this option. The setting of 'Off'
+        signifies that no symbol is used.
+    </td></tr>
+    <tr><td>scolonpathdelim</td>
+        <td>Off</td>
+        <td>If set to <code>On</code> the semi-colon character ';' will be
+        used as an additional sticky session path delimiter/separator. This
+        is mainly used to emulate mod_jk's behavior when dealing with paths such
+        as <code>JSESSIONID=6736bcf34;foo=aabfa</code>
+    </td></tr>
+    <tr><td>timeout</td>
+        <td>0</td>
+        <td>Balancer timeout in seconds. If set this will be the maximum time
+        to wait for a free worker. Default is not to wait.
+    </td></tr>
+    <tr><td>failonstatus</td>
+        <td>-</td>
+        <td>A single or comma-separated list of HTTP status codes. If set this will
+        force the worker into error state when the backend returns any status code
+        in the list. Worker recovery behaves the same as other worker errors.
+    </td></tr>
+    <tr><td>failontimeout</td>
+        <td>Off</td>
+        <td>If set, an IO read timeout after a request is sent to the backend will
+        force the worker into error state. Worker recovery behaves the same as other
+        worker errors.<br />
+        Available in Apache HTTP Server 2.4.5 and later.
+    </td></tr>
+    <tr><td>nonce</td>
+        <td>&lt;auto&gt;</td>
+        <td>The protective nonce used in the <code>balancer-manager</code> application page.
+        The default is to use an automatically determined UUID-based
+        nonce, to provide for further protection for the page. If set,
+        then the nonce is set to that value. A setting of <code>None</code>
+        disables all nonce checking.
+    <div class="note"><h3>Note</h3>
+      <p>In addition to the nonce, the <code>balancer-manager</code> page
+      should be protected via an ACL.</p>
     </div>
+     </td></tr>
+    <tr><td>growth</td>
+        <td>0</td>
+        <td>Number of additional BalancerMembers to allow to be added
+        to this balancer in addition to those defined at configuration.
+    </td></tr>
+    <tr><td>forcerecovery</td>
+        <td>On</td>
+        <td>Force the immediate recovery of all workers without considering the
+        retry parameter of the workers if all workers of a balancer are
+        in error state. There might be cases where an already overloaded backend
+        can get into deeper trouble if the recovery of all workers is enforced
+        without considering the retry parameter of each worker. In this case
+        set to <code>Off</code>.<br />
+        Available in Apache HTTP Server 2.4.2 and later.
+    </td></tr>
 
-<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>
-</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>
+    </table>
+    <p>A sample balancer setup</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>
 
-    <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
+
+    <p>Setting up a hot-standby, that will only be used if no other
+     members are available</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>
-</div>
 
-    <pre class="prettyprint lang-config">&lt;Proxy http://backend&gt;
-    ProxySet keepalive=On
-&lt;/Proxy&gt;</pre>
 
+    <p>Normally, mod_proxy will canonicalise ProxyPassed URLs.
+    But this may be incompatible with some backends, particularly those
+    that make use of <var>PATH_INFO</var>.  The optional <var>nocanon</var>
+    keyword suppresses this, and passes the URL path "raw" to the
+    backend.  Note that may affect the security of your backend, as it
+    removes the normal limited protection against URL-based attacks
+    provided by the proxy.</p>
 
-    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</pre>
+    <p>Normally, mod_proxy will include the query string when
+    generating the <var>SCRIPT_FILENAME</var> environment variable.
+    The optional <var>noquery</var> keyword (available in
+    httpd 2.4.1 and later) prevents this.</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 will occur inside a
+    <code class="directive"><a href="../mod/core.html#locationmatch">&lt;LocationMatch&gt;</a></code> section,
+    however ProxyPass does not interpret the regexp as such, so it is necessary
+    to use <code class="directive">ProxyPassMatch</code> in this situation instead.</p>
 
-    <pre class="prettyprint lang-config">ProxySet ajp://backend:7001 timeout=15</pre>
+    <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>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 optional <var>interpolate</var> keyword, in combination with
+    <code class="directive">ProxyPassInterpolateEnv</code> causes the ProxyPass
+    to interpolate environment variables, using the syntax
+    <var>${VARNAME}</var>.  Note that many of the standard CGI-derived
+    environment variables will not exist when this interpolation happens,
+    so you may still have to resort to <code class="module"><a href="../mod/mod_rewrite.html">mod_rewrite</a></code>
+    for complex rules.  Also note that interpolation is not supported
+    within the scheme portion of a URL.  Dynamic determination of the
+    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
 
-   <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>
+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="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="ProxyStatus" id="ProxyStatus">ProxyStatus</a> <a name="proxystatus" id="proxystatus">Directive</a></h2>
+<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>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#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 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>
-
-
+        <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="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a> <a name="proxytimeout" id="proxytimeout">Directive</a></h2>
+<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>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#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>
 </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>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="ProxyVia" id="ProxyVia">ProxyVia</a> <a name="proxyvia" id="proxyvia">Directive</a></h2>
+<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>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#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 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>
-
-    <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>
-
-    <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>
-
-    <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>
-
-</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>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>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="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>
 
-      <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>
+    <pre class="prettyprint lang-config">ProxyPassMatch ^/(.*\.gif)$ http://backend.example.com/$1</pre>
 
-      <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>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 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>
+      <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 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>
+    <p>The <code>!</code> directive is useful in situations where you don't want
+    to reverse-proxy a subdirectory.</p>
 
-    <div class="example"><h3>Forward Proxy</h3><pre class="prettyprint lang-config">ProxyRequests On
-ProxyVia On
+    <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>
 
-&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>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>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:
+    <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 class="example"><h3>Reverse Proxy PHP scripts</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
-    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
-&lt;/FilesMatch&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="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>This feature is available in Apache HTTP Server 2.4.10 and later.</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><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><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>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>For example, suppose the local server has address
+    <code>http://example.com/</code>; then</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>
+    <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>
 
-      <pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</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>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>
+    <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>
 
-      <pre class="prettyprint lang-config">ProxySet http://backend.example.com connectiontimeout=5 timeout=30</pre>
+    <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>or alternatively using <code class="directive"><a href="#proxy">Proxy</a></code>
-      and <code class="directive"><a href="#proxyset">ProxySet</a></code>:</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>
 
-      <pre class="prettyprint lang-config">&lt;Proxy http://backend.example.com&gt;
-  ProxySet connectiontimeout=5 timeout=30
-&lt;/Proxy&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="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>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>
+<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>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="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">ProxyPass /examples http://backend.example.com/examples
-ProxyPass /docs http://backend.example.com/docs</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>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">ProxyReceiveBufferSize 2048</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>
+</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 /apps http://backend.example.com/ timeout=60
-ProxyPass /examples http://backend.example.com/examples timeout=10</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>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="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>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 the last example, the proxy will forward FTP requests, encapsulated
+    as yet another HTTP proxy request, to another proxy which can handle
+    them.</p>
 
-      </div> 
+    <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>
 
-      <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="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 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>
+<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>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>
+    <p>In a typical reverse proxy or gateway configuration, this
+    option should be set to
+    <code>Off</code>.</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>
+    <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>
 
-    </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>
+    <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>
 
-      <pre class="prettyprint lang-config">&lt;Proxy *&gt;
-  Require ip 192.168.0
-&lt;/Proxy&gt;</pre>
+    <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>
+</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>For more information on access control directives, see
-      <code class="module"><a href="../mod/mod_authz_host.html">mod_authz_host</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>
 
-      <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">&lt;Proxy http://backend&gt;
+    ProxySet keepalive=On
+&lt;/Proxy&gt;</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>
+    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</pre>
 
-      <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">ProxySet ajp://backend:7001 timeout=15</pre>
 
-      <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 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>
 
-    </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>
+</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>
 
-    <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>
+</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>
+</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>
 
-    <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>
+</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>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>
+</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>
 
-    <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>
+    <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>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>
+    <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>
 
-    <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>
+    <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>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>
+    <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>
 
-   </div>
+</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy.html" title="English">&nbsp;en&nbsp;</a> |
index d9a0793212ee53441147cffe9605f58e286391dd..d09d49e475d72e8681b65af37a0ce228e0c00985 100644 (file)
     additionnels devront être chargés et configurés pour pouvoir
     disposer de ces fonctionnalités.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">Mandataires directs et
+    mandataires/passerelles inverses</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples simples</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#handler">Accès via un gestionnaire</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#workers">Workers</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#access">Contrôler l'accès à votre
+    mandataire</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#startup">Ralentissement au démarrage</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#intranet">Mandataire en Intranet</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#envsettings">Ajustements relatifs au
+    protocole</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">Corps de requêtes</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#x-headers">En-têtes de requête du mandataire
+    inverse</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#balancergrowth">BalancerGrowth</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#balancerinherit">BalancerInherit</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#proxytimeout">ProxyTimeout</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#proxyvia">ProxyVia</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">Mandataires directs et
-    mandataires/passerelles inverses</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">Exemples simples</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#handler">Accès via un gestionnaire</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#workers">Workers</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#access">Contrôler l'accès à votre
-    mandataire</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#startup">Ralentissement au démarrage</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#intranet">Mandataire en Intranet</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#envsettings">Ajustements relatifs au
-    protocole</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">Corps de requêtes</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#x-headers">En-têtes de requête du mandataire
-    inverse</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
 <li><code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code></li>
 <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="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>
+<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>
-<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>
-       <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="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>
-</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 membre du groupe de répartition de
-    charge dans toute directive de conteneur <code>&lt;Proxy
-    <var>balancer://</var>...&gt;</code> est ignorée.</p>
-    <p>Les slashes de fin doivent normalement être supprimés de l'URL
-    d'un <code class="directive">BalancerMember</code>.</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="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>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 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>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 type des arguments <var>serveur</var> de la directive
-    <code class="directive">NoProxy</code> appartiennent à la liste suivante
-    :</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>
 
-    <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>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>
 
-    <div class="example"><h3>Exemple</h3><p><code>
-      .com .example.org.
-    </code></p></div>
+      <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>
 
-    <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>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="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>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>
 
-    
-    <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 inverse</h3><pre class="prettyprint lang-config">ProxyPass /foo http://foo.example.com/bar
+ProxyPassReverse /foo http://foo.example.com/bar</pre>
+</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>
+    <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On
+ProxyVia On
 
-    <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>
+&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>
 
-    
-    <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>
+    <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>
 
-    <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 class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
+    SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
+&lt;/FilesMatch&gt;</pre>
+</div>
 
-    
-    <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>Cette fonctionnalité est disponible à partir de la version
+      2.4.10 du serveur HTTP Apache.</p>
 
-    <div class="example"><h3>Exemples</h3><p><code>
-      prep.ai.example.edu<br />
-      www.example.org
-    </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="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>
 
-    <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>
+      <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>
 
-<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>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>
 
-    <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">ProxyPass /example 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>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>
+      
 
-    <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>
+      <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://example.com/foo/*&gt;
-  SetOutputFilter INCLUDES
+      <pre class="prettyprint lang-config">&lt;Proxy http://backend.example.com&gt;
+  ProxySet connectiontimeout=5 timeout=30
 &lt;/Proxy&gt;</pre>
 
 
-    <p>Dans l'exemple suivant, les clients web possédant l'adresse IP
-    spécifiée seront autorisés à effectuer des requêtes
-    <code>CONNECT</code> pour accéder au serveur
-    <code>https://www.example.com/</code>, sous réserve que le module
-    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> soit chargé.
-    </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>
 
-   <pre class="prettyprint lang-config">&lt;Proxy www.example.com:443&gt;
-  Require ip 192.168.0.0/16
-&lt;/Proxy&gt;</pre>
+      <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>
 
-    <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>Dans cet exemple, deux workers différents sont définis, chacun
+      d'eux utilisant des configurations et jeux de connexions
+      séparés.</p>
 
-<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 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="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>
+        <pre class="prettyprint lang-config">ProxyPass /apps http://backend.example.com/ timeout=60
+ProxyPass /examples http://backend.example.com/examples timeout=10</pre>
 
-    <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 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>
 
-    <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>
+        <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>
 
-</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>Interdit les requêtes mandatées vers certains hôtes</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>nom d'hôte</var>|<var>nom d'hôte partiel</var>
-[<var>nom d'hôte</var>|<var>nom d'hôte partiel</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 d'interdire
-    l'accès FTP ou HTTP via le mandataire à certains hôtes en fonction
-    d'une correspondance exacte ou partielle avec un nom d'hôte, ou dans
-    la mesure du possible en fonction d'une comparaison d'adresses IP.</p>
+      </div> 
 
-    <p>Chaque paramètre de la directive
-    <code class="directive">ProxyBlock</code> accepte comme valeur soit
-    <code>*</code>, soit une chaîne alphanumérique. Au démarrage, le
-    module tente de résoudre toute chaîne alphanumérique depuis un nom
-    DNS vers un jeu d'adresses IP, mais toute erreur de DNS est ignorée.</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>Si un paramètre a pour valeur "<code>*</code>",
-    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> interdira l'accès à tout site FTP ou
-    HTTP.</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>Dans le cas contraire, pour toute requête vers une ressource FTP
-    ou HTTP via le mandataire, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> va comparer le
-    nom d'hôte de l'URI de la requête avec chaque chaîne alphanumérique
-    spécifiée. Si une chaîne correspond, même partiellement, l'accès est
-    refusé. Si aucune chaîne ne correspond, et si un mandataire distant
-    (forward) est configuré via la directive
-    <code class="directive">ProxyRemote</code> ou
-    <code class="directive">ProxyRemoteMatch</code>, l'accès est autorisé. Si
-    aucun mandataire distant (forward) n'est configuré, l'adresse IP
-    correspondant au nom d'hôte de l'URI est comparée à toutes les
-    adresses IP résolues au démarrage, et l'accès est refusé si une
-    correspondance est trouvée.</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>
 
-    <p>Notez que les recherches DNS peuvent ralentir le processus de
-    démarrage du serveur.</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 class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</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">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>
 
-    <p>Notez qu'<code>example</code> suffirait aussi pour atteindre
-    ces sites.</p>
+      <pre class="prettyprint lang-config">&lt;Proxy *&gt;
+  Require ip 192.168.0
+&lt;/Proxy&gt;</pre>
 
-    <p>Hosts conviendrait aussi s'il était référencé par adresse IP.</p>
 
-    <p>Notez aussi que</p>
+      <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>
 
-    <pre class="prettyprint lang-config">ProxyBlock *</pre>
+      <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>
 
-    <p>bloque les connexions vers tous les sites.</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>
+      <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>
+
+   </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>
+<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>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#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 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>
+    <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>
 
 </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>
+<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>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#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 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>
-
+        <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>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="proxyiobuffersize" id="proxyiobuffersize">Directive</a> <a name="ProxyIOBufferSize" id="ProxyIOBufferSize">ProxyIOBufferSize</a></h2>
+<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>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#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>
 </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>
-
+    <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 membre du groupe de répartition de
+    charge dans toute directive de conteneur <code>&lt;Proxy
+    <var>balancer://</var>...&gt;</code> est ignorée.</p>
+    <p>Les slashes de fin doivent normalement être supprimés de l'URL
+    d'un <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="proxymatch" id="proxymatch">Directive</a> <a name="ProxyMatch" id="ProxyMatch">&lt;ProxyMatch&gt;</a></h2>
+<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>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#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>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>
+        <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="proxymaxforwards" id="proxymaxforwards">Directive</a> <a name="ProxyMaxForwards" id="ProxyMaxForwards">ProxyMaxForwards</a></h2>
+<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>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#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>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>
+    <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>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyMaxForwards 15</pre>
+    <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>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>
+    <p>Le type des arguments <var>serveur</var> de la directive
+    <code class="directive">NoProxy</code> appartiennent à la liste suivante
+    :</p>
 
-    <div class="note"><strong>Note : </strong>Cette directive ne peut pas être
-    utilisée dans un contexte de niveau répertoire.</div>
+    <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 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="example"><h3>Exemple</h3><p><code>
+      .com .example.org.
+    </code></p></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>. Comme
-    le socket est local, le nom d'hôte utilisé (ici
-    <code>localhost</code>) peut être sujet à discussion, mais il est
-    transmis dans l'en-tête Host: de la requête.</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>
 
-    <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>
+    <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="note"><strong>Note :</strong>Afin d'éviter l'échappement du
-    caractère <code>'|'</code>, la directive
-    <code class="directive">RewriteRule</code> doit posséder l'option
-    <code>[P,NE]</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>
+    <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>
 
+    <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>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>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>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>
+    
+    <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>
 
-    <pre class="prettyprint lang-config">ProxyPass /miroir/foo/ http://backend.example.com/</pre>
+    <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>
 
+    
+    <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>
 
-    <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 class="example"><h3>Exemples</h3><p><code>
+      prep.ai.example.edu<br />
+      www.example.org
+    </code></p></div>
 
-    <p>Le drapeau <code>!</code> permet de soustraire un sous-répertoire
-    du mandat inverse, comme dans l'exemple suivant :</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>
 
-    <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>
+<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">ProxyPass /mirror/foo/i !
-ProxyPass /mirror/foo http://backend.example.com</pre>
+    <pre class="prettyprint lang-config">&lt;Proxy *&gt;
+  Require host votre-reseau.example.com
+&lt;/Proxy&gt;</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>
+    <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>
 
-    <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">&lt;Proxy http://example.com/foo/*&gt;
+  SetOutputFilter INCLUDES
+&lt;/Proxy&gt;</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>Dans l'exemple suivant, les clients web possédant l'adresse IP
+    spécifiée seront autorisés à effectuer des requêtes
+    <code>CONNECT</code> pour accéder au serveur
+    <code>https://www.example.com/</code>, sous réserve que le module
+    <code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code> soit chargé.
+    </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>
+   <pre class="prettyprint lang-config">&lt;Proxy www.example.com:443&gt;
+  Require ip 192.168.0.0/16
+&lt;/Proxy&gt;</pre>
 
-    <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="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>
 
-    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com max=20 ttl=120 retry=300</pre>
+
+<h3>Voir aussi</h3>
+<ul>
+<li><code class="directive"><a href="#proxymatch">&lt;ProxyMatch&gt;</a></code></li>
+</ul>
 </div>
-
-    <table class="bordered"><tr><th>Paramètres de BalancerMember</th></tr></table>
-    <table>
-    <tr><th>Paramètre</th>
-        <th>Défaut</th>
-        <th>Description</th></tr>
-    <tr><td>min</td>
-        <td>0</td>
-        <td>Nombre minimum d'entrées dans le pool de connexions,
-       distinct du nombre de connexions effectif. La valeur par défaut
-       ne doit être modifiée que dans des circonstances particulières
-       où la mémoire associée aux connexions avec le serveur
-       d'arrière-plan doit être préallouée ou réservée dans le tas.</td></tr>
-    <tr><td>max</td>
-        <td>1...n</td>
-        <td>Nombre maximum de connexions autorisées vers le serveur
-       d'arrière-plan. La valeur par défaut correspond au nombre de
-       threads par processus pour le MPM (Module Multi Processus)
-       actif. La valeur sera toujours 1 pour le MPM Prefork, alors
-       qu'elle dépendra de la définition de la directive
-       <code class="directive">ThreadsPerChild</code> pour les autres MPMs.</td></tr>
-    <tr><td>smax</td>
-        <td>max</td>
-        <td>Les entrées du pool de connexions conservées au delà de
-       cette limite sont libérées au cours de certaines opérations si
-       elles n'ont pas été utilisées au cours de leur durée de vie,
-       définie par le paramètre <code>ttl</code>. Si l'entrée du pool
-       de connexions est associée à une connexion, cette dernière sera
-       fermée. La valeur par défaut ne doit être modifiée que dans des
-       circonstances particulières où les entrées du pool de connexions
-       et toutes connexions associées qui ont dépassé leur durée de vie
-       doivent être libérées ou fermées de manière plus autoritaire.</td></tr>
-    <tr><td>acquire</td>
-        <td>-</td>
-        <td>Cette clé permet de définir le délai maximum d'attente pour
-       une connexion libre dans le jeu de connexions, en millisecondes.
-       S'il n'y a pas de connexion libre dans le jeu, Apache httpd renverra
-       l'état <code>SERVER_BUSY</code> au client.
-    </td></tr>
-    <tr><td>connectiontimeout</td>
-        <td>timeout</td>
-        <td>Délai d'attente d'une connexion en secondes.
-        La durée en secondes pendant laquelle Apache httpd va attendre pour
-       l'établissement d'une connexion vers le serveur d'arrière-plan.
-       Le délai peut être spécifié en millisecondes en ajoutant le
-       suffixe ms.
-    </td></tr>
-    <tr><td>disablereuse</td>
-        <td>Off</td>
-        <td>Vous pouvez utiliser cette clé pour forcer mod_proxy à
-       fermer immédiatement une connexion vers le serveur
-       d'arrière-plan après utilisation, et ainsi désactiver le jeu de
-       connexions permanentes vers ce serveur. Ceci peut s'avérer utile
-       dans des situations où un pare-feu situé entre Apache httpd et le
-       serveur d'arrière-plan (quelque soit le protocole) interrompt
-       des connexions de manière silencieuse, ou lorsque le serveur
-       d'arrière-plan lui-même est accessible par rotation de DNS
-       (round-robin DNS). Pour désactiver la réutilisation du jeu de
-       connexions, définissez cette clé à <code>On</code>.
-    </td></tr>
-    <tr><td>enablereuse</td>
-        <td>On</td>
-        <td>Fournie à l'intention des gestionnaires de projet
-       qui nécessitent un accord pour la réutilisation des connexions
-       (tels que <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>),
-       cette option est l'inverse de l'option 'disablereuse' ci-dessus.
-    </td></tr>
-    <tr><td>flushpackets</td>
-        <td>off</td>
-        <td>Permet de définir si le module mandataire doit vider
-       automatiquement le tampon de sortie après chaque tronçon de
-       données. 'off' signifie que le tampon sera vidé si nécessaire,
-       'on' que le tampon sera vidé après chaque envoi d'un
-       tronçon de données, et 'auto' que le tampon sera vidé après un
-       délai de 'flushwait' millisecondes si aucune entrée n'est reçue.
-       Actuellement, cette clé n'est supportée que par AJP.
-    </td></tr>
-    <tr><td>flushwait</td>
-        <td>10</td>
-        <td>Le délai d'attente pour une entrée additionnelle, en
-       millisecondes, avant le vidage du tampon en sortie dans le cas
-       où 'flushpackets' est à 'auto'.
-    </td></tr>
-    <tr><td>iobuffersize</td>
-        <td>8192</td>
-        <td>Permet de définir la taille du tampon d'entrées/sorties du
-       bloc-notes interne. Cette clé vous permet d'outrepasser la
-       directive <code class="directive">ProxyIOBufferSize</code> pour un
-       serveur cible spécifique. La valeur doit être au minimum 512 ou définie
-       à 0 pour la valeur par défaut du système de 8192.
-    </td></tr>
-    <tr><td>keepalive</td>
-        <td>Off</td>
-        <td><p>Cette clé doit être utilisée lorsque vous avez un pare-feu
-       entre Apache httpd et le serveur d'arrière-plan, et si ce dernier tend
-       à interrompre les connexions inactives. Cette clé va faire en
-       sorte que le système d'exploitation envoie des messages
-       <code>KEEP_ALIVE</code> sur chacune des connexions inactives et
-       ainsi éviter la fermeture de la connexion par le pare-feu.
-       Pour conserver les connexions persistantes, definissez cette
-       propriété à <code>On</code>.</p>
-    <p>La fréquence de vérification des connexions TCP persistantes
-    initiale et subséquentes dépend de la configuration globale de l'OS,
-    et peut atteindre 2 heures. Pour être utile, la fréquence configurée
-    dans l'OS doit être inférieure au seuil utilisé par le pare-feu.</p>
-
-    </td></tr>
-    <tr><td>lbset</td>
-        <td>0</td>
-        <td>Définit le groupe de répartition de charge dont le serveur cible
-       est membre. Le répartiteur de charge va essayer tous les membres
-       d'un groupe de répartition de charge de numéro inférieur avant
-       d'essayer ceux dont le groupe possède un numéro supérieur.
-    </td></tr>
-    <tr><td>ping</td>
-        <td>0</td>
-        <td>Avec la clé Ping, le serveur web va "tester" la connexion
-       vers le serveur d'arrière-plan avant de transmettre la requête.
-       Pour les valeurs négatives, le test est une simple vérification
-       de socket, alors que pour les valeurs positives, il s'agit d'une
-       vérification plus approfondie dépendant du protocole.
-       Avec AJP, <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> envoie une requête
-       <code>CPING</code> sur la connexion ajp13 (implémenté sur Tomcat
-       3.3.2+, 4.1.28+ et 5.0.13+). Avec HTTP,
-       <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> envoie <code>100-Continue</code>
-       au serveur d'arrière-plan (seulement avecHTTP/1.1 - pour les
-       serveurs d'arrière-plan non HTTP/1.1, cette clé ne produit
-       aucun effet). Dans les deux cas, ce paramètre correspond au
-       délai en secondes pour l'attente de la réponse. Cette
-       fonctionnalité a été ajoutée pour éviter les problèmes avec les
-       serveurs d'arrière-plan bloqués ou surchargés.
-
-       Le trafic
-       réseau peut s'en trouver augmenté en fonctionnement normal, ce
-       qui peut poser problème, mais peut s'en trouver diminué dans les
-       cas où les noeuds de cluster sont arrêtés ou
-       surchargés. Le délai peut
-       aussi être défini en millisecondes en ajoutant le suffixe
-       ms.
-    </td></tr>
-    <tr><td>receivebuffersize</td>
-        <td>0</td>
-        <td>Définit la taille du tampon réseau explicite (TCP/IP) pour
-       les connexions mandatées. Cette clé vous permet d'outrepasser la
-       directive <code class="directive">ProxyReceiveBufferSize</code> pour un
-       serveur cible spécifique. Sa valeur doit être au minimum 512 ou définie
-       à 0 pour la valeur par défaut du système.
-    </td></tr>
-    <tr><td>redirect</td>
-        <td>-</td>
-        <td>Route pour la redirection du serveur cible. Cette valeur est en
-       général définie dynamiquement pour permettre une suppression
-       sécurisée du noeud du cluster. Si cette clé est définie, toutes
-       les requêtes sans identifiant de session seront redirigées vers
-       le membre de groupe de répartition de charge dont la route
-       correspond à la valeur de la clé.
-    </td></tr>
-    <tr><td>retry</td>
-        <td>60</td>
-        <td>Délai entre deux essais du serveur cible du jeu de connexions en
-       secondes. Si le serveur cible du jeu de connexions vers le serveur
-       d'arrière-plan est dans un état d'erreur, Apache httpd ne redirigera
-       pas de requête vers ce serveur avant l'expiration du délai
-       spécifié. Ceci permet d'arrêter le serveur d'arrière-plan pour
-       maintenance, et de le remettre en ligne plus tard. Une valeur de
-       0 implique de toujours essayer les serveurs cibles dans un état d'erreur
-       sans délai.
-    </td></tr>
-    <tr><td>route</td>
-        <td>-</td>
-        <td>La route du serveur cible lorsqu'il est utilisé au sein d'un
-       répartiteur de charge. La route est une valeur ajoutée à
-       l'identifiant de session.
-    </td></tr>
-    <tr><td>status</td>
-        <td>-</td>
-        <td>Valeur constituée d'une simple lettre et définissant l'état
-       initial de ce serveur cible.
-        <table>
-         <tr><td>D: le serveur cible est désactivé et n'accepte aucune requête.</td></tr>
-         <tr><td>S: le serveur cible est arrêté.</td></tr>
-         <tr><td>I: le serveur cible est en mode "erreurs ignorées",
-        et sera toujours considéré comme disponible.</td></tr>
-         <tr><td>H: le serveur cible est en mode d'attente et ne sera
-        utilisé que si aucun autre serveur n'est disponible.</td></tr>
-         <tr><td>E: le serveur cible est en erreur.</td></tr>
-         <tr><td>N: le serveur cible est en mode vidage, n'acceptera que
-        les sessions persistantes qui lui appartiennent, et refusera
-        toutes les autres requêtes.</td></tr>
-        </table>
-       Une valeur d'état peut être définie (ce qui
-       correspond au comportement par défaut) en préfixant la valeur
-       par '+', ou annulée en préfixant la valeur par '-'. Ainsi, la
-       valeur 'S-E' définit l'état de ce serveur cible à "arrêté" et supprime
-       le drapeau "en-erreur".
-    </td></tr>
-    <tr><td>timeout</td>
-        <td><code class="directive"><a href="#proxytimeout">ProxyTimeout</a></code></td>
-        <td>Délai d'attente de la connexion en secondes. Le nombre de
-       secondes pendant lesquelles Apache httpd attend l'envoi de
-       données vers le serveur d'arrière-plan.
-    </td></tr>
-    <tr><td>ttl</td>
-        <td>-</td>
-        <td>Durée de vie des connexions inactives et des entrées du pool
-       de connexions associées en secondes. Une fois cette
-       limite atteinte, une connexion ne sera pas réutilisée ; elle
-       sera fermée après un délai variable.
-    </td></tr>
-
-    </table>
-
-    <p>Si l'URL de la directive Proxy débute par
-    <code>balancer://</code> (par exemple:
-    <code>balancer://cluster</code>, toute information relative au
-    chemin est ignorée), alors un serveur cible virtuel ne communiquant pas
-    réellement avec le serveur d'arrière-plan sera créé. Celui-ci sera
-    en fait responsable de la gestion de plusieurs serveurs cibles "réels". Dans
-    ce cas, un jeu de paramètres particuliers s'applique à ce serveur cible
-    virtuel. Voir <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> pour plus
-    d'informations à propos du fonctionnement du répartiteur de
-    charge.
-    </p>
-    <table class="bordered"><tr><th>Paramètres du répartiteur</th></tr></table>
-    <table>
-    <tr><th>Paramètre</th>
-        <th>Défaut</th>
-        <th>Description</th></tr>
-    <tr><td>lbmethod</td>
-        <td>byrequests</td>
-        <td>Méthode de répartition de charge utilisée. Permet de
-       sélectionner la méthode de planification de la répartition de
-       charge à utiliser. La valeur est soit <code>byrequests</code>,
-       pour effectuer un décompte de requêtes pondérées, soit
-       <code>bytraffic</code>, pour effectuer une répartition en
-       fonction du décompte des octets transmis, soit
-       <code>bybusyness</code>, pour effectuer une répartition en
-       fonction des requêtes en attente. La valeur par défaut est
-       <code>byrequests</code>.
-    </td></tr>
-    <tr><td>maxattempts</td>
-        <td>1 de moins que le nombre de workers, ou 1 avec un seul
-       worker</td>
-        <td>Nombre maximum d'échecs avant abandon.
-    </td></tr>
-    <tr><td>nofailover</td>
-        <td>Off</td>
-        <td>Si ce paramètre est défini à <code>On</code>, la session va
-       s'interrompre si le serveur cible est dans un état d'erreur ou
-       désactivé. Définissez ce paramètre à On si le serveur
-       d'arrière-plan ne supporte pas la réplication de session.
-    </td></tr>
-    <tr><td>stickysession</td>
-        <td>-</td>
-        <td>Nom de session persistant du répartiteur. La valeur est
-       généralement du style <code>JSESSIONID</code> ou
-       <code>PHPSESSIONID</code>, et dépend du serveur d'application
-       d'arrière-plan qui supporte les sessions. Si le serveur
-       d'application d'arrière-plan utilise des noms différents pour
-       les cookies et les identifiants codés d'URL (comme les
-       conteneurs de servlet), séparez-les par le caractère '|'. La
-       première partie contient le cookie et la seconde le chemin.<br />
-       Disponible depuis la version 2.4.4 du serveur HTTP Apache.
-    </td></tr>
-    <tr><td>stickysessionsep</td>
-        <td>"."</td>
-        <td>Permet de définir le caractère de séparation dans le cookie
-       de session. En effet, certains serveurs d'application d'arrière-plan
-       n'utilisent pas le '.' comme caractère de séparation. Par
-       exemple, le serveur Oracle Weblogic utilise le caractère '!'.
-       Cette option permet donc de définir le caractère de séparation à
-       une valeur appropriée. Si elle est définie à 'Off', aucun
-       caractère de séparation ne sera utilisé.
-    </td></tr>
-    <tr><td>scolonpathdelim</td>
-        <td>Off</td>
-        <td>Si ce paramètre est défini à <code>On</code>, le caractère
-       ';' sera utilisé comme séparateur de chemin de session
-       persistante additionnel. Ceci permet principalement de simuler
-       le comportement de mod_jk lorsqu'on utilise des chemins du style
-       <code>JSESSIONID=6736bcf34;foo=aabfa</code>.
-    </td></tr>
-    <tr><td>timeout</td>
-        <td>0</td>
-        <td>Délai du répartiteur en secondes. Si ce paramètre est
-       défini, sa valeur correspond à la durée maximale d'attente pour
-       un serveur cible libre. Le comportement par défaut est de ne pas
-       attendre.
-    </td></tr>
-    <tr><td>failonstatus</td>
-        <td>-</td>
-        <td>Une liste de codes d'état HTTP séparés par des virgules. Si
-       ce paramètre est présent, le worker se mettra en erreur si le
-       serveur d'arrière-plan renvoie un des codes d'état spécifiés
-       dans la liste. La récupération du worker s'effectue comme dans
-       le cas des autres erreurs de worker.
-    </td></tr>
-
-    <tr><td>failontimeout</td>
-        <td>Off</td>
-        <td>Si ce paramètre est défini à "On", un délai d'attente
-       dépassé en entrée/sortie après envoi d'une requête au serveur
-       d'arrière-plan va mettre le processus en état d'erreur. La
-       sortie de cet état d'erreur se passe de la même façon que pour
-       les autres erreurs.<br />
-       Disponible depuis la version 2.4.5 du serveur HTTP Apache.
-    </td></tr>
-
-    <tr><td>nonce</td>
-        <td>&lt;auto&gt;</td>
-        <td>Le nombre à usage unique de protection utilisé dans la page
-       de l'application <code>balancer-manager</code>. Par défaut, la
-       protection de la page est assurée par un nombre à usage unique
-       automatique à base d'UUID. Si une valeur est précisée, elle sera
-       utilisée comme nombre à usage unique. La valeur
-       <code>None</code> désactive la vérification du nombre à usage
-       unique.
-    <div class="note"><h3>Note</h3>
-      <p>En plus du nombre à usage unique, la page de l'application
-      <code>balancer-manager</code> peut être protégée par une ACL.</p>
-    </div>
-     </td></tr>
-    <tr><td>growth</td>
-        <td>0</td>
-        <td>Nombre de membres supplémentaires que l'on peut ajouter à ce
-       répartiteur en plus de ceux définis au niveau de la
-       configuration.
-    </td></tr>
-    <tr><td>forcerecovery</td>
-        <td>On</td>
-        <td>Force la relance immédiate de tous les membres sans tenir
-       compte de leur paramètre retry dans le cas où ils sont tous en
-       état d'erreur. Il peut cependant arriver qu'un membre déjà
-       surchargé entre dans une situation critique si la relance de
-       tous les membres est forcée sans tenir compte du paramètre retry
-       de chaque membre. Dans ce cas, définissez ce paramètre à
-       <code>Off</code>.<br />
-       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>
-
-
-    <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 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="proxypassinherit" id="proxypassinherit">Directive</a> <a name="ProxyPassInherit" id="ProxyPassInherit">ProxyPassInherit</a></h2>
+<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>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é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>
-<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>
 </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>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>
+
+    <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="proxypassmatch" id="proxypassmatch">Directive</a> <a name="ProxyPassMatch" id="ProxyPassMatch">ProxyPassMatch</a></h2>
+<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>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>Interdit les requêtes mandatées vers certains hôtes</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntaxe:</a></th><td><code>ProxyBlock *|<var>nom d'hôte</var>|<var>nom d'hôte partiel</var>
+[<var>nom d'hôte</var>|<var>nom d'hôte partiel</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 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>La directive <code class="directive">ProxyBlock</code> permet d'interdire
+    l'accès FTP ou HTTP via le mandataire à certains hôtes en fonction
+    d'une correspondance exacte ou partielle avec un nom d'hôte, ou dans
+    la mesure du possible en fonction d'une comparaison d'adresses IP.</p>
 
+    <p>Chaque paramètre de la directive
+    <code class="directive">ProxyBlock</code> accepte comme valeur soit
+    <code>*</code>, soit une chaîne alphanumérique. Au démarrage, le
+    module tente de résoudre toute chaîne alphanumérique depuis un nom
+    DNS vers un jeu d'adresses IP, mais toute erreur de DNS est ignorée.</p>
 
-    <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>
+    <p>Si un paramètre a pour valeur "<code>*</code>",
+    <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> interdira l'accès à tout site FTP ou
+    HTTP.</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 le cas contraire, pour toute requête vers une ressource FTP
+    ou HTTP via le mandataire, <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> va comparer le
+    nom d'hôte de l'URI de la requête avec chaque chaîne alphanumérique
+    spécifiée. Si une chaîne correspond, même partiellement, l'accès est
+    refusé. Si aucune chaîne ne correspond, et si un mandataire distant
+    (forward) est configuré via la directive
+    <code class="directive">ProxyRemote</code> ou
+    <code class="directive">ProxyRemoteMatch</code>, l'accès est autorisé. Si
+    aucun mandataire distant (forward) n'est configuré, l'adresse IP
+    correspondant au nom d'hôte de l'URI est comparée à toutes les
+    adresses IP résolues au démarrage, et l'accès est refusé si une
+    correspondance est trouvée.</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>Notez que les recherches DNS peuvent ralentir le processus de
+    démarrage du serveur.</p>
 
-    </div>
+    <div class="example"><h3>Exemple</h3><pre class="prettyprint lang-config">ProxyBlock news.example.com auctions.example.com friends.example.com</pre>
+</div>
 
-    <p>Le drapeau <code>!</code> vous permet de ne pas mandater un
-    sous-répertoire donné.</p>
+    <p>Notez qu'<code>example</code> suffirait aussi pour atteindre
+    ces sites.</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>Hosts conviendrait aussi s'il était référencé par adresse IP.</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>Notez aussi que</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>
+    <pre class="prettyprint lang-config">ProxyBlock *</pre>
 
-    <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>bloque les connexions vers tous les 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="proxypassreverse" id="proxypassreverse">Directive</a> <a name="ProxyPassReverse" id="ProxyPassReverse">ProxyPassReverse</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>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#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 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>,
-    utilisé 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 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>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 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="proxypassreversecookiedomain" id="proxypassreversecookiedomain">Directive</a> <a name="ProxyPassReverseCookieDomain" id="ProxyPassReverseCookieDomain">ProxyPassReverseCookieDomain</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>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#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>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>
+    <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="proxypassreversecookiepath" id="proxypassreversecookiepath">Directive</a> <a name="ProxyPassReverseCookiePath" id="ProxyPassReverseCookiePath">ProxyPassReverseCookiePath</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>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#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>
-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>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>
 
-<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>
+<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>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#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>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>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>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>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="proxyreceivebuffersize" id="proxyreceivebuffersize">Directive</a> <a name="ProxyReceiveBufferSize" id="ProxyReceiveBufferSize">ProxyReceiveBufferSize</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>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#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>
 </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>
+    <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">ProxyReceiveBufferSize 2048</pre>
+    <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="proxyremote" id="proxyremote">Directive</a> <a name="ProxyRemote" id="ProxyRemote">ProxyRemote</a></h2>
+<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>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#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 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>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"><p><code>
-      <dfn>serveur-distant</dfn> =
-          <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>]
-    </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><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="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="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>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>. Comme
+    le socket est local, le nom d'hôte utilisé (ici
+    <code>localhost</code>) peut être sujet à discussion, mais il est
+    transmis dans l'en-tête Host: de la requête.</p>
 
-    <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>
+    <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>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="note"><strong>Note :</strong>Afin d'éviter l'échappement du
+    caractère <code>'|'</code>, la directive
+    <code class="directive">RewriteRule</code> doit posséder l'option
+    <code>[P,NE]</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>
+
+    <table class="bordered"><tr><th>Paramètres de BalancerMember</th></tr></table>
+    <table>
+    <tr><th>Paramètre</th>
+        <th>Défaut</th>
+        <th>Description</th></tr>
+    <tr><td>min</td>
+        <td>0</td>
+        <td>Nombre minimum d'entrées dans le pool de connexions,
+       distinct du nombre de connexions effectif. La valeur par défaut
+       ne doit être modifiée que dans des circonstances particulières
+       où la mémoire associée aux connexions avec le serveur
+       d'arrière-plan doit être préallouée ou réservée dans le tas.</td></tr>
+    <tr><td>max</td>
+        <td>1...n</td>
+        <td>Nombre maximum de connexions autorisées vers le serveur
+       d'arrière-plan. La valeur par défaut correspond au nombre de
+       threads par processus pour le MPM (Module Multi Processus)
+       actif. La valeur sera toujours 1 pour le MPM Prefork, alors
+       qu'elle dépendra de la définition de la directive
+       <code class="directive">ThreadsPerChild</code> pour les autres MPMs.</td></tr>
+    <tr><td>smax</td>
+        <td>max</td>
+        <td>Les entrées du pool de connexions conservées au delà de
+       cette limite sont libérées au cours de certaines opérations si
+       elles n'ont pas été utilisées au cours de leur durée de vie,
+       définie par le paramètre <code>ttl</code>. Si l'entrée du pool
+       de connexions est associée à une connexion, cette dernière sera
+       fermée. La valeur par défaut ne doit être modifiée que dans des
+       circonstances particulières où les entrées du pool de connexions
+       et toutes connexions associées qui ont dépassé leur durée de vie
+       doivent être libérées ou fermées de manière plus autoritaire.</td></tr>
+    <tr><td>acquire</td>
+        <td>-</td>
+        <td>Cette clé permet de définir le délai maximum d'attente pour
+       une connexion libre dans le jeu de connexions, en millisecondes.
+       S'il n'y a pas de connexion libre dans le jeu, Apache httpd renverra
+       l'état <code>SERVER_BUSY</code> au client.
+    </td></tr>
+    <tr><td>connectiontimeout</td>
+        <td>timeout</td>
+        <td>Délai d'attente d'une connexion en secondes.
+        La durée en secondes pendant laquelle Apache httpd va attendre pour
+       l'établissement d'une connexion vers le serveur d'arrière-plan.
+       Le délai peut être spécifié en millisecondes en ajoutant le
+       suffixe ms.
+    </td></tr>
+    <tr><td>disablereuse</td>
+        <td>Off</td>
+        <td>Vous pouvez utiliser cette clé pour forcer mod_proxy à
+       fermer immédiatement une connexion vers le serveur
+       d'arrière-plan après utilisation, et ainsi désactiver le jeu de
+       connexions permanentes vers ce serveur. Ceci peut s'avérer utile
+       dans des situations où un pare-feu situé entre Apache httpd et le
+       serveur d'arrière-plan (quelque soit le protocole) interrompt
+       des connexions de manière silencieuse, ou lorsque le serveur
+       d'arrière-plan lui-même est accessible par rotation de DNS
+       (round-robin DNS). Pour désactiver la réutilisation du jeu de
+       connexions, définissez cette clé à <code>On</code>.
+    </td></tr>
+    <tr><td>enablereuse</td>
+        <td>On</td>
+        <td>Fournie à l'intention des gestionnaires de projet
+       qui nécessitent un accord pour la réutilisation des connexions
+       (tels que <code class="module"><a href="../mod/mod_proxy_fcgi.html">mod_proxy_fcgi</a></code>),
+       cette option est l'inverse de l'option 'disablereuse' ci-dessus.
+    </td></tr>
+    <tr><td>flushpackets</td>
+        <td>off</td>
+        <td>Permet de définir si le module mandataire doit vider
+       automatiquement le tampon de sortie après chaque tronçon de
+       données. 'off' signifie que le tampon sera vidé si nécessaire,
+       'on' que le tampon sera vidé après chaque envoi d'un
+       tronçon de données, et 'auto' que le tampon sera vidé après un
+       délai de 'flushwait' millisecondes si aucune entrée n'est reçue.
+       Actuellement, cette clé n'est supportée que par AJP.
+    </td></tr>
+    <tr><td>flushwait</td>
+        <td>10</td>
+        <td>Le délai d'attente pour une entrée additionnelle, en
+       millisecondes, avant le vidage du tampon en sortie dans le cas
+       où 'flushpackets' est à 'auto'.
+    </td></tr>
+    <tr><td>iobuffersize</td>
+        <td>8192</td>
+        <td>Permet de définir la taille du tampon d'entrées/sorties du
+       bloc-notes interne. Cette clé vous permet d'outrepasser la
+       directive <code class="directive">ProxyIOBufferSize</code> pour un
+       serveur cible spécifique. La valeur doit être au minimum 512 ou définie
+       à 0 pour la valeur par défaut du système de 8192.
+    </td></tr>
+    <tr><td>keepalive</td>
+        <td>Off</td>
+        <td><p>Cette clé doit être utilisée lorsque vous avez un pare-feu
+       entre Apache httpd et le serveur d'arrière-plan, et si ce dernier tend
+       à interrompre les connexions inactives. Cette clé va faire en
+       sorte que le système d'exploitation envoie des messages
+       <code>KEEP_ALIVE</code> sur chacune des connexions inactives et
+       ainsi éviter la fermeture de la connexion par le pare-feu.
+       Pour conserver les connexions persistantes, definissez cette
+       propriété à <code>On</code>.</p>
+    <p>La fréquence de vérification des connexions TCP persistantes
+    initiale et subséquentes dépend de la configuration globale de l'OS,
+    et peut atteindre 2 heures. Pour être utile, la fréquence configurée
+    dans l'OS doit être inférieure au seuil utilisé par le pare-feu.</p>
 
-</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>
+    </td></tr>
+    <tr><td>lbset</td>
+        <td>0</td>
+        <td>Définit le groupe de répartition de charge dont le serveur cible
+       est membre. Le répartiteur de charge va essayer tous les membres
+       d'un groupe de répartition de charge de numéro inférieur avant
+       d'essayer ceux dont le groupe possède un numéro supérieur.
+    </td></tr>
+    <tr><td>ping</td>
+        <td>0</td>
+        <td>Avec la clé Ping, le serveur web va "tester" la connexion
+       vers le serveur d'arrière-plan avant de transmettre la requête.
+       Pour les valeurs négatives, le test est une simple vérification
+       de socket, alors que pour les valeurs positives, il s'agit d'une
+       vérification plus approfondie dépendant du protocole.
+       Avec AJP, <code class="module"><a href="../mod/mod_proxy_ajp.html">mod_proxy_ajp</a></code> envoie une requête
+       <code>CPING</code> sur la connexion ajp13 (implémenté sur Tomcat
+       3.3.2+, 4.1.28+ et 5.0.13+). Avec HTTP,
+       <code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code> envoie <code>100-Continue</code>
+       au serveur d'arrière-plan (seulement avecHTTP/1.1 - pour les
+       serveurs d'arrière-plan non HTTP/1.1, cette clé ne produit
+       aucun effet). Dans les deux cas, ce paramètre correspond au
+       délai en secondes pour l'attente de la réponse. Cette
+       fonctionnalité a été ajoutée pour éviter les problèmes avec les
+       serveurs d'arrière-plan bloqués ou surchargé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="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>
+       Le trafic
+       réseau peut s'en trouver augmenté en fonctionnement normal, ce
+       qui peut poser problème, mais peut s'en trouver diminué dans les
+       cas où les noeuds de cluster sont arrêtés ou
+       surchargés. Le délai peut
+       aussi être défini en millisecondes en ajoutant le suffixe
+       ms.
+    </td></tr>
+    <tr><td>receivebuffersize</td>
+        <td>0</td>
+        <td>Définit la taille du tampon réseau explicite (TCP/IP) pour
+       les connexions mandatées. Cette clé vous permet d'outrepasser la
+       directive <code class="directive">ProxyReceiveBufferSize</code> pour un
+       serveur cible spécifique. Sa valeur doit être au minimum 512 ou définie
+       à 0 pour la valeur par défaut du système.
+    </td></tr>
+    <tr><td>redirect</td>
+        <td>-</td>
+        <td>Route pour la redirection du serveur cible. Cette valeur est en
+       général définie dynamiquement pour permettre une suppression
+       sécurisée du noeud du cluster. Si cette clé est définie, toutes
+       les requêtes sans identifiant de session seront redirigées vers
+       le membre de groupe de répartition de charge dont la route
+       correspond à la valeur de la clé.
+    </td></tr>
+    <tr><td>retry</td>
+        <td>60</td>
+        <td>Délai entre deux essais du serveur cible du jeu de connexions en
+       secondes. Si le serveur cible du jeu de connexions vers le serveur
+       d'arrière-plan est dans un état d'erreur, Apache httpd ne redirigera
+       pas de requête vers ce serveur avant l'expiration du délai
+       spécifié. Ceci permet d'arrêter le serveur d'arrière-plan pour
+       maintenance, et de le remettre en ligne plus tard. Une valeur de
+       0 implique de toujours essayer les serveurs cibles dans un état d'erreur
+       sans délai.
+    </td></tr>
+    <tr><td>route</td>
+        <td>-</td>
+        <td>La route du serveur cible lorsqu'il est utilisé au sein d'un
+       répartiteur de charge. La route est une valeur ajoutée à
+       l'identifiant de session.
+    </td></tr>
+    <tr><td>status</td>
+        <td>-</td>
+        <td>Valeur constituée d'une simple lettre et définissant l'état
+       initial de ce serveur cible.
+        <table>
+         <tr><td>D: le serveur cible est désactivé et n'accepte aucune requête.</td></tr>
+         <tr><td>S: le serveur cible est arrêté.</td></tr>
+         <tr><td>I: le serveur cible est en mode "erreurs ignorées",
+        et sera toujours considéré comme disponible.</td></tr>
+         <tr><td>H: le serveur cible est en mode d'attente et ne sera
+        utilisé que si aucun autre serveur n'est disponible.</td></tr>
+         <tr><td>E: le serveur cible est en erreur.</td></tr>
+         <tr><td>N: le serveur cible est en mode vidage, n'acceptera que
+        les sessions persistantes qui lui appartiennent, et refusera
+        toutes les autres requêtes.</td></tr>
+        </table>
+       Une valeur d'état peut être définie (ce qui
+       correspond au comportement par défaut) en préfixant la valeur
+       par '+', ou annulée en préfixant la valeur par '-'. Ainsi, la
+       valeur 'S-E' définit l'état de ce serveur cible à "arrêté" et supprime
+       le drapeau "en-erreur".
+    </td></tr>
+    <tr><td>timeout</td>
+        <td><code class="directive"><a href="#proxytimeout">ProxyTimeout</a></code></td>
+        <td>Délai d'attente de la connexion en secondes. Le nombre de
+       secondes pendant lesquelles Apache httpd attend l'envoi de
+       données vers le serveur d'arrière-plan.
+    </td></tr>
+    <tr><td>ttl</td>
+        <td>-</td>
+        <td>Durée de vie des connexions inactives et des entrées du pool
+       de connexions associées en secondes. Une fois cette
+       limite atteinte, une connexion ne sera pas réutilisée ; elle
+       sera fermée après un délai variable.
+    </td></tr>
 
-    <p>Pour une configuration typique de mandataire inverse ou
-    passerelle, cette directive doit être définie à
-    <code>Off</code>.</p>
+    </table>
 
-    <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 l'URL de la directive Proxy débute par
+    <code>balancer://</code> (par exemple:
+    <code>balancer://cluster</code>, toute information relative au
+    chemin est ignorée), alors un serveur cible virtuel ne communiquant pas
+    réellement avec le serveur d'arrière-plan sera créé. Celui-ci sera
+    en fait responsable de la gestion de plusieurs serveurs cibles "réels". Dans
+    ce cas, un jeu de paramètres particuliers s'applique à ce serveur cible
+    virtuel. Voir <code class="module"><a href="../mod/mod_proxy_balancer.html">mod_proxy_balancer</a></code> pour plus
+    d'informations à propos du fonctionnement du répartiteur de
+    charge.
+    </p>
+    <table class="bordered"><tr><th>Paramètres du répartiteur</th></tr></table>
+    <table>
+    <tr><th>Paramètre</th>
+        <th>Défaut</th>
+        <th>Description</th></tr>
+    <tr><td>lbmethod</td>
+        <td>byrequests</td>
+        <td>Méthode de répartition de charge utilisée. Permet de
+       sélectionner la méthode de planification de la répartition de
+       charge à utiliser. La valeur est soit <code>byrequests</code>,
+       pour effectuer un décompte de requêtes pondérées, soit
+       <code>bytraffic</code>, pour effectuer une répartition en
+       fonction du décompte des octets transmis, soit
+       <code>bybusyness</code>, pour effectuer une répartition en
+       fonction des requêtes en attente. La valeur par défaut est
+       <code>byrequests</code>.
+    </td></tr>
+    <tr><td>maxattempts</td>
+        <td>1 de moins que le nombre de workers, ou 1 avec un seul
+       worker</td>
+        <td>Nombre maximum d'échecs avant abandon.
+    </td></tr>
+    <tr><td>nofailover</td>
+        <td>Off</td>
+        <td>Si ce paramètre est défini à <code>On</code>, la session va
+       s'interrompre si le serveur cible est dans un état d'erreur ou
+       désactivé. Définissez ce paramètre à On si le serveur
+       d'arrière-plan ne supporte pas la réplication de session.
+    </td></tr>
+    <tr><td>stickysession</td>
+        <td>-</td>
+        <td>Nom de session persistant du répartiteur. La valeur est
+       généralement du style <code>JSESSIONID</code> ou
+       <code>PHPSESSIONID</code>, et dépend du serveur d'application
+       d'arrière-plan qui supporte les sessions. Si le serveur
+       d'application d'arrière-plan utilise des noms différents pour
+       les cookies et les identifiants codés d'URL (comme les
+       conteneurs de servlet), séparez-les par le caractère '|'. La
+       première partie contient le cookie et la seconde le chemin.<br />
+       Disponible depuis la version 2.4.4 du serveur HTTP Apache.
+    </td></tr>
+    <tr><td>stickysessionsep</td>
+        <td>"."</td>
+        <td>Permet de définir le caractère de séparation dans le cookie
+       de session. En effet, certains serveurs d'application d'arrière-plan
+       n'utilisent pas le '.' comme caractère de séparation. Par
+       exemple, le serveur Oracle Weblogic utilise le caractère '!'.
+       Cette option permet donc de définir le caractère de séparation à
+       une valeur appropriée. Si elle est définie à 'Off', aucun
+       caractère de séparation ne sera utilisé.
+    </td></tr>
+    <tr><td>scolonpathdelim</td>
+        <td>Off</td>
+        <td>Si ce paramètre est défini à <code>On</code>, le caractère
+       ';' sera utilisé comme séparateur de chemin de session
+       persistante additionnel. Ceci permet principalement de simuler
+       le comportement de mod_jk lorsqu'on utilise des chemins du style
+       <code>JSESSIONID=6736bcf34;foo=aabfa</code>.
+    </td></tr>
+    <tr><td>timeout</td>
+        <td>0</td>
+        <td>Délai du répartiteur en secondes. Si ce paramètre est
+       défini, sa valeur correspond à la durée maximale d'attente pour
+       un serveur cible libre. Le comportement par défaut est de ne pas
+       attendre.
+    </td></tr>
+    <tr><td>failonstatus</td>
+        <td>-</td>
+        <td>Une liste de codes d'état HTTP séparés par des virgules. Si
+       ce paramètre est présent, le worker se mettra en erreur si le
+       serveur d'arrière-plan renvoie un des codes d'état spécifiés
+       dans la liste. La récupération du worker s'effectue comme dans
+       le cas des autres erreurs de worker.
+    </td></tr>
 
-    <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>
+    <tr><td>failontimeout</td>
+        <td>Off</td>
+        <td>Si ce paramètre est défini à "On", un délai d'attente
+       dépassé en entrée/sortie après envoi d'une requête au serveur
+       d'arrière-plan va mettre le processus en état d'erreur. La
+       sortie de cet état d'erreur se passe de la même façon que pour
+       les autres erreurs.<br />
+       Disponible depuis la version 2.4.5 du serveur HTTP Apache.
+    </td></tr>
 
-    <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>
+    <tr><td>nonce</td>
+        <td>&lt;auto&gt;</td>
+        <td>Le nombre à usage unique de protection utilisé dans la page
+       de l'application <code>balancer-manager</code>. Par défaut, la
+       protection de la page est assurée par un nombre à usage unique
+       automatique à base d'UUID. Si une valeur est précisée, elle sera
+       utilisée comme nombre à usage unique. La valeur
+       <code>None</code> désactive la vérification du nombre à usage
+       unique.
+    <div class="note"><h3>Note</h3>
+      <p>En plus du nombre à usage unique, la page de l'application
+      <code>balancer-manager</code> peut être protégée par une ACL.</p>
     </div>
+     </td></tr>
+    <tr><td>growth</td>
+        <td>0</td>
+        <td>Nombre de membres supplémentaires que l'on peut ajouter à ce
+       répartiteur en plus de ceux définis au niveau de la
+       configuration.
+    </td></tr>
+    <tr><td>forcerecovery</td>
+        <td>On</td>
+        <td>Force la relance immédiate de tous les membres sans tenir
+       compte de leur paramètre retry dans le cas où ils sont tous en
+       état d'erreur. Il peut cependant arriver qu'un membre déjà
+       surchargé entre dans une situation critique si la relance de
+       tous les membres est forcée sans tenir compte du paramètre retry
+       de chaque membre. Dans ce cas, définissez ce paramètre à
+       <code>Off</code>.<br />
+       Disponible depuis la version 2.4.2 du serveur HTTP Apache.
+    </td></tr>
 
-<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>
-</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>
+    </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>
 
-    <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
+
+    <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>
-</div>
 
-    <pre class="prettyprint lang-config">&lt;Proxy http://backend&gt;
-    ProxySet keepalive=On
-&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>
 
-    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</pre>
+    <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>
 
-    <pre class="prettyprint lang-config">ProxySet ajp://backend:7001 timeout=15</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">RewriteEngine On
 
-   <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>
+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="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>
 
 
 </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>
+<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>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#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 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>
-
-
+        <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="proxytimeout" id="proxytimeout">Directive</a> <a name="ProxyTimeout" id="ProxyTimeout">ProxyTimeout</a></h2>
+<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>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#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>
 </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>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="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>
+<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 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>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>
 
-    <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 class="note"><strong>Note : </strong>Cette directive ne peut pas être
+    utilisée dans un contexte de niveau répertoire.</div>
 
-    <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>Supposons que le serveur local a pour adresse
+    <code>http://example.com/</code> ; alors</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>
+    <pre class="prettyprint lang-config">ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com/$1</pre>
 
-    <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>
 
-</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>
+    <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>
 
-      <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 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>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>
+      <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>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>
 
-      <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 drapeau <code>!</code> vous permet de ne pas mandater un
+    sous-répertoire donné.</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>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>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>
+    <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>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="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>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="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 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>
 
-    <div class="example"><h3>Mandataire direct</h3><pre class="prettyprint lang-config">ProxyRequests On
-ProxyVia On
+    <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>
 
-&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><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>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>Supposons par exemple que le serveur local a pour adresse
+    <code>http://example.com/</code> ; alors</p>
 
-    <div class="example"><h3>Scripts PHP et mandataire inverse</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
-    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>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="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>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>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>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>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>
+    <p>Le mot-clé optionnel <var>interpolate</var>,
+    utilisé 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>
 
-      <div class="example"><pre class="prettyprint lang-config">ProxyPass /example http://backend.example.com connectiontimeout=5 timeout=30</pre>
-</div>
-      
+    <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 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>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 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="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>
 
-      <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="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>
 
-      <pre class="prettyprint lang-config">&lt;Proxy http://backend.example.com&gt;
-  ProxySet connectiontimeout=5 timeout=30
-&lt;/Proxy&gt;</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>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>
+    <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>L'URL qui identifie un worker correspond à l'URL de son serveur
-      original, y compris un éventuel chemin donné :</p>
+</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">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">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>Dans cet exemple, deux workers différents sont définis, chacun
-      d'eux utilisant des configurations et jeux de connexions
-      séparés.</p>
+    <div class="example"><p><code>
+      <dfn>serveur-distant</dfn> =
+          <var>protocole</var>://<var>nom-serveur</var>[:<var>port</var>]
+    </code></p></div>
 
-      <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>
+    <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 /apps http://backend.example.com/ timeout=60
-ProxyPass /examples http://backend.example.com/examples timeout=10</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>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>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>
 
-        <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>
+</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>
+<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>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>Pour une configuration typique de mandataire inverse ou
+    passerelle, cette directive doit être définie à
+    <code>Off</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>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>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>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>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 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>
 
-    </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>
+<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>
+</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>
 
-      <pre class="prettyprint lang-config">&lt;Proxy *&gt;
-  Require ip 192.168.0
+    <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>
 
-      <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>
+    <pre class="prettyprint lang-config">ProxySet balancer://foo lbmethod=bytraffic timeout=15</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">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>
+    <pre class="prettyprint lang-config">ProxySet ajp://backend:7001 timeout=15</pre>
 
-      <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 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="section">
-<h2><a name="request-bodies" id="request-bodies">Corps de requêtes</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="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>
 
-    <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>
+</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>
+</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>
 
-    <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>
+</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>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>
+</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>
 
-    <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>
+    <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>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>
+    <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>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>
+    <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>
 
-    <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>
+    <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>
 
-   </div>
+</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 a286172efc7ce7e73638bb7525f9b1836d1e7729..2518f614d319f9bc505635900534cd12fcaee2c3 100644 (file)
     提供されています。これらの機能を利用するためには、該当するモジュールを
     組み込んで設定しなければなりません。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">フォワードプロキシとリバースプロキシ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">基本の例</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#access">プロキシへのアクセス制御</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#startup">遅い起動</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#intranet">イントラネットプロキシ</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#envsettings">プロトコルの調整</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">リクエストボディ</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#balancergrowth">BalancerGrowth</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#balancerinherit">BalancerInherit</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#proxytimeout">ProxyTimeout</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#proxyvia">ProxyVia</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#forwardreverse">フォワードプロキシとリバースプロキシ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">基本の例</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#access">プロキシへのアクセス制御</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#startup">遅い起動</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#intranet">イントラネットプロキシ</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#envsettings">プロトコルの調整</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#request-bodies">リクエストボディ</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_cache.html">mod_cache</a></code></li>
 <li><code class="module"><a href="../mod/mod_proxy_http.html">mod_proxy_http</a></code></li>
 <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>
@@ -1051,195 +1240,6 @@ 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 f37a608d2114831c890986cdccdcf5ebd7adb16e..cfee3e069f8e936aa2342c4042f42d67d9bb62d8 100644 (file)
@@ -181,7 +181,7 @@ ProxyVia On
 
       <example><title>Reverse Proxy PHP scripts</title>
       <highlight language="config">
-&lt;FilesMatch \.php$&gt;
+&lt;FilesMatch "\.php$"&gt;
     SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
 &lt;/FilesMatch&gt;
       </highlight>
@@ -378,7 +378,7 @@ ProxyPass /examples http://backend.example.com/examples timeout=10
       <code>proxy-nokeepalive</code> notes.</p>
 
       <highlight language="config">
-&lt;Location /buggyappserver/&gt;
+&lt;Location "/buggyappserver/"&gt;
   ProxyPass http://buggyappserver:7001/foo/
   SetEnv force-proxy-request-1.0 1
   SetEnv proxy-nokeepalive 1
@@ -886,7 +886,7 @@ expressions</description>
     then</p>
 
     <highlight language="config">
-&lt;Location /mirror/foo/&gt;
+&lt;Location "/mirror/foo/"&gt;
     ProxyPass http://backend.example.com/
 &lt;/Location&gt;
     </highlight>
@@ -916,10 +916,10 @@ expressions</description>
     to reverse-proxy a subdirectory, <em>e.g.</em></p>
 
     <highlight language="config">
-&lt;Location /mirror/foo/&gt;
+&lt;Location "/mirror/foo/"&gt;
     ProxyPass http://backend.example.com/
 &lt;/Location&gt;
-&lt;Location /mirror/foo/i&gt;
+&lt;Location "/mirror/foo/i"&gt;
     ProxyPass !
 &lt;/Location&gt;
     </highlight>
index 1fe943f72e9ce5b724aa028118fc74da4ca59d3e..3e263949122cf3c07875765343cf3f4704724803 100644 (file)
       インターネット全体にとっても危険です。</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<p>このモジュールにディレクティブはありません。</p>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#overviewprotocol">プロトコルの概要</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#basppacketstruct">基本パケット構造</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rpacetstruct">リクエストパケット構造</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#resppacketstruct">レスポンスパケット構造</a></li>
-</ul><h3>参照</h3>
+</ul><h3 class="directives">ディレクティブ</h3>
+<p>このモジュールにディレクティブはありません。</p>
+<h3>参照</h3>
 <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">コメント</a></li></ul></div>
index 2797db0489c79477e61180c15d1b3878c97fafb6..362be933b3ef919efba1f9d6516699657a0898a3 100644 (file)
@@ -202,7 +202,7 @@ ProxyPassReverse /test balancer://mycluster</pre>
     <p>To enable load balancer management for browsers from the example.com
     domain add this code to your <code>httpd.conf</code>
     configuration file</p>
-<pre class="prettyprint lang-config">&lt;Location /balancer-manager&gt;
+<pre class="prettyprint lang-config">&lt;Location "/balancer-manager"&gt;
     SetHandler balancer-manager
     Require host example.com
 &lt;/Location&gt;</pre>
index 6f512e1e5913e7b7a07935f93eb8949f332e33e5..e97680be5c6ba8751f776b74c73dbf71ae78fbac 100644 (file)
       インターネット全体にとっても危険です。</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<p>このモジュールにディレクティブはありません。</p>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#scheduler">ロードバランサのスケジューラのアルゴリズム</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#requests">Request Counting アルゴリズム</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#traffic">Weighted Traffic Counting アルゴリズム</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">バランサマネージャのサポートを有効にする</a></li>
-</ul><h3>参照</h3>
+</ul><h3 class="directives">ディレクティブ</h3>
+<p>このモジュールにディレクティブはありません。</p>
+<h3>参照</h3>
 <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">コメント</a></li></ul></div>
index ea3f4795b42fbd158088cc6496d464984dfa0d0d..7508c1d17be1d283eba9621e1e21b9b7a12a2f40 100644 (file)
@@ -187,7 +187,7 @@ ProxyPassReverse /test balancer://mycluster
     domain add this code to your <code>httpd.conf</code>
     configuration file</p>
 <highlight language="config">
-&lt;Location /balancer-manager&gt;
+&lt;Location "/balancer-manager"&gt;
     SetHandler balancer-manager
     Require host example.com
 &lt;/Location&gt;
index fd4b6fb9964748cfca067dee4a927a2f87ebc0f3..bb681dcff38de7f4c4f073c1200ed898e3b5b2a4 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="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
-proxy</td></tr>
-<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowCONNECT <var>port</var>[-<var>port</var>]
-[<var>port</var>[-<var>port</var>]] ...</code></td></tr>
-<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowCONNECT 443 563</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_connect</td></tr>
-<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved from <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> in Apache 2.3.5.
-Port ranges available since Apache 2.3.7.</td></tr>
-</table>
-    <p>The <code class="directive">AllowCONNECT</code> directive specifies a list
-    of port numbers or ranges to which the proxy <code>CONNECT</code> method
-    may connect.  Today's browsers use this method when a <code>https</code>
-    connection is requested and proxy tunneling over HTTP is in effect.</p>
-
-    <p>By default, only the default https port (<code>443</code>) and the
-    default snews port (<code>563</code>) are enabled. Use the
-    <code class="directive">AllowCONNECT</code> directive to override this default and
-    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
@@ -113,6 +88,31 @@ Port ranges available since Apache 2.3.7.</td></tr>
   Require ip 192.168.0.0/16
 &lt;/Proxy&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="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
+proxy</td></tr>
+<tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>AllowCONNECT <var>port</var>[-<var>port</var>]
+[<var>port</var>[-<var>port</var>]] ...</code></td></tr>
+<tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>AllowCONNECT 443 563</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_connect</td></tr>
+<tr><th><a href="directive-dict.html#Compatibility">Compatibility:</a></th><td>Moved from <code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code> in Apache 2.3.5.
+Port ranges available since Apache 2.3.7.</td></tr>
+</table>
+    <p>The <code class="directive">AllowCONNECT</code> directive specifies a list
+    of port numbers or ranges to which the proxy <code>CONNECT</code> method
+    may connect.  Today's browsers use this method when a <code>https</code>
+    connection is requested and proxy tunneling over HTTP is in effect.</p>
+
+    <p>By default, only the default https port (<code>443</code>) and the
+    default snews port (<code>563</code>) are enabled. Use the
+    <code class="directive">AllowCONNECT</code> directive to override this default and
+    allow connections to the listed ports only.</p>
+
 </div>
 </div>
 <div class="bottomlang">
index 9253bcd3763a585502c8fa91b0e49a4e8022abe2..fd4eb79487dd73fe36f8fc8293937269f94aa65f 100644 (file)
@@ -61,6 +61,7 @@
 <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">コメント</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">
@@ -87,7 +88,6 @@
     <code class="directive">AllowCONNECT</code> ディレクティブを使用します。</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 31d8c8180b7b69fde34e1b48fb805b8a3fc77343..61f4c99528ad2163be19feb90806c972ec0a31c0 100644 (file)
@@ -86,6 +86,7 @@
 <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></p>
index 50d4c212f5ea802cd69303333b47a7aa1a54651d..4ace47129c1a64c57ec51a43f689987bf36ea7dd 100644 (file)
        configured this way, the server can calculate the most accurate
        PATH_INFO.
       </p>
-    <div class="example"><h3>Proxy via Handler</h3><pre class="prettyprint lang-config">&lt;FilesMatch \.php$&gt;
+    <div class="example"><h3>Proxy via Handler</h3><pre class="prettyprint lang-config">&lt;FilesMatch "\.php$"&gt;
     # Note: The only part that varies is /path/to/app.sock
     SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
 &lt;/FilesMatch&gt;
index b2db97f315d208244e40d505b125dd4c35f162ad..bff0638493f7314cad5e4b1fa495236f6e8a4a4e 100644 (file)
@@ -133,7 +133,7 @@ ProxyPass /myapp/ balancer://myappcluster/
       </p>
     <example><title>Proxy via Handler</title>
       <highlight language="config">
-&lt;FilesMatch \.php$&gt;
+&lt;FilesMatch "\.php$"&gt;
     # Note: The only part that varies is /path/to/app.sock
     SetHandler  "proxy:unix:/path/to/app.sock|fcgi://localhost/"
 &lt;/FilesMatch&gt;
index a3186cd5af1d923eb766d0171f8461f600856bb5..2774d4d82bc60143a842c0dead010b9e12031d6b 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>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>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></p>
index 58de023d11313ec2f579777095ced7e2e52a9b52..ec67a3fdaad107ef8a1336dad8f015d774407218 100644 (file)
@@ -70,6 +70,7 @@ 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">
@@ -427,7 +428,6 @@ 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></p>
index 89d3cce5a83af54262e61d5d2df01c4de1850be5..2231e376cd484092525a15f62a6849e0bfba5fdf 100644 (file)
       votre réseau, mais aussi pour l'Internet au sens large.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#env">Variables d'environnement</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#notes">Informations sur les requêtes</a></li>
-</ul><h3>Voir aussi</h3>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <li><code class="module"><a href="../mod/mod_proxy.html">mod_proxy</a></code></li>
 <li><code class="module"><a href="../mod/mod_proxy_connect.html">mod_proxy_connect</a></code></li>
index 3d619f6b268cad0dfb9cdcefb98b366bb1035430..d1ca80000765f9f2b596cb69cca7de412a351094 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
@@ -127,48 +169,6 @@ 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 e7046becdb99f6c2d585ffd7d1c1f51e488fed75..dee214b41bd9734bd4ef9fcfb0b7ecf906f021c7 100644 (file)
@@ -58,6 +58,7 @@ ProxyPass /wss2/ wss://echo.websocket.org/</pre>
 <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="ProxyWebsocketAsync" id="ProxyWebsocketAsync">ProxyWebsocketAsync</a> <a name="proxywebsocketasync" id="proxywebsocketasync">Directive</a></h2>
 <table class="directive">
@@ -106,7 +107,6 @@ ProxyPass /wss2/ wss://echo.websocket.org/</pre>
     left open while idle.</p>
 
 </div>
-
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_proxy_wstunnel.html" title="English">&nbsp;en&nbsp;</a></p>
index 4d7d2ba221134a748b8313d76e506b483260f058..caaf853cd84d447480c87fc2c36bc8ecaca5194e 100644 (file)
@@ -37,7 +37,7 @@
 The connection speed to be simulated is specified, in KiB/s, using the environment
 variable <code>rate-limit</code>.</p>
 
-<div class="example"><h3>Example Configuration</h3><pre class="prettyprint lang-config">&lt;Location /downloads&gt;
+<div class="example"><h3>Example Configuration</h3><pre class="prettyprint lang-config">&lt;Location "/downloads"&gt;
     SetOutputFilter RATE_LIMIT
     SetEnv rate-limit 400 
 &lt;/Location&gt;</pre>
index e386dd581d9d5c60e7aca94b6924f31be2d022d4..5cac06cbf846a7c4d18de4ce20f0c9fc11bf027e 100644 (file)
@@ -39,7 +39,7 @@ variable <code>rate-limit</code>.</p>
 
 <example><title>Example Configuration</title>
 <highlight language="config">
-&lt;Location /downloads&gt;
+&lt;Location "/downloads"&gt;
     SetOutputFilter RATE_LIMIT
     SetEnv rate-limit 400 
 &lt;/Location&gt;
index a882323363c77aa0e5bcb7495ce1b521b5eeb8ab..2da1a5f3f64205d77a894325c1f8136ceb491f6e 100644 (file)
 </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>
@@ -71,7 +55,7 @@
     <dd>Pass the request body through the DEFLATE filter to compress the
     body. This request requires a Content-Encoding request header containing
     "gzip" for the filter to return compressed data.
-    <pre class="prettyprint lang-config">&lt;Location /compress&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/compress"&gt;
     SetHandler reflector
     SetOutputFilter DEFLATE
 &lt;/Location&gt;</pre>
@@ -81,7 +65,7 @@
     <dt>Image downsampling service</dt>
     <dd>Pass the request body through an image downsampling filter, and reflect
     the results to the caller.
-    <pre class="prettyprint lang-config">&lt;Location /downsample&gt;
+    <pre class="prettyprint lang-config">&lt;Location "/downsample"&gt;
     SetHandler reflector
     SetOutputFilter DOWNSAMPLE
 &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="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></p>
index 17e5d2c813a320a883b12d6e8fa28e2bc84ae416..06e44967832923e55c621c8a121dc201604c825b 100644 (file)
@@ -44,7 +44,7 @@
     body. This request requires a Content-Encoding request header containing
     "gzip" for the filter to return compressed data.
     <highlight language="config">
-&lt;Location /compress&gt;
+&lt;Location "/compress"&gt;
     SetHandler reflector
     SetOutputFilter DEFLATE
 &lt;/Location&gt;
@@ -55,7 +55,7 @@
     <dd>Pass the request body through an image downsampling filter, and reflect
     the results to the caller.
     <highlight language="config">
-&lt;Location /downsample&gt;
+&lt;Location "/downsample"&gt;
     SetHandler reflector
     SetOutputFilter DOWNSAMPLE
 &lt;/Location&gt;
index 7a9d840d9e8c4ae9c890c2e04d18fbd19f24ff07..bf660d6a18323123757796a8d7af4a75c5672d88 100644 (file)
@@ -77,6 +77,48 @@ 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>
@@ -222,48 +264,6 @@ 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 43733ea36fed01576ad6554f775d1c0e8dd9c9c4..93ad2cc3ca1392def9862b620ad1955075e48042 100644 (file)
@@ -63,7 +63,10 @@ r
     confiance, car il est trivial pour le client distant d'usurper
     l'identité d'un autre client.</div>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#processing">Traitement des adresses distantes</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipheader">RemoteIPHeader</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#remoteipinternalproxy">RemoteIPInternalProxy</a></li>
@@ -72,10 +75,7 @@ r
 <li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxy">RemoteIPTrustedProxy</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#remoteiptrustedproxylist">RemoteIPTrustedProxyList</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#processing">Traitement des adresses distantes</a></li>
-</ul><h3>Voir aussi</h3>
+<h3>Voir aussi</h3>
 <ul class="seealso">
 <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_status.html">mod_status</a></code></li>
@@ -83,6 +83,53 @@ 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
@@ -258,53 +305,6 @@ 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 211d898232f430ba80f76632b76ffb4ffbe515cc..aeb944ad7f58e6d0f08632a87cab1c238a7e3229 100644 (file)
 </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.
@@ -122,51 +167,6 @@ 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 f110f6ca302c5ee91e738ad799902acd201f7dff..aefca066d3994230947aa12dee06bdba1839ddbe 100644 (file)
@@ -38,6 +38,7 @@
 <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">
@@ -94,7 +95,6 @@ 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 cf87798bbc2e5b541ad9b65aa533162d450596b1..f2609c10c95ee1f2e3e4ec67a108739bdad60ec3 100644 (file)
@@ -38,6 +38,7 @@
 <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">
@@ -94,7 +95,6 @@ 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 1fdaa79b0a23c9133cf5b4b9d82c12df57d8106f..d15a165b0ab418a6bdfea1bc3b22d938d88860e8 100644 (file)
@@ -68,6 +68,42 @@ URLs on the fly</td></tr>
 </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>
@@ -107,7 +143,7 @@ URLs on the fly</td></tr>
     directory under the document root.</p>
 <pre class="prettyprint lang-config">DocumentRoot /var/www/example.com
 AliasMatch ^/myapp /opt/myapp-1.2.3
-&lt;Directory /opt/myapp-1.2.3&gt;
+&lt;Directory "/opt/myapp-1.2.3"&gt;
     RewriteEngine On
     RewriteBase /myapp/
     RewriteRule ^index\.html$  welcome.html 
@@ -1428,42 +1464,6 @@ 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 070cda7066ccfb83162b18eee7c6fe76e3271f36..bd36ebf8e167518f13c1d304b80936e85c8b4502 100644 (file)
@@ -63,7 +63,10 @@ r
       <a href="../rewrite/">documentation détaillée
       sur mod_rewrite</a>.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#logging">Journalisation</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#rewritebase">RewriteBase</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rewritecond">RewriteCond</a></li>
@@ -72,10 +75,47 @@ r
 <li><img alt="" src="../images/down.gif" /> <a href="#rewriteoptions">RewriteOptions</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#rewriterule">RewriteRule</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<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>
+<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">
@@ -1544,46 +1584,6 @@ 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 5a6461f6e3d4e62b31a52eb5aba611a40ab9bafc..03c826a9fb9688f083dfc2da345e63e8b44f52be 100644 (file)
@@ -411,7 +411,7 @@ URLs on the fly</description>
 <highlight language="config">
 DocumentRoot /var/www/example.com
 AliasMatch ^/myapp /opt/myapp-1.2.3
-&lt;Directory /opt/myapp-1.2.3&gt;
+&lt;Directory "/opt/myapp-1.2.3"&gt;
     RewriteEngine On
     RewriteBase /myapp/
     RewriteRule ^index\.html$  welcome.html 
index cbd6ab1bdde1089d35bb23af7feb24bd191737db..e3c104e3c2771f0f6385716a6044640ef532e0d9 100644 (file)
@@ -73,34 +73,6 @@ the author's blog</a>.</p>
 </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
@@ -145,6 +117,34 @@ 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 56904913d23fa7f095c61bbaf1ce555a9ae979bd..9c39f088d7fe2a9fa7e814f98ccbd2f9af0e7364 100644 (file)
@@ -72,48 +72,16 @@ lesquelles ce filtre est plus puissant qu'une simple
 recherche/remplacement de chaîne ou d'expression rationnelle.</p>
 
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">Exemple de configuration</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#sed_commands">Commandes sed</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#inputsed">InputSed</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#outputsed">OutputSed</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#sampleconf">Exemple de configuration</a></li>
-<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>
+<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="sampleconf" id="sampleconf">Exemple de configuration</a></h2>
@@ -159,6 +127,38 @@ r
         <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 d73f2b948d7f0d3d4aa42889746d94fcdef765e4..40a25840e7eb3c2ebdebdf8597bdfb07a706f333 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
@@ -480,6 +342,144 @@ 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></p>
index cb932e2ea249002a536fd7fa0b128448be758d59..98b5015460fbe8d7be96855aaaeb4f4ed6078e20 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>
@@ -144,25 +163,6 @@ 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></p>
index 7b81b7be921532166a741488dd2a5b871aa7994b..db058a9a03a0883a88406e5abf0454dca491d191 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>
@@ -208,29 +231,6 @@ 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></p>
index b7cc7470d394914056bda7f029747f6d463719b0..a7a0427225e5b5c58a8e1b9ec82a048ce62d09aa 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>
@@ -243,86 +323,6 @@ 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></p>
index dcf734470c11026999f02115617ce349963187a3..4599961c42df5020e64f9622a8c7bc9ad8770e35 100644 (file)
@@ -77,6 +77,7 @@ 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">
@@ -321,7 +322,6 @@ 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 a32d30e93875020dd6c007089337ef3a59dae977..eee87a30c8093c1c4b1eb0a57e275b389dc4eb04 100644 (file)
@@ -79,6 +79,7 @@ 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">
@@ -334,7 +335,6 @@ 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 42b4c829676859214eb24d8e63e96d06bac7aac1..c6103ca8b83116a8f90536c5a16ed90c3ceca2d1 100644 (file)
@@ -69,6 +69,7 @@
 <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 502c563b34370072408f8ae67cbb105e1576522e..3d249bcf6f9818a3720e7bb5c533b313d3a410b2 100644 (file)
@@ -64,6 +64,7 @@
 <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 be9c4c4dffb7a737d376ad7d2ca65a53170fa0f3..3ab30031c128f84a0347db5cf493bae0ee5a39b0 100644 (file)
@@ -67,6 +67,7 @@
 <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,7 +310,6 @@ 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 22ac9f9eb9a3298082a6f3ba487369b9177ca358..8622bb2543a5c5ce0955bbe7bb2ac66295db4d3f 100644 (file)
@@ -67,53 +67,6 @@ Windows</td></tr></table>
 </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>
 
@@ -187,6 +140,53 @@ of active modules</td></tr>
     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 746ace307f3b307394d886a090d4ac01cd4a5fa9..09da66a788ee4b10acc091c3ab738eaf664788cc 100644 (file)
@@ -60,66 +60,16 @@ inclus)</td></tr></table>
     nouvelle version.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
+<div id="quickview"><h3>Sujets</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#windows">Création de modules chargeables pour
+Windows</a></li>
+</ul><h3 class="directives">Directives</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#loadfile">LoadFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#loadmodule">LoadModule</a></li>
 </ul>
-<h3>Sujets</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#windows">Création de modules chargeables pour
-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>
+<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="windows" id="windows">Création de modules chargeables pour
@@ -202,6 +152,56 @@ 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 72e2d51193db185a50ee55418c2e205374112d07..55d2ecd12932f1beed6ae83a9fde26bc467eedfc 100644 (file)
     メジャーバージョン向けにモジュールの修正が必要になることがあります。</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> Windows 用のロード可能なモジュールを作成する</li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#loadfile">LoadFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#loadmodule">LoadModule</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<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>
+<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>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 86af5ae659427dac4161cba2c4f15d37e8d28d13..4b4ab866c1a583196925fedacfd5e09037f26e94 100644 (file)
     ¸ðµâÀ» ¼öÁ¤ÇؾߠÇÑ´Ù.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#windows">À©µµ¿ìÁî¿¡¼­ ÀоîµéÀÏ ¸ðµâ ¸¸µé±â</a></li>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#loadfile">LoadFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#loadmodule">LoadModule</a></li>
 </ul>
-<h3>ÁÖÁ¦</h3>
-<ul id="topics">
-<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>
+<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="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 04f1c42ed0e11b18a78cc93d19562859af22b171..38ead86b8723ddada40e9a0946a8e71e8b28f3c3 100644 (file)
@@ -55,66 +55,15 @@ yeniden başlatılması sırasında yüklenmesini sağlar.</td></tr>
       yeni sürüme göre değişiklik yapılması gerekir.</p>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#windows">Yüklenebilir Modüllerin Windows için Oluşturulması</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#loadfile">LoadFile</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#loadmodule">LoadModule</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<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</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>
-
-    <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">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</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>
-
-    <div class="example"><p><code>
-      LoadModule status_module modules/mod_status.so
-    </code></p></div>
-
-    <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>
+<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="windows" id="windows">Yüklenebilir Modüllerin Windows için Oluşturulması</a></h2>
@@ -190,6 +139,57 @@ ve etkin modül listesine ekler.</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</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>
+
+    <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">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</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>
+
+    <div class="example"><p><code>
+      LoadModule status_module modules/mod_status.so
+    </code></p></div>
+
+    <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 85cb9f015b621472e03773bc79b07b338297dad7..360e2c58487053530acb8753c215bbdf3d5a37e1 100644 (file)
@@ -72,6 +72,7 @@ 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="CheckBasenameMatch" id="CheckBasenameMatch">CheckBasenameMatch</a> <a name="checkbasenamematch" id="checkbasenamematch">Directive</a></h2>
 <table class="directive">
@@ -151,7 +152,6 @@ 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 75f344fdca2e034350fb65e928a8eb801631cda4..67d77e549668eb5df43a5e8f5914c5407574fc34 100644 (file)
@@ -76,6 +76,7 @@
 <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="CheckBasenameMatch" id="CheckBasenameMatch">CheckBasenameMatch</a> <a name="checkbasenamematch" id="checkbasenamematch">ディレクティブ</a></h2>
 <table class="directive">
@@ -156,7 +157,6 @@ This can be particulary useful in conjunction with
     期待とは違う挙動になるからです。</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 a8f4b3987772b3e9e9cbb47c35a0c5dfab5d7925..a2f0b58f2f101a0e251090236358b3f0c02cd5f4 100644 (file)
@@ -67,6 +67,7 @@
 <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="CheckBasenameMatch" id="CheckBasenameMatch">CheckBasenameMatch</a> <a name="checkbasenamematch" id="checkbasenamematch">Áö½Ã¾î</a></h2>
 <table class="directive">
@@ -139,7 +140,6 @@ This can be particulary useful in conjunction with
     </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 49577b91676297a8334e1601b0ccc82351862b74..3e95a0cd988c752950e2767d407cb8e7228b9b77 100644 (file)
@@ -121,6 +121,205 @@ to provide the cryptography engine.</p>
 </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_SAN_Email_</code><em>n</em></td> <td>string</td>  <td>Client certificate's subjectAltName extension entries of type rfc822Name</td></tr>
+<tr><td><code>SSL_CLIENT_SAN_DNS_</code><em>n</em></td> <td>string</td>    <td>Client certificate's subjectAltName extension entries of type dNSName</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_SAN_Email_</code><em>n</em></td> <td>string</td>  <td>Server certificate's subjectAltName extension entries of type rfc822Name</td></tr>
+<tr><td><code>SSL_SERVER_SAN_DNS_</code><em>n</em></td> <td>string</td>    <td>Server certificate's subjectAltName extension entries of type dNSName</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
@@ -2360,205 +2559,6 @@ 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_SAN_Email_</code><em>n</em></td> <td>string</td>  <td>Client certificate's subjectAltName extension entries of type rfc822Name</td></tr>
-<tr><td><code>SSL_CLIENT_SAN_DNS_</code><em>n</em></td> <td>string</td>    <td>Client certificate's subjectAltName extension entries of type dNSName</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_SAN_Email_</code><em>n</em></td> <td>string</td>  <td>Server certificate's subjectAltName extension entries of type rfc822Name</td></tr>
-<tr><td><code>SSL_SERVER_SAN_DNS_</code><em>n</em></td> <td>string</td>    <td>Server certificate's subjectAltName extension entries of type dNSName</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 a03860b4e6bb0804d69643824963070d93c60c1b..98e77f39b5faf0f092f990e4876e1afcd6906643 100644 (file)
@@ -115,6 +115,186 @@ testing.</p>
 </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="server" id="server">Server processing overview</a></h2>
+  
+
+  <p>Servers need to send SCTs to their clients.  SCTs in a certificate
+  extension or stapled OCSP response will be sent without any special program
+  logic.  This module handles sending SCTs configured by the administrator or
+  received from configured logs.</p>
+
+  <p>The number of SCTs sent in the ServerHello (i.e., not including those in a
+  certificate extension or stapled OCSP response) can be limited by the
+  <code class="directive"><a href="#ctserverhellosctlimit">CTServerHelloSCTLimit</a></code>
+  directive.</p>
+
+  <p>For each server certificate, a daemon process maintains an SCT list to be
+  sent in the ServerHello, created from statically configured SCTs as well as
+  those received from logs.  Logs marked as untrusted or with a maximum valid
+  timestamp before the present time will be ignored.  Periodically the daemon
+  will submit certificates to a log as necessary (due to changed log
+  configuration or age) and rebuild the concatenation of SCTs.</p>
+
+  <p>The SCT list for a server certificate will be sent to any client that
+  indicates awareness in the ClientHello when that particular server certificate
+  is 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="proxy" id="proxy">Proxy processing overview</a></h2>
+  
+
+  <p>The proxy indicates Certificate Transparency awareness in the ClientHello
+  by including the <em>signed_certificate_timestamp</em> extension.  It can
+  recognize SCTs received in the ServerHello, in an extension in the certificate
+  for an origin server, or in a stapled OCSP response.</p>
+
+  <p>On-line verification is attempted for each received SCT:</p>
+
+  <ul>
+    <li>For any SCT, the timestamp can be checked to see if it is not yet valid
+    based on the current time as well as any configured valid time interval for
+    the log.</li>
+    <li>For an SCT from a log for which a public key is configured, the server
+    signature will be checked.</li>
+  </ul>
+
+  <p>If verification fails for at least one SCT and verification was not
+  successful for at least one SCT, the connection is aborted if 
+  <code class="directive"><a href="#ctproxyawareness">CTProxyAwareness</a></code> is set to
+  <em>require</em>.</p>
+
+  <p>Additionally, the server certificate chain and SCTs are stored for off-line
+  verification if the <code class="directive"><a href="#ctauditstorage">CTAuditStorage</a></code>
+  directive is configured.</p>
+
+  <p>As an optimization, on-line verification and storing of data from the
+  server is only performed the first time a web server child process receives
+  the data.  This saves some processing time as well as disk space.  For typical
+  reverse proxy setups, very little processing overhead will be required.</p>
+
+</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
+<div class="section">
+<h2><a name="logconf" id="logconf">Log configuration</a></h2>
+  
+
+  <p>Servers and proxies use different information about logs for their processing.
+  This <em>log configuration</em> can be set in two ways:</p>
+
+  <ul>
+    <li>Create a log configuration database using <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</a></code>,
+    and configure the path to that database using the <code class="directive"><a href="#ctlogconfig">
+    CTLogConfig</a></code> directive.  This method of configuration supports
+    dynamic updates; <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> will re-read the database at
+    intervals.  Additionally, the off-line audit program <code>ctauditscts</code>
+    can use this configuration to find the URL of logs.</li>
+
+    <li>Configure information about logs statically using the <code class="directive"><a href="#ctstaticlogconfig">CTStaticLogConfig</a></code> directive.  As with all other
+    directives, the server must be restarted in order to pick up changes to the
+    directives.</li>
+  </ul>
+
+  <p>The information that can be configured about a log using either mechanism is
+  described below:</p>
+
+  <dl>
+    <dt>log id</dt>
+    <dd>The log id is the SHA-256 hash of the log's public key, and is part of
+    every SCT.  This is a convenient way to identify a particular log when
+    configuring valid timestamp ranges or certain other information.</dd>
+
+    <dt>public key of the log</dt>
+    <dd>A proxy must have the public key of the log in order to check the
+    signature in SCTs it receives which were obtained from the log.
+    <br />
+    A server must have the public key of the log in order to submit certificates
+    to it.</dd>
+
+    <dt>general trust/distrust setting</dt>
+    <dd>This is a mechanism to distrust or restore trust in a particular log,
+    for whatever reason (including simply avoiding interaction with the
+    log in situations where it is off-line).</dd>
+
+    <dt>minimum and/or maximum valid timestamps</dt>
+    <dd>When configured, the proxy will check that timestamps from SCTs
+    are within the valid range.</dd>
+
+    <dt>log URL</dt>
+    <dd>The URL of the log (for its API) is required by a server in order to
+    submit server certificates to the log.  The server will submit
+    each server certificate in order to obtain an SCT for each log with a 
+    configured URL, except when the log is also marked as distrusted or the
+    current time is not within any configured valid timestamp range.
+    <br />
+    The log URL is also needed by off-line auditing of SCTs received by a
+    proxy.</dd>
+  </dl>
+
+  <p>Generally, only a small subset of this information is configured for a
+  particular log.  Refer to the documentation for the <code class="directive"><a href="#ctstaticlogconfig">CTStaticLogConfig</a></code> directive and the 
+  <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</a></code> command for more specific 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="static" id="static">Storing SCTs in a form consumable by mod_ssl_ct</a></h2>
+  
+
+  <p><code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> allows you to configure SCTs statically
+  using the <code class="directive">CTStaticSCTs</code> directive.  These must be
+  in binary form, ready to send to a client.</p>
+
+  <p>Sample code in the form of a Python script to build an SCT in the correct
+  format from data received from a log can be found in
+  <a href="https://github.com/tomrittervg/ct-tools">Tom Ritter's ct-tools 
+  repository</a>.  Refer to <code>write-sct.py</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="logging" id="logging">Logging CT status in the access log</a></h2>
+  
+
+  <p>Proxy and server modes set the <code>SSL_CT_PROXY_STATUS</code> and
+  <code>SSL_CT_CLIENT_STATUS</code> variables, respectively, to indicate
+  if the corresponding peer is CT-aware.</p>
+
+  <p>Proxy mode sets the <code>SSL_CT_PROXY_SCT_SOURCES</code> variable to
+  indicate whether and where SCTs were obtained (ServerHello, certificate
+  extension, etc.).</p>
+
+  <p>These variables can be logged with the <code>%{<em>varname</em>}e</code>
+  format of <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="section">
+<h2><a name="audit" id="audit">Off-line audit for proxy</a></h2>
+  
+
+  <p>Experimental support for this is implemented in the <code>ctauditscts</code>
+  command, which itself relies on the <code>verify_single_proof.py</code> tool in the
+  <em>certificate-transparency</em> open source project.  <code>ctauditscts</code>
+  can parse data for off-line audit (enabled with the <code class="directive"><a href="#ctauditstorage">
+  CTAuditStorage</a></code> directive) and invoke <code>verify_single_proof.py</code>.
+  </p>
+
+  <p>Here are rough notes for using <code>ctauditscts</code>:</p>
+
+  <ul>
+    <li>Create a <em>virtualenv</em> using the <code>requirements.txt</code> file
+    from the <em>certificate-transparency</em> project and run the following steps
+    with that <em>virtualenv</em> activated.</li>
+    <li>Set <code>PYTHONPATH</code> to include the <code>python</code>
+    directory within the <em>certificate-transparency</em> tools.</li>
+    <li>Set <code>PATH</code> to include the <code>python/ct/client/tools</code>
+    directory.</li>
+    <li>Run <code>ctauditscts</code>, passing the value of the
+    <code class="directive">CTAuditStorage</code> directive and, optionally, the path to
+    the log configuration database.  The latter will be used to look up log URLs
+    by log id.</li>
+  </ul>
+
+  <p>The data saved for audit can also be used by other programs; refer to the
+  <code>ctauditscts</code> source code for details on processing the 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="CTAuditStorage" id="CTAuditStorage">CTAuditStorage</a> <a name="ctauditstorage" id="ctauditstorage">Directive</a></h2>
 <table class="directive">
 <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Existing directory where data for off-line audit will be stored</td></tr>
@@ -379,186 +559,6 @@ about the fields which can be configured with this directive.</li>
   file extension <em>.sct</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="server" id="server">Server processing overview</a></h2>
-  
-
-  <p>Servers need to send SCTs to their clients.  SCTs in a certificate
-  extension or stapled OCSP response will be sent without any special program
-  logic.  This module handles sending SCTs configured by the administrator or
-  received from configured logs.</p>
-
-  <p>The number of SCTs sent in the ServerHello (i.e., not including those in a
-  certificate extension or stapled OCSP response) can be limited by the
-  <code class="directive"><a href="#ctserverhellosctlimit">CTServerHelloSCTLimit</a></code>
-  directive.</p>
-
-  <p>For each server certificate, a daemon process maintains an SCT list to be
-  sent in the ServerHello, created from statically configured SCTs as well as
-  those received from logs.  Logs marked as untrusted or with a maximum valid
-  timestamp before the present time will be ignored.  Periodically the daemon
-  will submit certificates to a log as necessary (due to changed log
-  configuration or age) and rebuild the concatenation of SCTs.</p>
-
-  <p>The SCT list for a server certificate will be sent to any client that
-  indicates awareness in the ClientHello when that particular server certificate
-  is 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="proxy" id="proxy">Proxy processing overview</a></h2>
-  
-
-  <p>The proxy indicates Certificate Transparency awareness in the ClientHello
-  by including the <em>signed_certificate_timestamp</em> extension.  It can
-  recognize SCTs received in the ServerHello, in an extension in the certificate
-  for an origin server, or in a stapled OCSP response.</p>
-
-  <p>On-line verification is attempted for each received SCT:</p>
-
-  <ul>
-    <li>For any SCT, the timestamp can be checked to see if it is not yet valid
-    based on the current time as well as any configured valid time interval for
-    the log.</li>
-    <li>For an SCT from a log for which a public key is configured, the server
-    signature will be checked.</li>
-  </ul>
-
-  <p>If verification fails for at least one SCT and verification was not
-  successful for at least one SCT, the connection is aborted if 
-  <code class="directive"><a href="#ctproxyawareness">CTProxyAwareness</a></code> is set to
-  <em>require</em>.</p>
-
-  <p>Additionally, the server certificate chain and SCTs are stored for off-line
-  verification if the <code class="directive"><a href="#ctauditstorage">CTAuditStorage</a></code>
-  directive is configured.</p>
-
-  <p>As an optimization, on-line verification and storing of data from the
-  server is only performed the first time a web server child process receives
-  the data.  This saves some processing time as well as disk space.  For typical
-  reverse proxy setups, very little processing overhead will be required.</p>
-
-</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
-<div class="section">
-<h2><a name="logconf" id="logconf">Log configuration</a></h2>
-  
-
-  <p>Servers and proxies use different information about logs for their processing.
-  This <em>log configuration</em> can be set in two ways:</p>
-
-  <ul>
-    <li>Create a log configuration database using <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</a></code>,
-    and configure the path to that database using the <code class="directive"><a href="#ctlogconfig">
-    CTLogConfig</a></code> directive.  This method of configuration supports
-    dynamic updates; <code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> will re-read the database at
-    intervals.  Additionally, the off-line audit program <code>ctauditscts</code>
-    can use this configuration to find the URL of logs.</li>
-
-    <li>Configure information about logs statically using the <code class="directive"><a href="#ctstaticlogconfig">CTStaticLogConfig</a></code> directive.  As with all other
-    directives, the server must be restarted in order to pick up changes to the
-    directives.</li>
-  </ul>
-
-  <p>The information that can be configured about a log using either mechanism is
-  described below:</p>
-
-  <dl>
-    <dt>log id</dt>
-    <dd>The log id is the SHA-256 hash of the log's public key, and is part of
-    every SCT.  This is a convenient way to identify a particular log when
-    configuring valid timestamp ranges or certain other information.</dd>
-
-    <dt>public key of the log</dt>
-    <dd>A proxy must have the public key of the log in order to check the
-    signature in SCTs it receives which were obtained from the log.
-    <br />
-    A server must have the public key of the log in order to submit certificates
-    to it.</dd>
-
-    <dt>general trust/distrust setting</dt>
-    <dd>This is a mechanism to distrust or restore trust in a particular log,
-    for whatever reason (including simply avoiding interaction with the
-    log in situations where it is off-line).</dd>
-
-    <dt>minimum and/or maximum valid timestamps</dt>
-    <dd>When configured, the proxy will check that timestamps from SCTs
-    are within the valid range.</dd>
-
-    <dt>log URL</dt>
-    <dd>The URL of the log (for its API) is required by a server in order to
-    submit server certificates to the log.  The server will submit
-    each server certificate in order to obtain an SCT for each log with a 
-    configured URL, except when the log is also marked as distrusted or the
-    current time is not within any configured valid timestamp range.
-    <br />
-    The log URL is also needed by off-line auditing of SCTs received by a
-    proxy.</dd>
-  </dl>
-
-  <p>Generally, only a small subset of this information is configured for a
-  particular log.  Refer to the documentation for the <code class="directive"><a href="#ctstaticlogconfig">CTStaticLogConfig</a></code> directive and the 
-  <code class="program"><a href="../programs/ctlogconfig.html">ctlogconfig</a></code> command for more specific 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="static" id="static">Storing SCTs in a form consumable by mod_ssl_ct</a></h2>
-  
-
-  <p><code class="module"><a href="../mod/mod_ssl_ct.html">mod_ssl_ct</a></code> allows you to configure SCTs statically
-  using the <code class="directive">CTStaticSCTs</code> directive.  These must be
-  in binary form, ready to send to a client.</p>
-
-  <p>Sample code in the form of a Python script to build an SCT in the correct
-  format from data received from a log can be found in
-  <a href="https://github.com/tomrittervg/ct-tools">Tom Ritter's ct-tools 
-  repository</a>.  Refer to <code>write-sct.py</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="logging" id="logging">Logging CT status in the access log</a></h2>
-  
-
-  <p>Proxy and server modes set the <code>SSL_CT_PROXY_STATUS</code> and
-  <code>SSL_CT_CLIENT_STATUS</code> variables, respectively, to indicate
-  if the corresponding peer is CT-aware.</p>
-
-  <p>Proxy mode sets the <code>SSL_CT_PROXY_SCT_SOURCES</code> variable to
-  indicate whether and where SCTs were obtained (ServerHello, certificate
-  extension, etc.).</p>
-
-  <p>These variables can be logged with the <code>%{<em>varname</em>}e</code>
-  format of <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="section">
-<h2><a name="audit" id="audit">Off-line audit for proxy</a></h2>
-  
-
-  <p>Experimental support for this is implemented in the <code>ctauditscts</code>
-  command, which itself relies on the <code>verify_single_proof.py</code> tool in the
-  <em>certificate-transparency</em> open source project.  <code>ctauditscts</code>
-  can parse data for off-line audit (enabled with the <code class="directive"><a href="#ctauditstorage">
-  CTAuditStorage</a></code> directive) and invoke <code>verify_single_proof.py</code>.
-  </p>
-
-  <p>Here are rough notes for using <code>ctauditscts</code>:</p>
-
-  <ul>
-    <li>Create a <em>virtualenv</em> using the <code>requirements.txt</code> file
-    from the <em>certificate-transparency</em> project and run the following steps
-    with that <em>virtualenv</em> activated.</li>
-    <li>Set <code>PYTHONPATH</code> to include the <code>python</code>
-    directory within the <em>certificate-transparency</em> tools.</li>
-    <li>Set <code>PATH</code> to include the <code>python/ct/client/tools</code>
-    directory.</li>
-    <li>Run <code>ctauditscts</code>, passing the value of the
-    <code class="directive">CTAuditStorage</code> directive and, optionally, the path to
-    the log configuration database.  The latter will be used to look up log URLs
-    by log id.</li>
-  </ul>
-
-  <p>The data saved for audit can also be used by other programs; refer to the
-  <code>ctauditscts</code> source code for details on processing the data.</p>
-</div>
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_ssl_ct.html" title="English">&nbsp;en&nbsp;</a></p>
index 71d9675e58467d38fa296b31c614b265cbc8f81d..b661fe376caff2a20e2f874940b292d5afa6c69c 100644 (file)
@@ -94,7 +94,7 @@ performance</td></tr>
     <p>To enable status reports only for browsers from the example.com
     domain add this code to your <code>httpd.conf</code>
     configuration file</p>
-<pre class="prettyprint lang-config">&lt;Location /server-status&gt;
+<pre class="prettyprint lang-config">&lt;Location "/server-status"&gt;
     SetHandler server-status
     Require host example.com
 &lt;/Location&gt;</pre>
index ad34db50627230c026dbb607356dd50c622bfac3..6d583518a9b48ff7ea1850818cd45ca85ae4d5b5 100644 (file)
@@ -78,16 +78,16 @@ du serveur</td></tr>
     2.3.6, le chargement de mod_status définit automatiquement
     <code class="directive"><a href="../mod/core.html#extendedstatus">ExtendedStatus</a></code> à On.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Activation du rapport d'état</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#autoupdate">Actualisation automatique</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#machinereadable">Fichier d'état lisible par une machine</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">Utilisation de server-status pour la recherche de défauts de
     fonctionnement</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<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 rapport d'état</a></h2>
index aa6e808ae69f000600c7aafb78b97c33ea850b41..22c7163607c50119c81af393717e6ef875b710b1 100644 (file)
     <code class="directive"><a href="#extendedstatus">ExtendedStatus</a></code> 
     が <code>On</code> になっている必要があります。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<p>このモジュールにディレクティブはありません。</p>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Status を使用可能にする</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#autoupdate">自動更新</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#machinereadable">機械読み取り可能なステータスファイル</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
+</ul><h3 class="directives">ディレクティブ</h3>
+<p>このモジュールにディレクティブはありません。</p>
+<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">Status を使用可能にする</a></h2>
index bbea4460a89454d6368d485adbf12aeedc07648d..9276b29575d8e1aeb708b7a2d39887c8cd95996d 100644 (file)
     <p>Ç¥ÁØ ¾ÆÆÄÄ¡¿¡´Â "(*)"·Î Ç¥½ÃÇÑ Åë°è¸¦ ¾òÀ» ¼ö ¾ø´Ù.
     ÀÌ Á¤º¸¸¦ º¸·Á¸é ÄÄÆÄÀϽà¿É¼ÇÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Status »ç¿ëÇϱâ</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#autoupdate">ÀÚµ¿ °»½Å</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#machinereadable">ÄÄÇ»ÅͰ¡ ÀÐÀ» ¼ö Àִ Status ÆÄÀÏ</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
+<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">Status »ç¿ëÇϱâ</a></h2>
index a727a1d27693a6926b616818590887e8ebf894cb..e902b74292b68753e8ea3a9f74639681ed6f6eae 100644 (file)
       olarak <code class="directive"><a href="../mod/core.html#extendedstatus">ExtendedStatus</a></code> yönergesinin
       değerini <code>On</code> yapacaktır.</p>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
-<p>Bu modül yönerge içermez.</p>
-<h3>Konular</h3>
+<div id="quickview"><h3>Konular</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#enable">Durum Bilgisi Desteğinin Etkinleştirilmesi</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#autoupdate">Sayfanın Tazelenmesi</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#machinereadable">Makine Tarafından Okunabilen Durum Dosyası</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">Sorun gidermek için server-status kullanımı</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
+</ul><h3 class="directives">Yönergeler</h3>
+<p>Bu modül yönerge içermez.</p>
+<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="enable" id="enable">Durum Bilgisi Desteğinin Etkinleştirilmesi</a></h2>
index 12e94927b149e8879589a2073b109030f0a7d99d..fad50d078cbdec71224268da72149c1baee0910c 100644 (file)
@@ -78,7 +78,7 @@ performance</description>
     domain add this code to your <code>httpd.conf</code>
     configuration file</p>
 <highlight language="config">
-&lt;Location /server-status&gt;
+&lt;Location "/server-status"&gt;
     SetHandler server-status
     Require host example.com
 &lt;/Location&gt;
index f013f4cba098cd6515ad3936b90e6cf683f5aea3..742146a7305abb7bf1ec3c95b0ef1d5d330f6fc7 100644 (file)
@@ -42,6 +42,7 @@
 <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">
@@ -78,7 +79,7 @@
         or regex of a subsequent one.</dd>
     </dl>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location /&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     Substitute s/foo/bar/ni
 &lt;/Location&gt;</pre>
@@ -87,7 +88,7 @@
     <p>If either the pattern or the substitution contain a slash
     character then an alternative delimiter should be used:</p>
 
-    <div class="example"><h3>Example of using an alternate delimiter</h3><pre class="prettyprint lang-config">&lt;Location /&gt;
+    <div class="example"><h3>Example of using an alternate delimiter</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     Substitute "s|&lt;BR */?&gt;|&lt;br /&gt;|i"
 &lt;/Location&gt;</pre>
@@ -95,7 +96,7 @@
 
     <p>Backreferences can be used in the comparison and in the substitution,
     when regular expressions are used, as illustrated in the following example: </p>
-    <div class="example"><h3>Example of using backreferences and captures</h3><pre class="prettyprint lang-config">&lt;Location /&gt;
+    <div class="example"><h3>Example of using backreferences and captures</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     # "foo=k,bar=k" -&gt; "foo/bar=k" 
     Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
@@ -146,7 +147,7 @@ Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"<
     <code>G</code> to provide the size in bytes, kilobytes, megabytes
     or gigabytes respectively.</p>
 
-    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location /&gt;
+    <div class="example"><h3>Example</h3><pre class="prettyprint lang-config">&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     SubstituteMaxLineLength 10m
     Substitute s/foo/bar/ni
@@ -155,7 +156,6 @@ 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></p>
index 8ecb5725815725504658c6773c7b44bb86988b5f..ce1a7a4554241b245711d604b2ed0373d5625205 100644 (file)
@@ -71,7 +71,7 @@
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     Substitute s/foo/bar/ni
 &lt;/Location&gt;
@@ -83,7 +83,7 @@
 
     <example><title>Example of using an alternate delimiter</title>
     <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     Substitute "s|&lt;BR */?&gt;|&lt;br /&gt;|i"
 &lt;/Location&gt;
@@ -94,7 +94,7 @@
     when regular expressions are used, as illustrated in the following example: </p>
     <example><title>Example of using backreferences and captures</title>
     <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     # "foo=k,bar=k" -> "foo/bar=k" 
     Substitute "s|foo=(\w+),bar=\1|foo/bar=$1"
@@ -151,7 +151,7 @@ Substitute "s|http://internal.blog.example.com/|http://www.example.com/blog/|i"
 
     <example><title>Example</title>
     <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     AddOutputFilterByType SUBSTITUTE text/html
     SubstituteMaxLineLength 10m
     Substitute s/foo/bar/ni
index bf5fc495adb7778d0fc9473e79f8919786168315..403b8959830c09e392da63974e38b444ab0770d1 100644 (file)
@@ -47,6 +47,7 @@ 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">
@@ -71,7 +72,6 @@ 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 f6189612ea613eae25b9c79d58c06e06939759da..bae6cbce182e76b77f70c36cafce0289213e802a 100644 (file)
@@ -52,6 +52,7 @@
 <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">
@@ -75,7 +76,6 @@
 
 
 </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 a760f2b1655e23f03ee3b403b9970054d8513632..432a51b17da3f26fdc2d1d929dba1a9047ed6e00 100644 (file)
@@ -50,6 +50,7 @@
 <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">
@@ -73,7 +74,6 @@
 
 
 </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 f1b5f2e82fc77d06728ee4e85b94416f316ae365..848ba4883ac33e9e5c39db99fc1206a35b623e0a 100644 (file)
@@ -50,6 +50,7 @@
 <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">
@@ -80,7 +81,6 @@
 <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 d686e1228d37bae514f1820fda73e2e83c6ab10f..42221b5a7ec6f3aa65a65ccfe10e0ba3d05c0b84 100644 (file)
@@ -44,6 +44,7 @@
 <li><img alt="" src="../images/down.gif" /> <a href="#idleshutdown">IdleShutdown</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="IdleShutdown" id="IdleShutdown">IdleShutdown</a> <a name="idleshutdown" id="idleshutdown">Directive</a></h2>
 <table class="directive">
@@ -74,7 +75,6 @@
     </p></div>
 
 </div>
-
 </div>
 <div class="bottomlang">
 <p><span>Available Languages: </span><a href="../en/mod/mod_systemd.html" title="English">&nbsp;en&nbsp;</a></p>
index 68d476a0bb8d803c6b9d39794aa66ad1096b397e..1818a65691f0c182340cc08f792b98459ce6b8e9 100644 (file)
@@ -46,12 +46,12 @@ identifiant unique pour chaque requ
     raisons dont la nature se situe au delà de la portée de ce
     document.</p>
 </div>
-<div id="quickview"><h3 class="directives">Directives</h3>
-<p>Ce module ne fournit aucune directive.</p>
-<h3>Sujets</h3>
+<div id="quickview"><h3>Sujets</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#theory">Théorie</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
+</ul><h3 class="directives">Directives</h3>
+<p>Ce module ne fournit aucune directive.</p>
+<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="theory" id="theory">Théorie</a></h2>
index a7a4a03043ee500b6fcf9757ce162c9cc5d483e0..755bfeb51738e156d677f79c2027a6a7e2c999d1 100644 (file)
     一意な識別子が便利な理由はいろいろありますが、
     このドキュメントの目的からは外れるため、ここでは説明しません。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
-<p>このモジュールにディレクティブはありません。</p>
-<h3>トピック</h3>
+<div id="quickview"><h3>トピック</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#theory">理論</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">コメント</a></li></ul></div>
+</ul><h3 class="directives">ディレクティブ</h3>
+<p>このモジュールにディレクティブはありません。</p>
+<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="theory" id="theory">理論</a></h2>
index f0a85e2147047d288a15f674f78f1e9996751a4a..12e7a8e8844978d7cd69f4d5766f2c5d7a444317 100644 (file)
     <code>UNIQUE_ID</code>¸¦ ¼³Á¤ÇÑ´Ù. À¯ÀÏÇÑ ½Äº°Àڴ ¿©·¯°¡Áö
     ¿ëµµ·Î »ç¿ëÇÒ ¼ö ÀÖÁö¸¸, ¼³¸íÀº ÀÌ ¹®¼­ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼±´Ù.</p>
 </div>
-<div id="quickview"><h3 class="directives">Áö½Ã¾îµé</h3>
-<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
-<h3>ÁÖÁ¦</h3>
+<div id="quickview"><h3>ÁÖÁ¦</h3>
 <ul id="topics">
 <li><img alt="" src="../images/down.gif" /> <a href="#theory">ÀÌ·Ð</a></li>
-</ul><ul class="seealso"><li><a href="#comments_section">Comments</a></li></ul></div>
+</ul><h3 class="directives">Áö½Ã¾îµé</h3>
+<p>ÀÌ ¸ðµâ¿¡´Â Áö½Ã¾î°¡ ¾ø½À´Ï´Ù.</p>
+<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="theory" id="theory">ÀÌ·Ð</a></h2>
index 0cc4a63099f31d02f544afee06d844ad82a092c1..a30f92747738c9541c2f511497bb779389773582 100644 (file)
@@ -43,6 +43,7 @@
 <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">
@@ -174,7 +175,6 @@ 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 6381c46dbdc3c9c3ba2fbad73a7773ad0bdea12a..7cd29665f8b5a69b4be87cfefd319bab07dbc9e0 100644 (file)
@@ -42,6 +42,7 @@
 <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 9d28b98df0539a81332e755845a98dee22c59e2a..bf4b02c5c3039e86c76a964b1353f22252a3254d 100644 (file)
@@ -49,6 +49,7 @@ 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">
@@ -177,7 +178,6 @@ 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 a38b88706121aa3de17e60ceb13fd5a94a59b999..17253db08e62bb0f8d8e0656361b1c043343c244 100644 (file)
@@ -55,6 +55,7 @@
 <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">
@@ -181,7 +182,6 @@ 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 9aaaeada679366236ce0a3563f95651480769f49..6dbd9d30464022ab53fd7fb7a9290284cd0a33f5 100644 (file)
@@ -50,6 +50,7 @@
 <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">
@@ -153,7 +154,6 @@ 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 a8496e35db769bbbc450a000682c8e919355c468..a3f21daa77deb60fc7d5ec53ae85be45a99f82c8 100644 (file)
@@ -53,6 +53,7 @@
   <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">
 </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 9a4890cd32d759485c94345e27e3f7391265048d..a3a258a6cdda8aabb58c04b1942f76161f6b5d59 100644 (file)
 </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>
 
 
 
-</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 1c1c038a57be92e622c838d526478b7aa88c34f7..eb7321be8f8846c20430286fe34508559b5995e0 100644 (file)
@@ -56,6 +56,7 @@
 <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 a44d3cfe7f516a7c563d863ef8542442171a75fb..e2137c8114f701b7acbe9749e5e6236756aa4bdd 100644 (file)
@@ -56,6 +56,7 @@
 <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 6a8d94ef12ebf1e25ddb5087ecfddc3333761b6c..374d566c81bce3d3ebce3c5beda3006fc06854bf 100644 (file)
@@ -64,6 +64,7 @@
 <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 6938f6eea2d0573f89a983db8bb10af4dfa2158b..c7d0657cb96105489b8ff2f4668c6dc12e9a68be 100644 (file)
@@ -71,96 +71,6 @@ 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>
     
@@ -325,6 +235,96 @@ 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 b10187fd35e7b6aa664a646312a15fca0b68b523..fb6d6e9764b455b061a43057dd1b746b3e402192 100644 (file)
       </code></p></div>
     </div>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#interpol">Dizin İsimlerinin Elde Edilmesi</a></li>
+<li><img alt="" src="../images/down.gif" /> <a href="#examples">Örnekler</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualdocumentroot">VirtualDocumentRoot</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualdocumentrootip">VirtualDocumentRootIP</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualscriptalias">VirtualScriptAlias</a></li>
 <li><img alt="" src="../images/down.gif" /> <a href="#virtualscriptaliasip">VirtualScriptAliasIP</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#interpol">Dizin İsimlerinin Elde Edilmesi</a></li>
-<li><img alt="" src="../images/down.gif" /> <a href="#examples">Örnekler</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <li><code class="directive"><a href="../mod/core.html#usecanonicalname">UseCanonicalName</a></code></li>
 <li><a href="../vhosts/mass.html">Devingen olarak Yapılandırılan Kitlesel
 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>
-<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>
     
@@ -299,6 +220,85 @@ Sanal Barındırma</a></li>
     <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>
+<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 8b778b8c452a60a7205283d83cb9e9741a2de0b4..87fb8178fe70879672f1653250208be031f60c94 100644 (file)
@@ -53,6 +53,7 @@ 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">
@@ -67,7 +68,6 @@ 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 faa909eac54d00f273e76e08cb59cedb66d97406..3b30641ad27f4b609692cabb13be4c44469ca5cc 100644 (file)
@@ -58,58 +58,6 @@ for 2.2.x versions</td></tr></table>
 </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
@@ -183,6 +131,58 @@ 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 ddd0cbb60433c84b7946bc32a8c71f2577cb24be..40210cfe2ecbf10336c5b95d81d6e5fd4d7533e3 100644 (file)
@@ -61,6 +61,7 @@
 <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">
@@ -739,7 +740,6 @@ 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 2069c14ccdd518e2164998aae55ad07eb48f4a92..14ecbc54b8b63641a3ae2f126f852e93631936d9 100644 (file)
@@ -58,6 +58,7 @@ 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">
@@ -786,7 +787,6 @@ 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 ffb01a613cb8cabd56146d6237242319e280e961..39c7a3e1e62f571d293f7ca96e081f4bcbc32aaa 100644 (file)
@@ -62,6 +62,7 @@
 <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">
@@ -761,7 +762,6 @@ 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 f721bc614a3f45da5a46eae320f24372eb157643..3af7a6b28250cfe984452aa540bbb2b424718c0c 100644 (file)
@@ -59,6 +59,7 @@
 <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">
@@ -798,7 +799,6 @@ in *BSDs.</td></tr>
       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 43a98b1812e3eb14675fbc1b92a1f351256ba23c..5ee01b03b4ea541597eb042099afc7d3bf7398fb 100644 (file)
@@ -83,6 +83,7 @@
     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></p>
index 2aa212bbbe10d0ee98cf0f5404a4571302c3de52..fbc9a9dfb5f0d072989f16cd0e1e2df4e620fd0e 100644 (file)
     erwarten, aber klein genug, um sicherzustellen, dass genug physischer
     Arbeitsspeicher für alle Prozesse vorhanden ist.</p>
 </div>
-<div id="quickview"><h3 class="directives">Direktiven</h3>
+<div id="quickview"><h3>Themen</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Arbeitsweise</a></li>
+</ul><h3 class="directives">Direktiven</h3>
 <ul id="toc">
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>Themen</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Arbeitsweise</a></li>
-</ul><h3>Siehe auch</h3>
+<h3>Siehe auch</h3>
 <ul class="seealso">
 <li><a href="../bind.html">Bestimmen der vom Apache verwendeten Adressen
   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 455c727eae46246f514ea5e4204ec1d314c16fb6..67d9695b7370a3fcea47e0357ab5a60085c1db5f 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>
@@ -138,49 +181,6 @@ 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 3aa14c4ea1cca929e2fefb644f9ae4c967a4651d..742e0b7ba6a56d1c6f17d38222f4abfb0d064a6e 100644 (file)
     ということです。</p>
 
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">動作方法</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">動作方法</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><a href="../bind.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="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 266299f7a67be7037c1f288aa8c904a66f5f70cd..83d60be678db3a36538be0865c02d27a11b8a5c6 100644 (file)
       süreçlerin ihtiyaçlarını karşılamasına yetecek kadar da küçük olması
       gerekir.</p>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Nasıl çalışır?</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#startservers">StartServers</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Nasıl çalışır?</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <li><a href="../bind.html">Apache HTTP Sunucusunun kullandığı adres ve
     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> |
index 940fc2ae1705df01813bd38947675a92d565ec67..0ee46a189ef942ffde82430194d2e452fa1c18bd 100644 (file)
     maximale Gesamtzahl an Threads regelt, die gestartet werden
     können.</p>
 </div>
-<div id="quickview"><h3 class="directives">Direktiven</h3>
+<div id="quickview"><h3>Themen</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Arbeitsweise</a></li>
+</ul><h3 class="directives">Direktiven</h3>
 <ul id="toc">
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>Themen</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Arbeitsweise</a></li>
-</ul><h3>Siehe auch</h3>
+<h3>Siehe auch</h3>
 <ul class="seealso">
 <li><a href="../bind.html">Bestimmen der vom Apache verwendeten Adressen
   und Ports</a></li>
index 113a369c7670852525a845daaa28be65b0348d98..f5e27550046a98239af4b6ae01b37f2bfc984840 100644 (file)
     <code class="directive"><a href="../mod/mpm_common.html#maxclients">MaxClients</a></code> は
     起動されるスレッドの総数の最大値を制限します。</p>
 </div>
-<div id="quickview"><h3 class="directives">ディレクティブ</h3>
+<div id="quickview"><h3>トピック</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">動作方法</a></li>
+</ul><h3 class="directives">ディレクティブ</h3>
 <ul id="toc">
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>トピック</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">動作方法</a></li>
-</ul><h3>参照</h3>
+<h3>参照</h3>
 <ul class="seealso">
 <li><a href="../bind.html">Apache 
 の使用するアドレスとポートの設定</a></li>
index 66bdd54bb61ad08c1570d44fc2c96611059f5493..31a8a425e5c5269620cff7489d1d54401fe38556 100644 (file)
@@ -48,7 +48,10 @@ süreçlilik modülü.</td></tr>
       çocuk süreç için konuşlandırılacak evre sayısını belirleyen <code class="directive"><a href="../mod/mpm_common.html#threadsperchild">ThreadsPerChild</a></code> yönergesi ile devreye
       sokulacak toplam evre sayısının azamisini belirleyen <code class="directive"><a href="../mod/mpm_common.html#maxrequestworkers">MaxRequestWorkers</a></code> yönergesidir.</p>
 </div>
-<div id="quickview"><h3 class="directives">Yönergeler</h3>
+<div id="quickview"><h3>Konular</h3>
+<ul id="topics">
+<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Nasıl çalışır?</a></li>
+</ul><h3 class="directives">Yönergeler</h3>
 <ul id="toc">
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#coredumpdirectory">CoreDumpDirectory</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#enableexceptionhook">EnableExceptionHook</a></li>
@@ -71,10 +74,7 @@ süreçlilik modülü.</td></tr>
 <li><img alt="" src="../images/right.gif" /> <a href="mpm_common.html#threadstacksize">ThreadStackSize</a></li>
 <li><img alt="" src="../images/right.gif" /> <a href="mod_unixd.html#user">User</a></li>
 </ul>
-<h3>Konular</h3>
-<ul id="topics">
-<li><img alt="" src="../images/down.gif" /> <a href="#how-it-works">Nasıl çalışır?</a></li>
-</ul><h3>Ayrıca bakınız:</h3>
+<h3>Ayrıca bakınız:</h3>
 <ul class="seealso">
 <li><a href="../bind.html">Apache HTTP Sunucusunun kullandığı adres ve
   portların ayarlanması</a></li>
index fbc365b5df807c427ee95383ba2a735fdf72c4e0..f76e3d4320bd5e7fac95b97173ba0e04899d695e 100644 (file)
@@ -166,7 +166,7 @@ RewriteRule (.*) ${lowercase:$1} [R,L]</pre>
       module, use the following (in addition to the status-activating
       directives in <code>access.conf</code>):</p>
 
-      <pre class="prettyprint lang-config">LoadModule status_module modules/mod_status.so</pre>
+      <pre class="prettyprint lang-config">LoadModule status_module "modules/mod_status.so"</pre>
 
 
       <p>Information on <a href="../mod/mod_so.html#creating">creating
@@ -604,15 +604,15 @@ RewriteRule (.*) ${lowercase:$1} [R,L]</pre>
   (Arcane and error prone procedures may work around the restriction
   on mapped drive letters, but this is not recommended.)</p>
 
-  <div class="example"><h3>Example DocumentRoot with UNC path</h3><pre class="prettyprint lang-config">DocumentRoot //dochost/www/html/</pre>
+  <div class="example"><h3>Example DocumentRoot with UNC path</h3><pre class="prettyprint lang-config">DocumentRoot "//dochost/www/html/"</pre>
 </div>
 
-  <div class="example"><h3>Example DocumentRoot with IP address in UNC path</h3><pre class="prettyprint lang-config">DocumentRoot //192.168.1.50/docs/</pre>
+  <div class="example"><h3>Example DocumentRoot with IP address in UNC path</h3><pre class="prettyprint lang-config">DocumentRoot "//192.168.1.50/docs/"</pre>
 </div>
 
-  <div class="example"><h3>Example Alias and corresponding Directory with UNC path</h3><pre class="prettyprint lang-config">Alias /images/ //imagehost/www/images/
+  <div class="example"><h3>Example Alias and corresponding Directory with UNC path</h3><pre class="prettyprint lang-config">Alias "/images/" "//imagehost/www/images/"
 
-&lt;Directory //imagehost/www/images/&gt;
+&lt;Directory "//imagehost/www/images/"&gt;
 #...
 &lt;Directory&gt;</pre>
 </div>
index dc6610718d9fdd8e70430777883d434823f5e82a..61d967ba0cef757456fb35bdf65ba97d523e03e1 100644 (file)
@@ -162,7 +162,7 @@ RewriteRule (.*) ${lowercase:$1} [R,L]
       directives in <code>access.conf</code>):</p>
 
       <highlight language="config">
-        LoadModule status_module modules/mod_status.so
+        LoadModule status_module "modules/mod_status.so"
       </highlight>
 
       <p>Information on <a href="../mod/mod_so.html#creating">creating
@@ -603,21 +603,21 @@ RewriteRule (.*) ${lowercase:$1} [R,L]
 
   <example><title>Example DocumentRoot with UNC path</title>
   <highlight language="config">
-  DocumentRoot //dochost/www/html/
+  DocumentRoot "//dochost/www/html/"
   </highlight>
   </example>
 
   <example><title>Example DocumentRoot with IP address in UNC path</title>
   <highlight language="config">
-  DocumentRoot //192.168.1.50/docs/
+  DocumentRoot "//192.168.1.50/docs/"
   </highlight>
   </example>
 
   <example><title>Example Alias and corresponding Directory with UNC path</title>
   <highlight language="config">
-Alias /images/ //imagehost/www/images/
+Alias "/images/" "//imagehost/www/images/"
 
-&lt;Directory //imagehost/www/images/&gt;
+&lt;Directory "//imagehost/www/images/"&gt;
 #...
 &lt;Directory&gt;
   </highlight>
index afa0e5be3350cb106e903f6b816899bf734a265f..ab61fa31e3dccff8c631711feaa7406fa0c4f231 100644 (file)
@@ -113,7 +113,7 @@ RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif   [R,NC]</pre>
         accomplished without the use of mod_rewrite:</p>
 
         <pre class="prettyprint lang-config">SetEnvIf Referer example\.com localreferer
-&lt;FilesMatch \.(jpg|png|gif)$&gt;
+&lt;FilesMatch "\.(jpg|png|gif)$"&gt;
     Require env localreferer
 &lt;/FilesMatch&gt;</pre>
 
@@ -173,7 +173,7 @@ RewriteRule ^/secret/files/   -   [F]</pre>
         same end using alternate means, as illustrated here:
       </p>
       <pre class="prettyprint lang-config">SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-&lt;Location /secret/files&gt;
+&lt;Location "/secret/files"&gt;
     &lt;RequireAll&gt;
         Require all granted
         Require not env goaway
index fddc0aad6b00979890e1785cb383e0330c8ba7de..0830852c606f8386b98790c658c5e01916455067 100644 (file)
@@ -122,7 +122,7 @@ RewriteRule \.(gif|jpg|png)$ http://other.example.com/image.gif   [R,NC]
 
         <highlight language="config">
 SetEnvIf Referer example\.com localreferer
-&lt;FilesMatch \.(jpg|png|gif)$&gt;
+&lt;FilesMatch "\.(jpg|png|gif)$"&gt;
     Require env localreferer
 &lt;/FilesMatch&gt;
         </highlight>
@@ -184,7 +184,7 @@ RewriteRule ^/secret/files/   -   [F]
       </p>
       <highlight language="config">
 SetEnvIfNoCase User-Agent ^NameOfBadRobot goaway
-&lt;Location /secret/files&gt;
+&lt;Location "/secret/files"&gt;
     &lt;RequireAll&gt;
         Require all granted
         Require not env goaway
index 77102ba7f01715e1e90bae69f9139b211ed9e3ed..4804f5103d1df91b600782c3da4557cf5915dd7f 100644 (file)
@@ -218,7 +218,7 @@ RewriteRule    ^foo\.html$  foo.cgi 
 <pre class="prettyprint lang-config">#   backward compatibility ruleset for
 #   rewriting document.html to document.php
 #   when and only when document.php exists
-&lt;Directory /var/www/htdocs&gt;
+&lt;Directory "/var/www/htdocs"&gt;
     RewriteEngine on
     RewriteBase /var/www/htdocs
 
@@ -535,7 +535,7 @@ that should go to an existing resource such as an image, or a css file.</dd>
 <dd>
 <p>As of version 2.2.16, you should use the <code class="directive"><a href="../mod/mod_dir.html#fallbackresource">FallbackResource</a></code> directive for this:</p>
 
-<pre class="prettyprint lang-config">&lt;Directory /var/www/my_blog&gt;
+<pre class="prettyprint lang-config">&lt;Directory "/var/www/my_blog"&gt;
   FallbackResource index.php
 &lt;/Directory&gt;</pre>
 
@@ -544,7 +544,7 @@ that should go to an existing resource such as an image, or a css file.</dd>
 complicated than this, you can use a variation of the following rewrite
 set to accomplish the same thing:</p>
 
-<pre class="prettyprint lang-config">&lt;Directory /var/www/my_blog&gt;
+<pre class="prettyprint lang-config">&lt;Directory "/var/www/my_blog"&gt;
   RewriteBase /my_blog
 
   RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
index 0cde299ff4aa9208cd967c0c7bed10e3015c11f3..9415fcd5a2b1b0f134a2f319792273ff375eb3cb 100644 (file)
@@ -116,7 +116,9 @@ RewriteRule    ^<strong>/foo</strong>\.html$  <strong>bar</strong>.html  [<stron
     use the Redirect directive. mod_rewrite was used in that earlier
     example in order to hide the redirect from the client:</p>
 
-    <highlight language="config">Redirect /foo.html /bar.html</highlight>
+    <highlight language="config">
+Redirect /foo.html /bar.html
+    </highlight>
 
     </dd>
   </dl>
@@ -143,16 +145,19 @@ RewriteRule    ^<strong>/foo</strong>\.html$  <strong>bar</strong>.html  [<stron
       to the new server, but you might also consider using the Redirect
       or RedirectMatch directive.</p>
 
-<highlight language="config">#With mod_rewrite
+<highlight language="config">
+#With mod_rewrite
 RewriteEngine on
 RewriteRule   ^/docs/(.+)  http://new.example.com/docs/$1  [R,L]
 </highlight>
 
-<highlight language="config">#With RedirectMatch
+<highlight language="config">
+#With RedirectMatch
 RedirectMatch ^/docs/(.*) http://new.example.com/docs/$1
 </highlight>
 
-<highlight language="config">#With Redirect
+<highlight language="config">
+#With Redirect
 Redirect /docs/ http://new.example.com/docs/
 </highlight>
     </dd>
@@ -219,7 +224,7 @@ RewriteRule    ^foo\.html$  foo.cgi &nbsp; [H=<strong>cgi-script</strong>]
 #   backward compatibility ruleset for
 #   rewriting document.html to document.php
 #   when and only when document.php exists
-&lt;Directory /var/www/htdocs&gt;
+&lt;Directory "/var/www/htdocs"&gt;
     RewriteEngine on
     RewriteBase /var/www/htdocs
 
@@ -547,7 +552,7 @@ that should go to an existing resource such as an image, or a css file.</dd>
 module="mod_dir">FallbackResource</directive> directive for this:</p>
 
 <highlight language="config">
-&lt;Directory /var/www/my_blog&gt;
+&lt;Directory "/var/www/my_blog"&gt;
   FallbackResource index.php
 &lt;/Directory&gt;
 </highlight>
@@ -557,7 +562,7 @@ complicated than this, you can use a variation of the following rewrite
 set to accomplish the same thing:</p>
 
 <highlight language="config">
-&lt;Directory /var/www/my_blog&gt;
+&lt;Directory "/var/www/my_blog"&gt;
   RewriteBase /my_blog
 
   RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
@@ -569,7 +574,9 @@ set to accomplish the same thing:</p>
 <p>If, on the other hand, you wish to pass the requested URI as a query
 string argument to index.php, you can replace that RewriteRule with:</p>
 
-<highlight language="config">RewriteRule (.*) index.php?$1 [PT,QSA]</highlight>
+<highlight language="config">
+RewriteRule (.*) index.php?$1 [PT,QSA]
+</highlight>
 
 <p>Note that these rulesets can be used in a <code>.htaccess</code>
 file, as well as in a &lt;Directory&gt; block.</p>
index e789ba17d63b5af89f31c221991d5055d0868677..1946a98d21f913f65d196263a5dab4b4c8d5de4c 100644 (file)
@@ -128,7 +128,7 @@ UseCanonicalName Off
 LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
 CustomLog logs/access_log vcommon
 
-&lt;Directory /www/hosts&gt;
+&lt;Directory "/www/hosts"&gt;
     # ExecCGI is needed here because we can't force
     # CGI execution in the way that ScriptAlias does
     Options FollowSymLinks ExecCGI
index afb2b9933c270b7253fad53c8f9848ab55499d55..8a44a8501672d658a410bbef8d72bdc51eb5ebe2 100644 (file)
@@ -137,7 +137,7 @@ UseCanonicalName Off
 LogFormat "%{Host}i %h %l %u %t \"%r\" %s %b" vcommon
 CustomLog logs/access_log vcommon
 
-&lt;Directory /www/hosts&gt;
+&lt;Directory "/www/hosts"&gt;
     # ExecCGI is needed here because we can't force
     # CGI execution in the way that ScriptAlias does
     Options FollowSymLinks ExecCGI
index da5bd8ea998967932cd2e7b136ab797cdcb19e27..9a34414cb55a48dc7533eeb090015e92c9730028 100644 (file)
@@ -138,7 +138,7 @@ The same effect can be obtained using <a href="howto/htaccess.html">.htaccess fi
 following configuration, directory indexes will be enabled for the
 <code>/var/web/dir1</code> directory and all subdirectories.</p>
 
-<pre class="prettyprint lang-config">&lt;Directory /var/web/dir1&gt;
+<pre class="prettyprint lang-config">&lt;Directory "/var/web/dir1"&gt;
     Options +Indexes
 &lt;/Directory&gt;</pre>
 
@@ -150,7 +150,7 @@ when placed in the main section of the configuration file,
 deny access to any file named <code>private.html</code> regardless
 of where it is found.</p>
 
-<pre class="prettyprint lang-config">&lt;Files private.html&gt;
+<pre class="prettyprint lang-config">&lt;Files "private.html"&gt;
     Require all denied
 &lt;/Files&gt;</pre>
 
@@ -165,8 +165,8 @@ access to <code>/var/web/dir1/private.html</code>,
 of <code>private.html</code> found under the <code>/var/web/dir1/</code>
 directory.</p>
 
-<pre class="prettyprint lang-config">&lt;Directory /var/web/dir1&gt;
-    &lt;Files private.html&gt;
+<pre class="prettyprint lang-config">&lt;Directory "/var/web/dir1"&gt;
+    &lt;Files "private.html"&gt;
         Require all denied
     &lt;/Files&gt;
 &lt;/Directory&gt;</pre>
@@ -186,7 +186,7 @@ In particular, it will apply to requests for
 <code>http://yoursite.example.com/private/dir/file.html</code> as well
 as any other requests starting with the <code>/private</code> string.</p>
 
-<pre class="prettyprint lang-config">&lt;LocationMatch ^/private&gt;
+<pre class="prettyprint lang-config">&lt;LocationMatch "^/private"&gt;
     Require all denied
 &lt;/LocationMatch&gt;</pre>
 
@@ -198,7 +198,7 @@ URL to an internal Apache HTTP Server handler provided by <code class="module"><
 No file called <code>server-status</code> needs to exist in the
 filesystem.</p>
 
-<pre class="prettyprint lang-config">&lt;Location /server-status&gt;
+<pre class="prettyprint lang-config">&lt;Location "/server-status"&gt;
     SetHandler server-status
 &lt;/Location&gt;</pre>
 
@@ -208,9 +208,9 @@ filesystem.</p>
 <p>In order to have two overlapping URLs one has to consider the order in which
 certain sections or directives are evaluated. For
 <code class="directive"><a href="./mod/core.html#location">&lt;Location&gt;</a></code> this would be:</p>
-<pre class="prettyprint lang-config">&lt;Location /foo&gt;
+<pre class="prettyprint lang-config">&lt;Location "/foo"&gt;
 &lt;/Location&gt;
-&lt;Location /foo/bar&gt;
+&lt;Location "/foo/bar"&gt;
 &lt;/Location&gt;</pre>
 
 <p><code class="directive"><a href="./mod/mod_alias.html#alias">&lt;Alias&gt;</a></code>es on the other hand,
@@ -248,14 +248,14 @@ how directives are applied.</p>
 <p>A non-regex wildcard section that changes the configuration of
 all user directories could look as follows:</p>
 
-<pre class="prettyprint lang-config">&lt;Directory /home/*/public_html&gt;
+<pre class="prettyprint lang-config">&lt;Directory "/home/*/public_html"&gt;
     Options Indexes
 &lt;/Directory&gt;</pre>
 
 
 <p>Using regex sections, we can deny access to many types of image files
 at once:</p>
-<pre class="prettyprint lang-config">&lt;FilesMatch \.(?i:gif|jpe?g|png)$&gt;
+<pre class="prettyprint lang-config">&lt;FilesMatch "\.(?i:gif|jpe?g|png)$"&gt;
     Require all denied
 &lt;/FilesMatch&gt;</pre>
 
@@ -266,7 +266,7 @@ corresponding name in uppercase. This allows elements of filename paths
 and 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>.</p>
 
-<pre class="prettyprint lang-config">&lt;DirectoryMatch ^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)&gt;
+<pre class="prettyprint lang-config">&lt;DirectoryMatch "^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)"&gt;
     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/DirectoryMatch&gt;</pre>
 
@@ -300,7 +300,7 @@ different webspace locations (URLs) could map to the same filesystem
 location, allowing your restrictions to be circumvented.
 For example, consider the following configuration:</p>
 
-<pre class="prettyprint lang-config">&lt;Location /dir/&gt;
+<pre class="prettyprint lang-config">&lt;Location "/dir/"&gt;
     Require all denied
 &lt;/Location&gt;</pre>
 
@@ -324,7 +324,7 @@ many other ways to map multiple webspace locations to the same
 filesystem location.  Therefore you should always use the filesystem
 containers when you can.  There is, however, one exception to this
 rule.  Putting configuration restrictions in a <code>&lt;Location
-/&gt;</code> section is perfectly safe because this section will apply
+"/"&gt;</code> section is perfectly safe because this section will apply
 to all requests regardless of the specific URL.</p>
 
 
@@ -432,9 +432,9 @@ are interpreted, it is important to understand how this works.</p>
     <p>Apart from <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code>, each group is processed in
     the order that they appear in the configuration files.  <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> (group 1 above)
     is processed in the order shortest directory component to longest.
-    So for example, <code>&lt;Directory /var/web/dir&gt;</code> will
+    So for example, <code>&lt;Directory "/var/web/dir"&gt;</code> will
     be processed before <code>&lt;Directory
-    /var/web/dir/subdir&gt;</code>.  If multiple <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> sections apply
+    "/var/web/dir/subdir"&gt;</code>.  If multiple <code class="directive"><a href="./mod/core.html#directory">&lt;Directory&gt;</a></code> sections apply
     to the same directory they are processed in the configuration file
     order. Configurations included via the <code class="directive"><a href="./mod/core.html#include">Include</a></code> directive will be treated as if
     they were inside the including file at the location of the
@@ -474,16 +474,16 @@ merging. Assuming they all apply to the request, the directives in
 this example will be applied in the order A &gt; B &gt; C &gt; D &gt;
 E.</p>
 
-<pre class="prettyprint lang-config">&lt;Location /&gt;
+<pre class="prettyprint lang-config">&lt;Location "/"&gt;
     E
 &lt;/Location&gt;
 
-&lt;Files f.html&gt;
+&lt;Files "f.html"&gt;
     D
 &lt;/Files&gt;
 
 &lt;VirtualHost *&gt;
-&lt;Directory /a/b&gt;
+&lt;Directory "/a/emphasis role="bold""&gt;
     B
 &lt;/Directory&gt;
 &lt;/VirtualHost&gt;
@@ -492,7 +492,7 @@ E.</p>
     C
 &lt;/DirectoryMatch&gt;
 
-&lt;Directory /a/b&gt;
+&lt;Directory "/a/b&gt;
     A
 &lt;/Directory&gt;</pre>
 
@@ -502,12 +502,12 @@ any access restrictions placed in <code class="directive"><a href="./mod/core.ht
 evaluated last and will allow unrestricted access to the server.  In
 other words, order of merging is important, so be careful!</p>
 
-<pre class="prettyprint lang-config">&lt;Location /&gt;
+<pre class="prettyprint lang-config">&lt;Location "/"&gt;
     Require all granted
 &lt;/Location&gt;
 
-# Woops!  This &lt;Directory&gt; section will have no effect
-&lt;Directory /&gt;
+# Whoops!  This &lt;Directory&gt; section will have no effect
+&lt;Directory "/"&gt;
     &lt;RequireAll&gt;
         Require all granted
         Require not host badguy.example.com
index a2d0f27f73a7656d47d9537099ed8e01afaaf8c9..0a9bd162f72679e35458576608675e270ffb7673 100644 (file)
@@ -161,7 +161,7 @@ following configuration, directory indexes will be enabled for the
 <code>/var/web/dir1</code> directory and all subdirectories.</p>
 
 <highlight language="config">
-&lt;Directory /var/web/dir1&gt;
+&lt;Directory "/var/web/dir1"&gt;
     Options +Indexes
 &lt;/Directory&gt;
 </highlight>
@@ -175,7 +175,7 @@ deny access to any file named <code>private.html</code> regardless
 of where it is found.</p>
 
 <highlight language="config">
-&lt;Files private.html&gt;
+&lt;Files "private.html"&gt;
     Require all denied
 &lt;/Files&gt;
 </highlight>
@@ -191,8 +191,8 @@ of <code>private.html</code> found under the <code>/var/web/dir1/</code>
 directory.</p>
 
 <highlight language="config">
-&lt;Directory /var/web/dir1&gt;
-    &lt;Files private.html&gt;
+&lt;Directory "/var/web/dir1"&gt;
+    &lt;Files "private.html"&gt;
         Require all denied
     &lt;/Files&gt;
 &lt;/Directory&gt;
@@ -213,7 +213,7 @@ In particular, it will apply to requests for
 as any other requests starting with the <code>/private</code> string.</p>
 
 <highlight language="config">
-&lt;LocationMatch ^/private&gt;
+&lt;LocationMatch "^/private"&gt;
     Require all denied
 &lt;/LocationMatch&gt;
 </highlight>
@@ -226,7 +226,7 @@ No file called <code>server-status</code> needs to exist in the
 filesystem.</p>
 
 <highlight language="config">
-&lt;Location /server-status&gt;
+&lt;Location "/server-status"&gt;
     SetHandler server-status
 &lt;/Location&gt;
 </highlight>
@@ -237,9 +237,9 @@ filesystem.</p>
 certain sections or directives are evaluated. For
 <directive type="section" module="core">Location</directive> this would be:</p>
 <highlight language="config">
-&lt;Location /foo&gt;
+&lt;Location "/foo"&gt;
 &lt;/Location&gt;
-&lt;Location /foo/bar&gt;
+&lt;Location "/foo/bar"&gt;
 &lt;/Location>
 </highlight>
 <p><directive type="section" module="mod_alias">Alias</directive>es on the other hand,
@@ -283,7 +283,7 @@ how directives are applied.</p>
 all user directories could look as follows:</p>
 
 <highlight language="config">
-&lt;Directory /home/*/public_html&gt;
+&lt;Directory "/home/*/public_html"&gt;
     Options Indexes
 &lt;/Directory&gt;
 </highlight>
@@ -291,7 +291,7 @@ all user directories could look as follows:</p>
 <p>Using regex sections, we can deny access to many types of image files
 at once:</p>
 <highlight language="config">
-&lt;FilesMatch \.(?i:gif|jpe?g|png)$&gt;
+&lt;FilesMatch "\.(?i:gif|jpe?g|png)$"&gt;
     Require all denied
 &lt;/FilesMatch&gt;
 </highlight>
@@ -303,7 +303,7 @@ and URLs to be referenced from within <a href="expr.html">expressions</a>
 and modules like <module>mod_rewrite</module>.</p>
 
 <highlight language="config">
-&lt;DirectoryMatch ^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)&gt;
+&lt;DirectoryMatch "^/var/www/combined/(?&lt;SITENAME&gt;[^/]+)"&gt;
     require ldap-group cn=%{env:MATCH_SITENAME},ou=combined,o=Example
 &lt;/DirectoryMatch&gt;
 </highlight>
@@ -343,7 +343,7 @@ location, allowing your restrictions to be circumvented.
 For example, consider the following configuration:</p>
 
 <highlight language="config">
-&lt;Location /dir/&gt;
+&lt;Location "/dir/"&gt;
     Require all denied
 &lt;/Location&gt;
 </highlight>
@@ -369,7 +369,7 @@ many other ways to map multiple webspace locations to the same
 filesystem location.  Therefore you should always use the filesystem
 containers when you can.  There is, however, one exception to this
 rule.  Putting configuration restrictions in a <code>&lt;Location
-/&gt;</code> section is perfectly safe because this section will apply
+"/"&gt;</code> section is perfectly safe because this section will apply
 to all requests regardless of the specific URL.</p>
 </section>
 
@@ -488,9 +488,9 @@ are interpreted, it is important to understand how this works.</p>
     the order that they appear in the configuration files.  <directive
     type="section" module="core">Directory</directive> (group 1 above)
     is processed in the order shortest directory component to longest.
-    So for example, <code>&lt;Directory /var/web/dir&gt;</code> will
+    So for example, <code>&lt;Directory "/var/web/dir"&gt;</code> will
     be processed before <code>&lt;Directory
-    /var/web/dir/subdir&gt;</code>.  If multiple <directive
+    "/var/web/dir/subdir"&gt;</code>.  If multiple <directive
     type="section" module="core">Directory</directive> sections apply
     to the same directory they are processed in the configuration file
     order. Configurations included via the <directive
@@ -535,16 +535,16 @@ this example will be applied in the order A &gt; B &gt; C &gt; D &gt;
 E.</p>
 
 <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     E
 &lt;/Location&gt;
 
-&lt;Files f.html&gt;
+&lt;Files "f.html"&gt;
     D
 &lt;/Files&gt;
 
 &lt;VirtualHost *&gt;
-&lt;Directory /a/b&gt;
+&lt;Directory "/a/emphasis role="bold""&gt;
     B
 &lt;/Directory&gt;
 &lt;/VirtualHost&gt;
@@ -553,7 +553,7 @@ E.</p>
     C
 &lt;/DirectoryMatch&gt;
 
-&lt;Directory /a/b&gt;
+&lt;Directory "/a/b&gt;
     A
 &lt;/Directory&gt;
 
@@ -567,12 +567,12 @@ evaluated last and will allow unrestricted access to the server.  In
 other words, order of merging is important, so be careful!</p>
 
 <highlight language="config">
-&lt;Location /&gt;
+&lt;Location "/"&gt;
     Require all granted
 &lt;/Location&gt;
 
-# Woops!  This &lt;Directory&gt; section will have no effect
-&lt;Directory /&gt;
+# Whoops!  This &lt;Directory&gt; section will have no effect
+&lt;Directory "/"&gt;
     &lt;RequireAll&gt;
         Require all granted
         Require not host badguy.example.com
index 0db10593eb1e461800d2368f211f6cfc321bdf79..e68b0e2a2891420eea99ca15c495e3984776346b 100644 (file)
@@ -227,12 +227,12 @@ ScriptAlias  /cgi-bin/  /www/std-cgi/</pre>
 
 LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
 
-&lt;Directory /www/commercial&gt;
+&lt;Directory "/www/commercial"&gt;
     Options FollowSymLinks
     AllowOverride All
 &lt;/Directory&gt;
 
-&lt;Directory /www/homepages&gt;
+&lt;Directory "/www/homepages"&gt;
     Options FollowSymLinks
     AllowOverride None
 &lt;/Directory&gt;
index 70791945215041f52c398d6ac52f3d36baa0a17e..2bceeb8441e9def2ef257cf1eba6ab5233037582 100644 (file)
@@ -220,12 +220,12 @@ UseCanonicalName Off
 
 LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
 
-&lt;Directory /www/commercial&gt;
+&lt;Directory "/www/commercial"&gt;
     Options FollowSymLinks
     AllowOverride All
 &lt;/Directory&gt;
 
-&lt;Directory /www/homepages&gt;
+&lt;Directory "/www/homepages"&gt;
     Options FollowSymLinks
     AllowOverride None
 &lt;/Directory&gt;